{"_id":"thirty","_rev":"28-4248e33178fed0275a8359a2f7f97420","time":{"1.0.0-beta.0":"2019-11-18T12:30:53.959Z","created":"2019-11-19T14:20:27.171Z","1.0.0-beta.1":"2019-11-19T14:20:27.336Z","modified":"2024-04-10T11:05:25.570Z","1.0.0-beta.2":"2019-12-06T08:33:06.125Z","1.0.0-beta.3":"2019-12-08T14:17:55.341Z","1.0.0-beta.4":"2019-12-10T09:59:55.713Z","1.0.0-beta.5":"2020-01-26T15:06:14.822Z","1.0.0-beta.6":"2020-02-06T16:27:06.219Z","1.0.0-beta.7":"2020-02-07T15:16:34.379Z","1.0.0-beta.8":"2020-02-12T07:39:21.047Z","1.0.0-beta.9":"2020-02-19T10:30:14.861Z","1.0.0-beta.10":"2020-02-19T10:31:09.231Z","1.0.0-beta.11":"2020-02-20T08:40:30.278Z","1.0.0-beta.12":"2020-02-20T09:53:59.858Z","1.0.0-beta.13":"2020-02-20T11:49:49.593Z","1.0.0-beta.14":"2020-02-27T06:53:46.137Z","1.0.0":"2020-03-23T07:40:14.566Z","1.1.0":"2020-11-18T06:12:07.551Z","1.2.0":"2021-02-01T13:37:44.970Z","1.3.0":"2021-03-05T12:58:34.589Z","1.4.0":"2021-06-09T19:48:00.405Z","1.5.0-beta.12":"2023-02-03T13:57:07.224Z","1.5.0":"2023-02-03T14:08:24.484Z","1.6.0":"2023-02-03T15:03:37.459Z","2.0.0-beta.1":"2023-11-02T10:37:03.851Z","2.0.0-beta.2":"2023-11-29T11:47:48.916Z","2.0.0-beta.3":"2024-04-10T11:05:25.412Z"},"name":"thirty","dist-tags":{"latest":"2.0.0-beta.3"},"versions":{"1.0.0-beta.1":{"name":"thirty","version":"1.0.0-beta.1","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"{!node_modules}/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\""},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1"},"peerDependencies":{"aws-lambda":"^0.1.2","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1"},"devDependencies":{"@types/aws-lambda":"^8.10.35","aws-lambda":"^0.1.2","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"author":"","license":"MIT","_id":"thirty@1.0.0-beta.1","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-ypNn5yfwKmZ9iyj/R5KMvHjhD08+gTPtigYhZtZGO/v9QalHi8epyobg+lh7yaTw5+KjrZ9HhVfvi4zAlEl1sg==","shasum":"7ac8954dfd91e757d6f1e8a40988df014082238c","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.1.tgz","fileCount":36,"unpackedSize":17354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0/orCRA9TVsSAnZWagAAa6AP/RLNXD98/M6kLAeKn5VT\nEZ7uXs8q+1TUIJ+yKJFG6iPgGwZkESG7HKcHBzUWZHEQt/JpWPjc2JmzK39K\nbnyhnKU1WRKwrr+peOrP34Gm04R+DCmx6cFeyTHMdc32F8yMT3nbvdKeAbT0\nYwWG67Y9Fs8H2TTNFAgjXG26q48ilgzzQfgOYLsPLrzUSa44tOnOlljmpRAe\npg2vGL70zUEwzhkVAVsZC36eZ+rw22LFdDvKIXLqpcd9w19VNaD2HFartbI+\neu5vtfXv2MJ8a9s5yjbVTRtb82FCrfgt44IWU3Z/oDNSLHt5SKzm5uqT8XjF\nWnmzyGPzQq3vFGi/h155Yh/JKdC63NfJieW/GHLjYl8clh3y9gyysPwkJYuP\nJvx3tIk6ZUMdh71VcFYYS2gcn2RrfKWEpquxWm9bi7uAmJUM3/zPr08jtaEm\nSnrHa2b1Ck37qOgqB7zcvnOYX6E2iAB7J0wtjC6vqQIuEirr4SdV4REHlkZs\n8hfHikcH4jovSoONDUIvAG2NFkQh+xvxYwUlSLprjERk+PDxclxLuakHASvT\nuY3KTCxy9P6W9PRsiIRHv+6dZqp9eZX/EbY0Ulfz66aZirijJ0HpyBeOEnZV\n14lb646Udoyb0q5UGDr/MOEn09bRoI6axwnlOc99ZTIs8KGz4tUGEnXOF6fn\n/9cs\r\n=94Xz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDG0bUZRvN6PWrcu9OninoBBeS/VMtSJuUMGeGYRNQeXAiBYM739WBgqH/mP7rvxsDmjTiBUc1Qnwq/eeEosftbZ7g=="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.1_1574173227172_0.195982546631289"},"_hasShrinkwrap":false},"1.0.0-beta.2":{"name":"thirty","version":"1.0.0-beta.2","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"@types/aws-lambda":"^8.10.35","aws-lambda":"^0.1.2","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.2","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-OHuMJqh2/HDUYiz/9oflRfwkBzPphruPjjYQJ7MXj4YOLLzC36igtWTuT2UN/F+iGRfToI/MUFoYFbZTrWwwsw==","shasum":"811e7dcae544ed6629899e3ac1ea5cbe8fdbd597","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.2.tgz","fileCount":38,"unpackedSize":29314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6hJCCRA9TVsSAnZWagAA2NkP/RAOglvsCKELpFRafNnm\nIMPIUCBhj9Jyvi7lqBJ9n0qT1AFHDga8lzZ0ogiWRw/fOssqokqdMUywbGUN\njpBKljGrKSdSV+26PvI/Mtwp6k/DfR/HrJ4dveHo/9a/wf7/3UH1KLoR1AcW\nCYK3iqu/9CMBeH/e5jbsvL4Blzo/6JFH8VJhcxVWnQmKI/KIdMxhKAmSmHJq\nYiJEHPYgVXapBz4DictHpsUkPVGMUiS9duUIjgNwViD1erMZL/wXc93CVl91\nvEo6DJqygIgMTlIxB0b1CTwMaNFmTMqJeulkabxBZ1v8tw8dJKAb+VwNo4DT\nJV1k9YInyeksXgQawPkgmavdnaOYbDmcuUpfzHVfu5XgyEl4pfJvzCDaTJbt\nj8hKOs5LPfnZ05xylbjym2u7gsayQ1kIBi3iU+6Ku26HUtQ+VmR5S6DhmWBy\nMelIbwiocGu7rNr7PRu8CSabvN3FEJLg6Wm/iYhA/WlAq7+QPLO0FkZ+sbqO\nM8618OlK8lvfpfQU0CNybLmQCajp3drqMyNRKvar5gA/5c2k94KLhMPTdg5c\n9rxwr6LDE+jZamEoyDa09/ydrHynfIeRdN2eYMrePFqz43G/V9GtbVO1rXgM\ncj+xXAb/uQmj69ZRun0pjrWeINjm5UoXMyCILou6K1u5kPSunOm0XRPzwXS+\nzw76\r\n=87q5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5UtVNvwHco+JlPnrOvWDKINy61Spm9tp/ulmuCthICAiBd5ShqsxB4KLO3cI31W4sbyGXbth2YGI5oNAurUNHIOQ=="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.2_1575621185937_0.6177146339418573"},"_hasShrinkwrap":false},"1.0.0-beta.3":{"name":"thirty","version":"1.0.0-beta.3","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\""},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.3","_nodeVersion":"10.17.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-7sVU/ArMoJe7QyS+el+yDUeMlHINqQxRGrIUXrK/WPvHOTnwPbASfxWQKySVoPyTCCt+r2kQoZFod1LXb1vhLQ==","shasum":"1ba57e2192bd14fceb073e418cfc37a9bc05839a","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.3.tgz","fileCount":42,"unpackedSize":30947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7QYTCRA9TVsSAnZWagAAW6YQAJ64Is7PcItAfqpFMfXJ\no2MTo8gecKh0pMjT025fqrML9eknjYmvIW2Y8jauRBbIf6uIiqlJJPKpqcoZ\naNHu2mIf9xBf0d9CiNALSK48ZOVxUBV+brDatbViC6YCYVccql/4eCYzFzy6\nI7A5ZgQYjRFEZv0MUSg6UZbtgQirfgOUD5aQfCqDrA64GPnZIUGeXnkBP1P/\n+5tLTn6VGE1DAVJEVQodrrf3IB5XNLv5KZHTdGyuWekbgVkiskfqtXg8ggxd\nu/XOXNRjUwAAX35PnqbJHiTlkwOG0Q/WuLeAOwGYO7I133aPaCyqd86qBDe2\nEyWU89iQpOP+o67zW+6Zb3IH/id2KvM3d20nua8YE8KDMPbB35gaS5AezlFg\nzZd5x9Dsxb74N2bF8E6epeclazZlULxlmo6vWtkBUg+qkv1OmIBkdL4i4Fw/\nVlAfz4H4s3oXHaaecBbjRIXtCB0U1pL2bvv4irkp3fW7j2A1Hy3gd3FBiMRU\nDd7cNNlnaty/ylDq6apeKjl3MHyJyx4f7/ceNCUkF1nUoWU1c3YQXC+4j44c\nGGT/jjESwJecanHX1vLMPF4TUByEACW9m7mGfYfC/7W4sv58oK8bhyqP/tc2\nLsBjSHqfRdlPf6vTni56RlpnoZk4PzQu5KPp5L99+A58p4kaZFWF8MFYA+X8\n8bog\r\n=RWN2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/eDoK5JZX2isFQQrk0Ahz0itXhsEPYCVvPsF4MgihHgIgSyWP7RHdl6+fsDsRWxwXqvtnylpmztayuj9e/OG+gAM="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.3_1575814675188_0.2292131199558345"},"_hasShrinkwrap":false},"1.0.0-beta.4":{"name":"thirty","version":"1.0.0-beta.4","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.4","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-T43CNarkiuGwKvHvpvHAKQ3Jt1IGLYTHFq6PShO/h8OVWfOnf3quuhrR7mdE/uAn80gcXdSYtbrv2JF29dQh5g==","shasum":"3a91623c8adfa238c7d38afee189345c7665a41a","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.4.tgz","fileCount":42,"unpackedSize":31126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd72ycCRA9TVsSAnZWagAAvvAP+wSp0RVgAqweIYY4/36a\nEAylJW7qugrwPuYtE22GeXl5UxbkPYUlpxLbn0IHsFWWIDzIYBr+J5j5bwuB\nn3CH6S4z5wFvUiXEbLRiAiaCetpcUjtSh8ziKX1MY1A5rAv6T+q7IB9xi8Nc\nrnJPvHfL45cDL3ifrCglYnxPAmIoILLZm9hL0+O4JcnnEwJ8E1dM7k27q1yF\ntuSROAJol+bm7KXIKZqnGsDqFUw81yXOz6O9AN6SVwlpNlsB/tLwvN4JPTJN\n6Q1VPzQb87Kc2ioK9rTKBYtP/XHX7k96UPMeJzGD2GJ3EM/8u1+jdVnMj0t1\nBMMYpMjXl40y9gx3Ev47pgMt2CCJbIkayekA14soSXiTadNEmom7gpN54KhX\nrOeUzw++eVntFXyuMTNBZr5z1/EOHZxbA+psD1N1wtExCY2+/hzh+0tavdNm\nQxM5Yq9hFRjFmojAMhoDtWyY0h4uPg46V6q+AwguGPhvK5O1l97JD4Df2FpH\nUok0e0xuMuJl+2Cf/n4H4a6XdPXom/tU5oAoAV/2fbjeWyIRn+ik5/XZdGTS\n8B7xQLG9BPh+bBiJB14zQjOD6y2f2tI/FuPEd1T6OEZL6cRLRwwu98DA5UT+\new/QacGAgkHEqOYKSVebbUwEdH5R84L+nq1zSSZHSLajJQ4IPwmP1rNfszQf\nYhnU\r\n=hg7Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNoB82DXrILFE1qTpsvFYDXa/T1AQiuQ6abDRkKKXhAAiEA0fzg2iKtD/CGY18I4BmP21dwRU9/i6pYhGoZwcCP/g8="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.4_1575971995498_0.6987465836351092"},"_hasShrinkwrap":false},"1.0.0-beta.5":{"name":"thirty","version":"1.0.0-beta.5","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.5","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-UAPM9TwVWQFX32dBUUyPT+uIUlfMrxOvQ0qLYKTbRwvEhXmOu7C3jqdYUxnj1c35zj4IT0qFezatXbf9z2pTRg==","shasum":"2b422262fc2021d64cf5622ee31109e9b2cb6e10","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.5.tgz","fileCount":42,"unpackedSize":31913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLarnCRA9TVsSAnZWagAA8dUP/25CyKaTtkt2YhJfNlZD\n1cF659lVkGVX0vE8cdHEiqVQQXTfi1p6LwYIuHdEYQQ4179fHNvlogPYRByM\n/Hbi6ciKTLL5ApKgU8V1SMvc1FImEHhA6dXjrtGeJF9rEGIeifFMxYPhA7+/\n9Q2752prJ9uNJAWWOfD5MxCsMaJxxSeVnRqPC621fzqSZWQYJ8RkD1jcZl6e\nAYy3isH4/YsZscZcz56r6ni50TJT7tpmEVsAjFJmCpz5pFKduC7No8YfsPvF\nuodrFdJF2P5PIhLQJxi9c5o5QPRgKETi01snMZn9xRrR//BbaR8144fByalr\ny6/tjhHvQoq1vz+uhXu7SN6ckKWr5bG/YQwUwRLPOrhhb6Vsh391m2ItAb1k\n5X2JFwmITFK8WWaXnM+x6zlcY8N/HSJ5ov33cZb+CMJjExEk9ah8H3x4RxQo\ntWTSQclendyzGgE15peGWgGzFJ+bN8CDQc634fCy9kP3OAA2MIwJaVI7liMI\na5rw++wZ76mkHDoMHSeRz2Bfq6HbDg6tDWTFWyq2DTz63rw4Ha8XCezOdRlS\nru5N1soClUNQuW7N4P41rqCLIeaB4tQ/qYnAA+TsfIwRL5IyNx3hcEoI0+06\n9A7Wr/vT7wA550ZkePJR5I3IisKXYVDar/S60LsXFUzr6ewBf6XTnZ+zXmH1\n3xUg\r\n=D66y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDa9FUzVoaiP1kDmhJfj/k01uz3Yqvihnv8+ko8w1KbBAIhAJGg50vHn6lyHVBO35qRiTTwgTzuaHrt9ZESgXr/t9dr"}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.5_1580051174662_0.5109846325481033"},"_hasShrinkwrap":false},"1.0.0-beta.6":{"name":"thirty","version":"1.0.0-beta.6","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.6","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-4jH2x/zj1WvCz2RxStgS3WrCvXPCSXdxpo1ASzmzUGx6bUvB23+39xvIjAnRND42/WlU7xTp2OjnkcMmVnVN0g==","shasum":"fd9546d75e7652f9ba2cc35dcfaf2eaff089cbb9","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.6.tgz","fileCount":42,"unpackedSize":34061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePD5aCRA9TVsSAnZWagAA/a4P/2i96aDCi7omB1azSzks\n66R6N0QX8HMMpXtgXfsM8TL+qNS7mcghKsXDR5vbHZ4tOo+FJsub46EosCHY\nR5nAFT87rXwk2+G41DrC0yBRKXCW9mcDLT+dQMmp8eaYoGd9PpJE9A7PCywW\nJAtoyKCHZJ5bd7CHuSh5025gL2VBemYBMRV1UMCmumI6+iZXDAaZ2LOxh/vZ\nRvwZs3SWaOkfUTCjsD4mYg3l1efK1SY02yiNopmVCti58EAOkBccsy15G1+O\nNCeibI8kC3w5O66M4qwnJioIymR2b2v+CRatLzufso/L35V1mPt/NiCmUDOR\n8xdEr1Pqfw2xKhsUetVvRGiOW8xog++QWk5afF5YqXcjv9pmPundHCJdYOPE\nPQGczt7vlbUwl0/hDEXhHpNkVbyI0xQunifgCPbRjiY9of4rZXHT7m+DWAJa\naLtZsP88xKtg4zEfPnEOI2YbY6OC7TIyoFwd/yPkobq476lb/Rc0TYdjcHYZ\nipuVFSe2+5bR31pMyqiMUs6/bRLZaL0DRqkzNR536YQgsTOPnzabxZ3jQzUQ\nUCZ2KRjF0gXaQzX16hxtP3Kxu6fShe6fpYThX3qVAXm4SONs6K8Ljrbo2RLG\n+be8TBIKHZGV5RyMxT384pIQtLjfrIGoBJPsFRKmLlqmmwMtYgxSzfokzknG\ndYxg\r\n=U9tn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHtg7gGVfqTWmSRP4fhIwKzSRiAbn1ser72Q25v/IM9tAiBMqq5X6/jjZCCM8dggX96RfOnFGBEPleQZT529MxEWzg=="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.6_1581006426092_0.9162933564905034"},"_hasShrinkwrap":false},"1.0.0-beta.7":{"name":"thirty","version":"1.0.0-beta.7","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.7","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-xXHX4UxJgj1JYzfEdPo32T+3DubwE0v32IqSj+SMY6RZNjxY82XSTwhS1rUXCqtjATmvRnGRRxmiujR44ODTig==","shasum":"33b26110d1f73538b826feb407c278c1280be27e","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.7.tgz","fileCount":42,"unpackedSize":33880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePX9SCRA9TVsSAnZWagAAn+0P/R49rmS2Qb2QCep9ocwa\nzabrevdWRJmDvnZ3+wmXXsZWtSobMFidNQePwlZStn2GWNGhdkK27vkznqp9\nOzCRkQ9YoXsEtedxyALHfGggK27alWldzR3Dkpw8yHw8x7xlNshAQkJ7tW3B\nLx3DO8Zu/KrsDIM1m8n/dTf8ScxYPoILNtmhKZe4Eo3bnIX1PHUpX9uT7/DT\n2b6XfvxKDXf0g3GBq1P2JqoKC3/8TWGXnbHPxKKATv6PCKC1/2G+snvcJhSA\n3SGa/JsjYHSb1dCCHH82MYka8bOx4ZGWigNpBYfrhMuBTicUUDgGNAhm3bMa\nX1qXpK4HRze1Wj8Bnw/s5OzFagwbEXAozxsNCAqtsOlvAsRX/tzFApo2KIyk\n+8THvvcGF2NbjvfuQPEWQnQy3lwq0yMvAcdVMNYQrEKWk/DbIywibAuKn8IT\nQEJROdIEzxLYCwAGsE06eVBDdxAf9UbeziRkPzUIKDYjt5CJGH55OdsrUvZb\nGWpZvCY8rz0dLnITfNubhDjj2ytuEYeFMleiF3BdFgH7tyGj+oBtm8gnvAWX\nA1lEeUcX0CIgHGXhPUDkAUF6AZbHYLqCumPM3y8IwCuVB9wBJ0mGO3o0wv9R\n4CSYiWbcHbpcOkr8n888JIkRCj63ULtkJM+dxHA+6P2AnMAVXOtfRLBHfAcH\nOoZL\r\n=ugPC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgxUOdnswm7CrECcRRYdQMTCF+dS0y1PdDZ5iFxMiyQgIgGg1Mvk3rovpvhu/FsUAFtvOImg/7OnEklf+xcBJHVvM="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.7_1581088594236_0.9004061550823528"},"_hasShrinkwrap":false},"1.0.0-beta.8":{"name":"thirty","version":"1.0.0-beta.8","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.8","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Zp7n072zkcSaCF5tTu/ckh6QEfnkchT3XmJzmEdxsH0bRzfw40ZttJ0igEFqC/9gqlJ3qdJ8MXZouNp1TkzcwA==","shasum":"bbd588f85f41895f6336e8e82d0468d60d454b0b","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.8.tgz","fileCount":42,"unpackedSize":35220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ6upCRA9TVsSAnZWagAAr9UQAIlu4WjjH69iWsNmBtk0\n4N6NOomw5V9lYz8JCrfJilnR/zxbKmS4nh890KULzk1WMLcQz42FERqcag7Q\nOgZBLJUqPkLgnaglNWFVtqqiS2FK+4w9tLegqtis99nSBHFk+9e3RqkEEIhF\n1WApmmhgOqPO7rcRMVQVxU11YKq8f1CBYPVsi8VMwJxHxs76FoyrkM6il+Yx\nbqyIB7OUusdEYMWshOt6JZkEOUZuJXQubUVvm2KmxjizEFFXfgd4vaK1f0wu\nrOBmmxYvcBFF3U+PmQc4P9scuroE/E0GEGJ4Ng4jcsmYtonPBPs3e+2Eb3mS\nLGHBvKqRYs+lpfh8XzvVLwuX8EnlyWrJgfH/h2VfgHzqjjDm0g6Nr22y4/qo\nFLWM+PFqZcZTOtTZD7nr5z1LwV8boyU40NxgIYfKmL4c0xEwqj+2E3Y1Y64N\n9jhPaFJAafMQEmvqkntdRJLq1h6ZID9stevOqWVnz5AHhcW8j9VLJScp8IR4\nE1k7v3GbcGH6eVMP2b04h6Oze1+6YzAtgRdfYrKkwPDtuw7+WJDe5NzJlByx\naVtmiVzGHkz9jA2dYzPBbin38H7Pjldyq0m7yl2ntG39KTKRAooeTFqdChr7\npmvkuDDdBUSpFvwI4NIF9eBJlSJSCSuGvFZ+OXtt2sZSb+ECHoyWEQe0+sAN\nG3fV\r\n=CaCg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjZEK17l6U2/xwZ3jj72syHMH9JBJb+9Z3NIU0sGJoAAiEA7sP1TMt0abOnx6DxsFOd0dfVugH7+QY9Hr4MuXN9yis="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.8_1581493160942_0.9536125955365591"},"_hasShrinkwrap":false},"1.0.0-beta.10":{"name":"thirty","version":"1.0.0-beta.10","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.10","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-vQ4QoEmoyNl08enURLiCrLrAO+AZWulobvSWdv/ygOPr1nie3XuUqF0oa6yuueQsRVNdvV+NqfcwjeQ24o1XHw==","shasum":"024a8c541b3cf739524103b6a45370c28666fc4d","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.10.tgz","fileCount":42,"unpackedSize":35237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTQ5tCRA9TVsSAnZWagAAZ7kP/1VrGKoTBf7nSiIoG9tj\nj/qGOBnd4abzx1Tywehuk8W7k0Siwy9P/9GXeYeWhepGL76Fn0uWDJ+FwZLF\nbr8j6AMqzve2EW5M4buhH9Lmsd/5Ah82Z7sd+5F7ohBJwrGHL5K1I9/8DmDu\nJLc2J2Uie24I8l+/d/CJVOoQLtErWBDp2uWXZikcbtWgwET8Ce7innWNKMmK\njEVHEDNIR23vxw57sKAseqj10HXM2UMkKwcpR+N5Bb/cF+95Cz5e55fezDfI\n8wwoi6HXErB/LOv/RXh3JYyHe4kADh1fkdgiXIrFvDoVWX8JMsazg4BtpeBc\nlOFkFYE9fBqgJot8O9A09UuODgiErWSD+QWhSoylNXufIwAM9lwhIpXFHyBT\n1eRanawDc1jVBHl48MUybwylH7PnrdDcbFJFPrqnS+OBXiWxH8V3iLe29tSs\nN4cgzCewSxo9CAG7DdKReWjSZ1p8Phly3tLCS8dJ2I6XCk9zPEZbbwpDzOFH\nBJLgKkV8nfZfAW9Yc2t1+RRWC3eimTTWyOSFYYpWN8yzHvnU8g/s643Lb5P0\nJwuEMDP9caNgLCc5hVG6NLzcv0ll4U+ZHFnunf3gjLq2n8NCrwG4b1udmpKh\n4LO32lTideoupurvy/eqUgLdaAeqrKKCJP6ubSR8U+p4fw3SyWCerzoLOBAo\n8AMk\r\n=uH1r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZo+nCBYvlPCQUG+gyI3SauBes17xKtQIuzie+YoMAjQIhANYjGq0QTT6H6cNK/REcYVqwYG8e4VnOAIfFysgJNwG4"}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.10_1582108269042_0.3692250652025999"},"_hasShrinkwrap":false},"1.0.0-beta.11":{"name":"thirty","version":"1.0.0-beta.11","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.11","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ELKHz5dY8oX7wJ9as+vP2uxpPbQvLgvJ7OeWucjW6/YCGoQTRjYLYFK7//0C40riFD3aavpn4KuTkuZmhL6caw==","shasum":"953d4d319a5679cd5ef40db02e3f66f4178cdbc3","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.11.tgz","fileCount":42,"unpackedSize":35536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTkX+CRA9TVsSAnZWagAAO54QAJ76YMnNjvPa+469Yf0u\n85bOu7SZFDUJCCdUe+Erse02aNBc8EW5d9+InLa0anDa3AWsKxVhxoN4Y4qz\ntsS8wmn4GVWFFd2NbX2umFsONNMORdxU/Fa/7dnZREdSMrdtpLB0XefqVFSf\nV0btRMMSMe2vMHspekGFexFWeMExWZehR2BPieyhmdKLG0dSID4sftUyrVn1\nyDteTBt08laoIcvZYz1MXPDZWVsSVV+I6I2DtmQ1KC+R4qc7wttPzBP/UhW8\nNwyS2N+LerQHu98BL/drBKvPMgjkIJMC+v7QknWR9aAtLTLB/6WhPZwRlTtq\nbW0eJgecTqgy9hAY8cCVTWkcjrHjnQqaRrIoiFOtw5kyPH2Rad8IPE4+/NhQ\nfqhmMcigITZZNGvus1Grw8+gIUQdwMMkB8UQ3D9F9B0mf5QWGQvJYoN4Aakx\n1rpgd0Plu1i3xlUVjD32gak07BUXsl0MlLh9t5de4JBnKx8v4Kwm5i6SbFYt\nfO/lNfBgkGydauTaYavkPEBOv/qh5fKLBc5Hz4vqa6/55xB5/gl4h4DemZMG\nG8MloBIx1TEofRwClI5vwbfB6aveZ8iSwZMm05a9Q7rm1SonVKGFxQQon5RP\no6eT6pYX/XNIPwrXZkeweAe+qVK4Bv4mepWqbPYCbiX5sy3EFTKE9y4cOmyQ\nwb7C\r\n=WPb2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYzr2STV3pIXWwlnv4oRgCC1b8wcATP8hJrsEHtWC7fAIgQDBsaKhEERSbMA6ydQTfW0OUMRP9IdX5PtXTMK8W4A4="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.11_1582188030040_0.36067794130373376"},"_hasShrinkwrap":false},"1.0.0-beta.12":{"name":"thirty","version":"1.0.0-beta.12","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.12","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-8ow21kBEDWJ+w6HbEpDsXrv0XvTjPKnNsZeERzExGUFMdpJO6/iEpXFGiQvMqSK/hDLgrRfNy2ofROdjC5JvPw==","shasum":"9e9f61989e421d85b927b90c4d02fd09d96b4b05","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.12.tgz","fileCount":42,"unpackedSize":35539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTlc4CRA9TVsSAnZWagAA2WQP/2ozlMaQUJ0/M0EUG4NY\nyRrJ1Y7FM6B7gCwi5uYigsZsMxUopwnxaoQhUQaJukoziw3U1uLbX2tUCwZZ\nX0jka7lQki9zosV/uKB3gEmvH8yZf4J2LadKUKTWMaVbNAnRxpCku9HGrh3k\nNYEzkfvRMN4hKQlwMFlkGlVkX0XJ8jvwJIam3iVJj1Fu/GiCxFNnRtPknyJ0\nAGBEtKSDZSnU963goWVKPcQTbeFpPE1ATvyF5YIB8Neetq9YBus3i6TY5taj\n2dvxpuKsTO1oxeCZ6TPPu7UWAh+o90W3BknVd7TPlW4J2csSamuV/DyOZ/iy\nkQWsEQAA1wEIS5cbpHhrGaiqvHLcr/ktCkGr9C36JvfdwLvis/+Bugis14kq\n9ndcaNrrIzpk3E45gpDMCW2VW8zvjYsUMpbC+BN9DBq2iYwILgsM9v36oMKz\nnmHZT6eJGZ9HpcKtqSsmhC8Ct50TUOPkFhZKvpPhDiyuYfWKfj188gtB/rkB\nqg/lzbqQYHwZdpJMBfuxA5X4TAt/XcgYh+zTatroawomNynKw/P7Z8W0SKK+\ndQh6Mlh4D5gLax6UO6D1yhVq6X8HBetFNdLZeTbWg8o0lFxr4w1bjjpSjyrV\n0F0KSz0ARj+xoa9fl6Jj/pE6AmiR8yxU4E7HDQjkb0cKfZmQYjVFcGgXwzUJ\nw65V\r\n=7o6G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGcXBmOJZV3TpN+uncTFBhbUKRIxVaXdUvOBh9/giRWgIgJHVpPvVO+aA4SuqeP0RA3KiWevhbwSg1icFRYLtuDUc="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.12_1582192439690_0.7746626511918022"},"_hasShrinkwrap":false},"1.0.0-beta.13":{"name":"thirty","version":"1.0.0-beta.13","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"@etianen/base-error":"^0.2.1","cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.13","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-yabrY2+m5FEs9bBOqoh1noRkn08P9tYAWu9PImtlRKeT39oNmPpuyUMNhDfxyYSz9yPt3aQWF7lU+5SK2qa0fg==","shasum":"bdd578fb6aba7a343d1bacddb9ba86d63fc5991d","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.13.tgz","fileCount":42,"unpackedSize":35561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTnJdCRA9TVsSAnZWagAARPQP/j3bMY2+XrBxU+Z6O7qA\nk8qCizXffBy0HbM8QLE9R0z6jHMKtwHVAhAhHSoKKrCybw5X0+yD7E890PuL\n4ybfyzC9fpdHlAsk1N3FtmcNQrSiCTghQKbH+dDdLYwO0zig+xVVCtq4LflI\nSxkLb9Lqecg4v8WwGukHG02Py2cELffp1a6hLCcV9lkOewdOTB5Vx/a/+zgL\nVWT8lux92kilqFmgKbgZZIBpVpmXHXBszev5C8X48oFE7J0KTUyhwRAcdFp4\nyd4abwhrQQOhAQ1/uMVvc0W1u3Z44Q3dWVvLjP3ryK3Hmb40nhisJxRpEX5R\n/JJR1DlvJ6YTtHBu0i39gXvof1sXXHcIWJbydre5eCToHIEd6YpRbSzX4tiV\nZ9s6ZtBJQgpyHiFitIKpTeF+XG/87NtcmGXg02eb4HAbscZH+kQ8tac7btAK\nkry1lTiFl6ZE3jmDhaT8o7ksnwNW7q7s3jS0RmrCh8BLZN1b2G/SnxMtMbli\nEetzKFnV0qGgy5gG3NRS2Dmy66DElOgJtXiJRpleEg7RCXZmKHJqI4tzonrB\nl5jcAdOYiZEOj62PVSbS5NB74WnQz1MXPzvg1BZ5QDNIHetJnuWg5J/AOEZx\nZVfJwndbWbcnwOUhOMF8Uz/jI/srjeXnOnxuhC4dQzd83vKdJsRefKqICq+Y\n7Bu4\r\n=exMN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8DYMBe8WoJqQevSAp8Mj9rBioci0SyLytUnxnvPrzxwIhAJkTaReAR9xwegV9wq2lNOjrzQL/ZMy1ngMZ8CVrNjHO"}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.13_1582199389447_0.7638364723665076"},"_hasShrinkwrap":false},"1.0.0-beta.14":{"name":"thirty","version":"1.0.0-beta.14","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0-beta.14","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-2fLHCQLv6AT4B3uaski2mf0KkiHQ4Xoe08GiGbaK3iWFZIqlRGSoY/nCbuEGpibhAVY20OdUDthKRE3ctxlM5Q==","shasum":"310fb9fcd5d4258d41723656ce6d00ea5a37762a","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0-beta.14.tgz","fileCount":46,"unpackedSize":36912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeV2d6CRA9TVsSAnZWagAAGm4QAJuHbYQWYkr3TS2yvrIl\nZdgz+yNwfCG5Ogb0Hw2W8NhyBttH3yneqc9uljdr20DIMw9nx/+nG5qq9h6p\nRzhUZNX+871SnpM0tdjVHNzjwrCngYSDlm6P43DDIDvTjM1SqfA22A2JIr4X\na8Vmsdf/jTu0lNDsaTiskJQk1fDPQdQcyeLPS5kNG9htV3IjBk+5TZMDu2te\n/x5LvkbdDRMPCnHwBLVRaIWBdl1sYYhjTxWG6+bZEWYLPLJwpGx7Y8o6354r\nazJ6UllkrEyd8SHI9XISU44JryXJdrKsISvxIU2hvJuHdSX82tXZW20kuhev\nVTz5CSXNwwupOoxBmdrd1U5skniXnCswjm3CYPY2OQRxzqSYEyRvRRt5gjxY\nrdBMqoxUcrIZPPWTmFl61rM6H+RiTwnv4oYN037VwSyyW5kRKH9VMAoqZxnB\ndyE2+v7U3EP+QriNCwrVpVgNLPyYuGQgj+KIKDRzX2EDFQQFEP5DD3AqaVhN\nh/23XkqOWN+da1Rc8NHmgapcXt4icSmwTgWBhNiJJ8CJfjMqI3cBDKyZnPGT\nq+cS0ZuLa0/M4ojC8doc5XIUFwaIOOMYegYCZjQlgnVY5jM7TIgAdGkG4gKh\n9DlIXTTF0RHyQAn6hH7emUACjk2WoPulyvFs99EEy1X2523b6XlRxilngNc/\nv206\r\n=1yMZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICLZoA+QJxH9RDk0dh3TzA0HyOZXSx32GstuswuKWKiuAiBdsP0VccvE/9+Tn14ZSwcLoDNVhe8Km8cPAzGqE5MCZA=="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0-beta.14_1582786425950_0.1258316230318166"},"_hasShrinkwrap":false},"1.0.0":{"name":"thirty","version":"1.0.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.0.0","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-TRridjlKeWeUxjrFjD9DEb07hElZTutF+bqfIXYHS7mllQsZQbN3pdZfW6j5TUm12a7nhuQGrEzwwB2LH8P32Q==","shasum":"cee15bd6e27b2cb7d8a92018ed96aba33fe0e246","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.0.0.tgz","fileCount":46,"unpackedSize":37370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeGfeCRA9TVsSAnZWagAASY4P/jkvnZGLhRMA7k39FDtj\nbMtYzxUnG8NS77Pwm58ls7XOBRWIT6Pufiz1zhD873/LozjHDS2uE7dEDYm7\nsiZkfOZ5eDqu7OCnTwNHNvHKVy2fXkmaL/s3UFit0szFOTLuBP6efnf4ofat\n8+YtOoJbROvJ/MuMzBy6WW+JK3saJGPCZNtcR6qwDPwiTUQa31P4XlSpreVy\nKmkdsa2eKxfggdtg/obSixkva248IPwIhd0QowR60EAusc1phmCvXcXoRSEI\ngnAG11Yzz0rhk60XiJLNVB348gbqasyVll58p1g3av/Gli8DVjiN3MjEZDWm\naTHNVA2y394c0w6LgVOvFG/+gY3G5W0EPIjn7WJwNXuD458oCmn15vdUdX7N\nQ/ME85BIV3GbRWkHrBw25xlATvPgl6B23z7VUGefi/QjyAAWpBAoCbm5fA+H\niVkFQsJOyuUJ1InOvb3fyqy+SSMoolnp6iMKqHLXV7SR8bYUQi5jBBl/xWq9\nLA5/Fq5kUkjRZm+O6c2aE4M5hTZ+20hzPFPYxpi3sVoINtrqyctSOtfq33Fl\nESP3wd7QL84oNukKo1SrPCQxaGdecjNWuIA18Wz+eZv5bwkw6MW+yL5aR9Rm\nwya+6/2FyYkQoFk6ndwgsW6sivNemWZpKazbsvgWlmbVyj5vAYQVo6Fc+f1Z\nffRg\r\n=fOT4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDoc++ObFPsZRBRT1N+/FQcpVLgctQdlNkgerMuq1/GLAiBv1E2gHpQfgolCVKx+lb3mOwwp84UiMMlOiYKJW6kjLQ=="}]},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.0.0_1584949214424_0.5641112755610838"},"_hasShrinkwrap":false},"1.1.0":{"name":"thirty","version":"1.1.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.1.0","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-HTSonSgKbpKqldxR4Zq2m41NRmyWuAGEvLzqM8CcanzKxEXeAEIw7PlcEaZ+Qmowgw4JFBKK2Dof/CZdkwdErQ==","shasum":"10d0c266f42a1762b430933a686c3e5f1126605f","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.1.0.tgz","fileCount":46,"unpackedSize":37412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftLs3CRA9TVsSAnZWagAAq+UP/33NBti1phNnhJi0RFG6\nIpqWosl2nDqBKySM+BynhIhNQj5ZyqhVkLZBc8QX/qWRARDevE1L9IGroQXU\niSi0WwNIl2Ydw36HHRhe/sAFLR+WuH08N9A+S/VtZWNiWjaAt5fVUj8nxWa4\nGOm9tzuHs6KzxceIt9NIJ398WTBQ8gtbKs2fR3F8IBjSsnIIBzpfn1fpIWcE\nJJwdr/mLriaEFQRU13AGfI1y4NffIOdVS0U7bWCxhCVV8I75BFpK17Gla5zv\nLC0izuUv0VTR/41jJw5huFO/mlaH9WNn9znzBMPKVhEWjNHrR+0wwnpAO5nX\nFpKgwq76b1yMeXpvde1X/POq/fRNw8xE1PPw+62oWP6dDnhjbbur5MxAnVFb\npci32IeizN01J9CA1HPuJxsTaWYmaNFWDrriAeRuoARnFg4XRlAvGt+nBcVv\nSJSreFTAbqt5dBavMVhjRbqp2ba6A49EVEpHWnkj2ZzCYaKml8cjQoLsntJ1\nEl8H0Pi/3rWAuxDdf4dmK5Fr3TOOjmvg4f/66Ua+S/55SUa+SzBNNnC9GuhM\npUyhgi2ohMQxhG/ZTD9hVsrsTfS7zD62bXhMmmPGFJExJXPDDQcOv4+HQcse\nKuygWZAKv1mxfIvxgGWlIG4gNKRarjBCVp0BFMrCXSZ6/B21lAYngRDIuPKa\nhhG+\r\n=gfxK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjXHSmN5N61KSc8Kds0LW52y6tN/P2eBz8y99mZnTUjAIgNtT4r7IeR6sQHfnLt04Mh89ClORS2oOfIltXlpKzM2Y="}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.1.0_1605679927410_0.14252263699971413"},"_hasShrinkwrap":false},"1.2.0":{"name":"thirty","version":"1.2.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.2.0","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-cFKhd3KvoO5aearsKuFC5O6fa8eXPmvjo4PxJp2nVe8aYpx24oNbfXIE1cZhTTEdkv0TIs1b7G5T+hp/3vv1LA==","shasum":"2f55e8ca8b5470e4c1a3b2a458492566654512b5","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.2.0.tgz","fileCount":46,"unpackedSize":37650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGAQpCRA9TVsSAnZWagAAIoAP/2ATg1SseZKNEHwskgTr\n0Frq/JBh53ZCRQ1/roM8BPm8jHf8ySmfEDH5dDSvw7pbxN6vX4Jyd6J4OIaX\ngs7gufcwRC4K5kgX4zGXpol9ZS6tk1zEG/TlJEBFOb1P75CL5r3pzl1X667R\ndDoELKXl/Z6ZmhVT5bmFk7xUAmXXLqHDjKqdSPWQeU21fZIqlervKjZ5Orla\ny4m7A/0hNVgK5EzWZy06IKtoNtdWYMQznUjM1DqNVyyf+Wk9sqnzQYzyqc86\nRP3z+V5MROCahyt1vEgjtpixmYYFXiAc9CqDmL2q8JWq71BBP3QDEQ57xnr8\nIQqM2ghXa8zsjeUD5zGe0siKAG12n7Wu7whutAPk7eP6kXKub4av5+0qmIEq\nfljluHcRLQglSdv2HEbsOBNP9/0x2Ou3T/E9SlV99bJQsaW+6vBeCahe4n/H\noOKg7RMrJ5Dd+1Aux7pNZ4ZRPX88ZhvXB+XD2BZqZsVI/aezmKXfTNNbc0qg\nlHEmTHgp8cJXyaoxXzHo0vIb0gG/AJw7UE4dGrEQy4bWB9qrgCIg9cIscSxh\nP8+85RXXzGY6ASTm/A5FmW6XKV8Ugab6rGLcbFM8fw3Iw+i2QEThfFTLIEoT\nVirvqkgao8acilOFReDnl1m9FaItZ3PrJs1NR+seSkq/dFDOwfoZ+mt7c3na\nS2NF\r\n=oTjT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBIVNSyJuPwmpk+N2u46Vblc3wCeQDdQRGcdEd9Zhp+5AiBxpPqjeA97vfyKGGYUYdR0ZkAqzLeN3bZXgBnEq7H6cw=="}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.2.0_1612186664824_0.9923024100306415"},"_hasShrinkwrap":false},"1.3.0":{"name":"thirty","version":"1.3.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.3.0","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-Ged+WhUWRIrznhO9vH5Y+x9+oStQM7fppHYYMR0EXFokQjYKVgidcNP4kwX8cG+10J8qdXm0+9XzmGrSDoIZBQ==","shasum":"6afeddce7d66d9ac195bc6679563f38e51e41d7f","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.3.0.tgz","fileCount":48,"unpackedSize":40088,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQir6CRA9TVsSAnZWagAA24YQAJKYzp1ba3nlkrvwUYBx\n7AydULm4vIFFaSEod90WYYZIBNRQ/Js7bKqpq4A9yYKxtWXCqPnr77763FTf\nLgiksIFdcLJSyH/YxrXL6/dalNwek+JnVYWfnmJ7mXacUWTAUOt/Xe+Vaxul\nvBIDZLc6FP+0jLx/lhlp6dPh5oLbO/hAgjpMn2unOsL4y7BGxgVWTiVz5N95\nifgu/t2ITy+4/XYf5DESOe1Bl3ny2uWzKkMFQSmglxCIHTHVte8gZYsPjwL9\nxU8XTzyHToKHqhdXTVi9hKU+gxfXqhH+ttKzExtgZOzZzlPmEEJv7S32RJ8x\nKCUsFmEEVrPXfcXdxnkR34B0lsaIWdYaZaejnSSn1Ski918V+kqSKtRWQDa5\njf0c61hQVOadvsh8YHF2ofnT948vTHho792xO+4u7ZzpMHCs8dSf/ufGjHih\nuSu7F5lxUpetgEwmS8EtaIneYdaUgQubf1EmQOwMzCeXKqpaOwCqDObFascz\nO44Ps5oOgMczsayvNd+qd7cCql31D5EJf9aNU6bI6XQTUwAbHqAI1mdpTXUE\nlzjSQhSn1f8tZERLHDsUiiStiUnoA78xh1X/9dO+x2KqnS2AJrcs+8vvj/fC\nsbJ4WuYUV0swhFI8rHSHbwUHLIoI/qWGsC7Y5Sxz9luXxlI/1mK6h0p/oIsf\nuJ6R\r\n=NZqp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTEobDIIpEO4sd9sThmZEizSKJJALq4CJTGYPrqji2ggIgbmcEJYjccJk3Yq8CqUimEux5NbV1vcius8Qax96eSr8="}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.3.0_1614949114382_0.3650062692315894"},"_hasShrinkwrap":false},"1.4.0":{"name":"thirty","version":"1.4.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master/packages/thirty#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","prettier:check":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts|tsx)$":"ts-jest"}},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^8.5.1","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"typescript":"^3.7.3"},"author":"","license":"MIT","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.4.0","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-UG5aPe4/G+JdOt/fU5+gx+IbNJDNScP+gBeLBW/r+WIZzT/3HW1boM9sHe/HUgbwy+vkv5+fDIdyNwK3Ry4XUA==","shasum":"fc35136d750b8d7c53dd968083d177d4c129b6e1","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.4.0.tgz","fileCount":48,"unpackedSize":40608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwRrwCRA9TVsSAnZWagAAynUP/i+eoc/IwLZKtKsxLF0L\nVU7E05rSi2kd+FJMCi0StVxg5PHnCydT21HYuVx3VrKJ+jPazdxf9dghQKAt\njfdr+dghIzD1h/8IrwV432UhbM9XT+/ooCj4URW7uPof1+OIubccNTOb4UXt\nlYLEw0BgA/vs4i3y6vnNHr0fD8gH7j2BUN7HjHUJmUT1+ibTSMDvdhpzplBB\nucea6RELdiRD947mLTtZQtYFat7pe5peMW4mhf9KeLLGRTwAIALZ9NYtKZRS\nVMhSnv39jVy3YHZhvg3E36KUYY3M7V6echlwVOc0j5aOogAebxncV6WrTwze\nivbLFKJIaArPcFVsuCHJRewhiO1RCg0BmFudud1BfRnfW4g8ZpLiF1L8JfuY\n2hOEgpaGS+PtezpAuu6XUCDHuCeLXc52LDC/pLpNMqJ9PDTzC13zPJvrjTnd\n43FQvTjkH24lom9Lf6uv4U5EgylOMg3etoVGBfylSl87DwvMvqr3BRVGpXax\nQyOux9Rf0LdubSNwONeuqR54AQ17CXASgYltpGYWuoV4MVn7I4WJOnnwIZYE\nA73O3Wvi7tAZ9Q2Lu4k6ytTRr+LpkMcSGJZBGpMuRQluqhCikCpgGI1oJXr4\nv1xGJZDoXaXdbzJChTL7A20ivkqlbtNbVjP3IUT2bs6kGT0dT2TUPCDQRsMs\nKhu9\r\n=aMje\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVXO6oOKu5FGVWVVEpjc2jnejBEQonnkA1YPojzu9gkAiEAkvmf5DOqz789p68ATZUuzcMHmN9bcxJNrklbqNTW+QU="}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.4.0_1623268080275_0.07956687981772093"},"_hasShrinkwrap":false},"1.5.0-beta.12":{"name":"thirty","version":"1.5.0-beta.12","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","lint":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts)$":"ts-jest"}},"prettier":{"singleQuote":true,"printWidth":100,"trailingComma":"all"},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^9.0.0","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"@types/aws-lambda":"^8.10.71","@types/jest":"^29.4.0","aws-lambda":"^1.0.5","jest":"^29.4.1","prettier":"^1.19.1","ts-jest":"^29.0.5","ts-node":"^8.6.2","typescript":"^4.9.5"},"author":"","license":"ISC","gitHead":"9bb2394345f65cf581af267559b0c03c924ef974","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.5.0-beta.12","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-7vDiWeymg7FrIzI4TfMKybnIT4E77xAci+l+01D9GaCIj9ydUIXuNfyLR82sX22jOMDoRhv14s1abBEWv7DI+w==","shasum":"bddb2e4645b34caa2800863a50c69ff3b3bf239c","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.5.0-beta.12.tgz","fileCount":46,"unpackedSize":43272,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/umyqos8hRnTgkkE2fwaz1E88G9s+59lAkosFJNpY9QIgP7jM7+sjIycSGY8Uu8XDv7iPQeGMIl8uuG9LFVX5ywM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3RKzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcMA/+It7btGC0xtUO6xBWmjmMRQrSnml75cmdxzRQTTP+0fB7vT6g\r\nuu45GhaZK3WPtVLPHOq03xx+l11sh1SmfhlquV+KC/C0HIxBEbZXO0OeyINS\r\nLMDgXVz22LT6axVjgZcm8oOsshsVF+D3zyZNB6v/uzkXbF43hfHqHBuersxc\r\nw5YulLKJY4NAGm9fChe9NOsslZI/7zIu/Se95qdAk9b3+oj2H/tHmegBjhbl\r\nKTq5wG3V/NM6R8HNIvR0Sjk48jA5WZqX8KiwVQ58Sd8h2Ymav9Yb5MGgmErS\r\nHgOBptwtNmQFuYa+p6O3RPzSAlhgdjI0lTOPD+JwcpKOzEVf2OaCXuxDB4bP\r\nsgZ0WnVxHttqfob4RZxt8rZZ8DaMOlFyHkv2na6hahU32MwTt/HHrmsnJxh/\r\nB8Ongl8a2PB9FLFa+PYYePcYGwoQ6fOe05Luc21e67VwuZNaaIv6b8mkLBkb\r\nq58QG9zLic/4Xz/qBq1u8CTO62q/R9KQ+cRdIROsCZjlN2XTdIbp1VVytI4Q\r\nCPK0o3TD8teBOnuLNfzzRWEPfRl0MCczUzbShLy8aNpF6odaFWG4exbJcCVU\r\ne98eUiIXxb7ewozbNZJqcvK4vCs1YNxgxsNoNpsvzcRo2H0dsX6wzTsNCl7Y\r\n2CsaMS/8AM/d4nQYjMHySKayMP5QSm2kHXc=\r\n=NQNB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.5.0-beta.12_1675432627066_0.40173366648166486"},"_hasShrinkwrap":false},"1.5.0":{"name":"thirty","version":"1.5.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","lint":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts)$":"ts-jest"}},"prettier":{"singleQuote":true,"printWidth":100,"trailingComma":"all"},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^9.0.0","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"@types/aws-lambda":"^8.10.71","@types/jest":"^29.4.0","aws-lambda":"^1.0.5","jest":"^29.4.1","prettier":"^1.19.1","ts-jest":"^29.0.5","ts-node":"^8.6.2","typescript":"^4.9.5"},"author":"","license":"ISC","gitHead":"6664cdd29111889e0fbd562b5f6c810f873e5ff5","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.5.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-eYpTONEKzMpUZSvdNlXdE5Q6YkzHaPT1wEOwW58HEx/9lxrbEQ+nSbbXHaQc0921QGLrm6pOYuCbSMrc7RF8/g==","shasum":"73f9a77423ee7083ab080f4c8aaf568ab08fc77f","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.5.0.tgz","fileCount":46,"unpackedSize":43264,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDV/uIqYlVlqEIbuD0N92a0vq+S2cTKmELyZgWNXjncZwIgUKSToI6jPZYSnP0QOhml+P9hOvo2sdI2tTZvmzr/WrM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3RVYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqBaQ//URUfgQ9GGc5GFVkz28i2nZiMZq9LHM3UIW6zpj9MgWUvBSPy\r\n05e3r8ObLaLh9g6TenwpJ3R+WehCPbwllj74YgCkVeJ0FpUnyl7NzON8M+D+\r\n5aod41833vqPSNzInD2XJ5Xx2MiGi1/jm529KhALA9R6mwb83I+eaVAHhPI5\r\nCwYf25BNJIkS2KizlEFp6n4t8DXGchwIh12OkyJT3TMdNySMyJtaEgo0clew\r\nmTOA6XjXrJj/BXONOwy82WqsuxKxgzFFnoK+wpzOKtXkPIENqoW3PEjV8LZq\r\np0RYuWQi6JmRF2rCmLY9ecGyN0qeBeaFmYxQnMmWQLdnKP6ey/B2+jsthuVU\r\nmOx22uv5pqfq2RxTp5ILZF5kPxn88NxA0vw3VEN6S6DCtt5H4ts88Vsk8pi8\r\n9xXNnXq8MUMYnp8SiaeWJWJxHyraphcHObb9bjGzEqLIKS2zvDRFT+aSzeEA\r\nV7ZoAzoWUFdumbeqdElNb839Afehsw0zQRFThPQwL4qbMXQw++dCPvnB3YiT\r\nJNyuQuKSqYCbAAMfgKvPupCeycrWNW9/cOL1FcQNzLs/Q6c76vszA3pFg5IY\r\nkea3/BNd4lAiA+t09GEpCKAveNMUc3O1SewiVGpU0mAt7UNWa8s+pNuUxrSz\r\nqeVpKU0TGAIvHCTeoJmbFRzA1YY8ThVeBuA=\r\n=3+7e\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.5.0_1675433304344_0.12062566792025775"},"_hasShrinkwrap":false},"1.6.0":{"name":"thirty","version":"1.6.0","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","lint":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts)$":"ts-jest"}},"prettier":{"singleQuote":true,"printWidth":100,"trailingComma":"all"},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^9.0.0","router":"^1.3.3"},"peerDependencies":{"@types/aws-lambda":"^8.10.35"},"devDependencies":{"@types/aws-lambda":"^8.10.71","@types/jest":"^29.4.0","aws-lambda":"^1.0.5","jest":"^29.4.1","prettier":"^1.19.1","ts-jest":"^29.0.5","ts-node":"^8.6.2","typescript":"^4.9.5"},"author":"","license":"ISC","gitHead":"776cbd5d15efd9b54c6af1d97ce0f8fe210a50d1","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@1.6.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-qdrrfRxvj3mNTy3qL8l8sZPYkwYcWGvB6Z1rmGi00fHutJWEovrcO3FYPOB4V6RVTmaOt38PF2T2Hvck7RfusA==","shasum":"5a0cfcc189f36f3cbdab713222704c926f9452f2","tarball":"https://registry.npmjs.org/thirty/-/thirty-1.6.0.tgz","fileCount":48,"unpackedSize":45227,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqjfQ94tsBK9hSsu9Lp5seUkopsWNdFAl3gAR6pjCJEgIgNthOhnCJyOU9lm0ESWL1vxULXESCMB+K9WlGja0Ud3o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3SJJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojDBAAoGOPBkxRaWCADdM14vMzpRg1GKppbThFiHxDl/PWnK43XQq8\r\nVrglguORhI+3tAnPl26iyf3aRCb/70UrSXvnRthjBkN93LeLDvvHFzdAA3NR\r\nDONxHAI7y1746rIwzhAhC/bqOq4mxyR7oLbNqgiLSY7+2p5zmOUenQdKXQtW\r\nfUOeBulI2FKEgiPBxjN9XmfoEJt4PszBslWVpT/jh12H6q7DrnyX72JcFRF4\r\n7M1xeQ/Pav6o0S8UUqVel3jemaB6TGstOLZgsxkq62yv19WvKI9jkUNjakfp\r\n44tuEJMDqQ1T08vCRXD7B79gC1yZSZJCgeLjStpbLvINiCoV0OwF0yyb+b+/\r\nKEom91bgxN8PQVt5IQxP7e+CfDmgmGHgUBEl0YGErMxtkcR8a+PXONE5wcv+\r\nsv1GGsJ8QXzxR4yYKP2C+HYs1woOqLhGIZOb0IZAOUHVitkFOpmtI8irWuIh\r\nyoGZyK5/WW+fWz6sQO3HT4eAeNLLoBMB01wpk1RxaDffCgu/vqOxiYJCyczG\r\nwKfUgAjPOAjcAP9Zw4iufDaIhwVCcyqmLwXT0L5y6J3fzIlV7Ackto4rDlPI\r\ngK2tsTYfur8dLQkIueTxpMwshokXRJ7Rahaqf2i7w0WV4nJXgQW4S/yh/lAn\r\ngFPxMf9lMdsBYOY/YbstMbxySbVW+zeWpOI=\r\n=eZfB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_1.6.0_1675436617319_0.8817785099393838"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"thirty","version":"2.0.0-beta.1","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","lint":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts)$":"ts-jest"}},"prettier":{"singleQuote":true,"printWidth":100,"trailingComma":"all"},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^9.0.0"},"peerDependencies":{"@types/aws-lambda":"^8.10.125"},"devDependencies":{"@types/aws-lambda":"^8.10.125","@types/jest":"^29.5.7","aws-lambda":"^1.0.7","jest":"^29.7.0","prettier":"^3.0.3","ts-jest":"^29.1.1","ts-node":"^10.9.1","typescript":"^5.2.2"},"author":"","license":"ISC","gitHead":"58c686ca170792bd62e25ba4803561e54b651f8a","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@2.0.0-beta.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TdOegGbeu90OcA/pffZlkgdEsklkLjm6cSa1GnGhBuzXPrr6SZkV97jXGvvUcXuCmuWrmRmsIyOLYtza4Yji7Q==","shasum":"0e3bc1e0928dc520762ca9a13e76b289760fdf12","tarball":"https://registry.npmjs.org/thirty/-/thirty-2.0.0-beta.1.tgz","fileCount":56,"unpackedSize":51158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4Qq3g5h96EbXW8qcUkY8zJfDleS03gJdLSjXWGm0Y1gIgW5m2WV3bu5Zo/ginHYSKqq8APf5b7VxF0QbKvVwVLlw="}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_2.0.0-beta.1_1698921423468_0.8105059979616154"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"thirty","version":"2.0.0-beta.2","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","lint":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts)$":"ts-jest"}},"prettier":{"singleQuote":true,"printWidth":100,"trailingComma":"all"},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^9.0.0"},"peerDependencies":{"@types/aws-lambda":"^8.10.125"},"devDependencies":{"@types/aws-lambda":"^8.10.125","@types/jest":"^29.5.7","aws-lambda":"^1.0.7","jest":"^29.7.0","prettier":"^3.0.3","ts-jest":"^29.1.1","ts-node":"^10.9.1","typescript":"^5.2.2"},"author":"","license":"ISC","gitHead":"437fde47b76b10e2b5da2857e339f94246f547c4","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@2.0.0-beta.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/WOmtleZJgzHIEYwJKEDfzRRkqnW7/8qch33XmxPV35fuSw6oSNTqwh4HJA6mP8up4O1RZa5vEfY1aRuTOeeuQ==","shasum":"4a52346f799d1645b670b7052a7040b93fddcd11","tarball":"https://registry.npmjs.org/thirty/-/thirty-2.0.0-beta.2.tgz","fileCount":58,"unpackedSize":51647,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYeb3kqwQPh8aUscKVF9JupU6RpAcXVqVsj2dbRmxVcwIgSj5TRA0YBZcwKj4EArFjMUkS0XlGXyAaWp2pMbIyseY="}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_2.0.0-beta.2_1701258468749_0.8591491516295837"},"_hasShrinkwrap":false},"2.0.0-beta.3":{"name":"thirty","version":"2.0.0-beta.3","description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"main":"index.js","homepage":"https://github.com/hypoport/thirty/tree/master#readme","scripts":{"test":"jest","build":"tsc --build tsconfig.build.json","build:clean":"tsc --build tsconfig.build.json --clean","prettier:write":"prettier --write \"src/**/*.{ts,json}\"","lint":"prettier --check \"src/**/*.{ts,json}\"","prepublishOnly":"npm test && npm run build"},"jest":{"transform":{"^.+\\.(ts)$":"ts-jest"}},"prettier":{"singleQuote":true,"printWidth":100,"trailingComma":"all"},"dependencies":{"cookie":"^0.4.0","csrf":"^3.1.0","jsonwebtoken":"^9.0.0"},"peerDependencies":{"@types/aws-lambda":"^8.10.125"},"devDependencies":{"@types/aws-lambda":"^8.10.125","@types/jest":"^29.5.7","aws-lambda":"^1.0.7","jest":"^29.7.0","prettier":"^3.0.3","ts-jest":"^29.1.1","ts-node":"^10.9.1","typescript":"^5.2.2"},"author":"","license":"ISC","gitHead":"b349d8c7f61c8a12695c0afd38303089d50383a4","bugs":{"url":"https://github.com/hypoport/thirty/issues"},"_id":"thirty@2.0.0-beta.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TgUhjQOhpWlXe4vM+ps26oqAFeB5iBp3SoCHSOY+B4PgxctazR1Bsp3ZxcUsva43zpS0nEY0WGUt0lSDkvf23A==","shasum":"94b4fa1d8cb8de81af5bb20bd608c2be38bebe15","tarball":"https://registry.npmjs.org/thirty/-/thirty-2.0.0-beta.3.tgz","fileCount":60,"unpackedSize":57241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOVm9uL6DSOUGU1CqzwZmpQjFJoxVUh4nyu4ul7DnP9AIhAJ05nG++RAs5CNn/f8awP6L2TkYCKcEbcADr0382xzMI"}]},"_npmUser":{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"},"directories":{},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thirty_2.0.0-beta.3_1712747125240_0.18829892819579142"},"_hasShrinkwrap":false}},"maintainers":[{"name":"robinbuschmann","email":"robinbuschmann@hotmail.de"}],"description":"Lightweight extensions that makes AWS Lambda functions easy to develop, testable and type safe.","license":"ISC","readme":"<h1 align=\"center\">\n  <br>\n  thirty\n  <br>\n</h1>\n\n<h4 align=\"center\">A middleware engine for AWS Lambda, that makes Lambda Functions type-safe, easy to develop and test.</h4>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/npm/v/thirty.svg\">\n  <img src=\"https://github.com/europace/thirty/actions/workflows/checks.yml/badge.svg\">\n</p>\n<br>\n\n- [Installation](#installation)\n- [Getting started](#getting-started)\n- [Testing](#testing)\n- [`compose`](#compose)\n- [Middlewares](#middlewares)\n  - [`inject`](#inject)\n  - [`doNotWaitForEmptyEventLoop`](#donotwaitforemptyeventloop)\n  - [`serializeJson`](#serializejson)\n  - [`parseJson`](#parsejson)\n  - [`registerHttpErrorHandler`](#registerhttperrorhandler)\n  - [`sanitizeHeaders`](#sanitizeheaders)\n  - [`handleCors`](#handlecors)\n  - [`decodeParameters`](#decodeparameters)\n  - [`verifyJwt`](#verifyjwt)\n  - [`verifyXsrfToken`](#verifyxsrftoken)\n  - [`parseCookie`](#parsecookie)\n  - [`forEachSqsRecord`](#foreachsqsrecord)\n- [Publish](#publish)\n<br>\n\n## Installation\n\n```shell script\nnpm install thirty\n```\n\n## Getting started\n\n```typescript\nimport { APIGatewayProxyEvent } from 'aws-lambda';\nimport { compose, eventType } from 'thirty/core';\nimport { parseJson } from 'thirty/parseJson';\nimport { serializeJson } from 'thirty/serializeJson';\nimport { verifyJwt, tokenFromHeaderFactory } from 'thirty/verifyJwt';\nimport { registerHttpErrorHandler } from 'thirty/registerHttpErrorHandler';\nimport { inject } from 'thirty/inject';\nimport { APIGatewayProxyResult } from 'thrirty/types/APIGatewayProxyResult';\n\nexport const handler = compose(\n  types<APIGatewayProxyEvent, Promise<APIGatewayProxyResult>>(),\n  inject({\n    authService: authServiceFactory,\n    userService: userServiceFactory,\n  }),\n  registerHttpErrorHandler(),\n  parseJson(),\n  serializeJson(),\n)(async event => {\n  const { userService } = event.deps;\n  const user = await userService.createUser(event.jsonBody);\n  return {\n    statusCode: 201,\n    body: user,\n  };\n});\n```\n\n## Testing\n\nThe `compose`d handler function exposes a reference to the actual handler\nvia the `actual` property:\n\n```typescript\n// handler.spec.ts\nimport { handler } from './handler';\n\nit('should return created user', async () => {\n  const user = {\n    /*...*/\n  };\n  const eventMock = {\n    deps: { userService: userServiceMock /* ..*/ },\n    /* ..*/\n  };\n  const { statusCode, body } = await handler.actual(eventMock);\n  expect(statusCode).toBe(201);\n  expect(body).toEqual(user);\n});\n```\nThis makes it possible to easily unit test the business code without retesting middleware-functionality again.\n\n## `compose`\n\n`compose` is a common implementation of [Function_composition](https://en.wikipedia.org/wiki/Function_composition)\nand the heart of _thirty_.\n\nOn top of that `compose` provides typings so that the event type, which is extended by middlewares, can be inferred.\n\n```typescript\nexport const handler = compose(\n  types<{ inputA: number; inputB: number }, string>(),\n  serializeJson(),\n)(async event => {\n  return event.inputA + event.inputB;\n});\n```\n\nIt also exposes a reference to the argument of the composed function:\n\n```typescript\nconst actual = async () => {};\nexport const handler = compose()(actual);\n// ...\nhandler.actual === actual; // true\n```\n\n## Middlewares\n\n### `inject`\n\n`inject` is a middleware that provides lightweight dependency injection.\n\nIn order to create a dependency injection container, just define an object, where its properties refer to factory\nmethods.\n\n```typescript\nimport { inject } from 'thirty/inject';\n\nexport const handler = compose(\n  eventType<APIGatewayProxyEvent>(),\n  inject({\n    authService: authServiceFactory,\n    userService: userServiceFactory,\n  }),\n)(async event => {\n  const { userService } = event.deps;\n  // ...\n});\n```\n\nEach factory gets access all dependencies defined in the container:\n\n```typescript\nexport type AuthServiceDeps = { userService: UserService };\nexport type AuthService = ReturnType<typeof authServiceFactory>;\n\nexport const authServiceFactory = ({ userService }: AuthServiceDeps) => ({\n  authenticate() {\n    const user = userService.getUser();\n    // ...\n  },\n});\n```\n\nThis makes it easy to mock and test the actual handler:\n\n```typescript\n// handler.spec.ts\nit('should return created user', async () => {\n  const eventMock = {\n    deps: { authService: authServiceMock, userService: userServiceMock },\n    /* ..*/\n  };\n  const result = await handler.actual(eventMock);\n  // assertion goes here\n});\n```\n\n### `doNotWaitForEmptyEventLoop`\n\nSets `context.callbackWaitsForEmptyEventLoop` to false.\n\nFrom [official documentation](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-context.html):\n> callbackWaitsForEmptyEventLoop – Set to false to send the response right away when the callback runs, instead of waiting for the Node.js event loop to be empty. If this is false, any outstanding events continue to run during the next invocation.\n\n```ts\nconst handler = compose(\n  types<APIGatewayEvent, Promise<APIGatewayProxyResult>>(), \n  doNotWaitForEmptyEventLoop(),\n)(async event => {\n\n});\n```\n\n### `parseJson`\n\n`parseJson` is a middleware that parses the request body and extends the event object by a `jsonBody` object:\n\n```typescript\nimport { compose, types, of } from 'thirty/core';\nimport { parseJson } from 'thirty/parseJson';\nimport { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';\n\ntype SomeDto = { description: string };\n\nexport const handler = compose(\n  types<APIGatewayProxyEvent, Promise<APIGatewayProxyResult>>(),\n  parseJson(of<SomeDto>),\n)(async event => {\n  const { description } = event.jsonBody;\n    \n  return {\n    statusCode: 200,\n    body: JSON.stringify({ id: uuid(), description }),\n  };\n});\n```\n\n### `serializeJson`\n\nBefore that middleware you had to serialize your response body's manually and parse it back again in your tests in order to assert response bodys - especially partially.\n```ts\ntype User = {id: string; name: string};\n```\n```ts\nconst handler = compose(\n  types<APIGatewayEvent, Promise<APIGatewayProxyResult>>(),\n)(async event => {\n  return {\n    statusCode: 200,\n    body: JSON.stringify({id: 'USER_1', name: 'Marty'} as User),\n  };\n});\n\nconst response = await handler.actual({...});\nexpect(response.statusCode).toEqual(200);\nexpect(JSON.parse(response.body)).toEqual(expect.objectContaining({\n     id: 'USER_1'\n  }));\n\n```\nBut `serializeJson` makes type-safe and testing less verbose:\n```ts\nconst handler = compose(\n  types<APIGatewayEvent, Promise<APIGatewayProxyResult>>(),\n  serializeJson(of<User>),\n)(async event => {\n  return {\n    statusCode: 200,\n    body: {id: 'USER_1', name: 'Marty'},\n  };\n});\n\nconst response = await handler.actual({...});\nexpect(response).toEqual({\n   statusCode: 200,\n   body: expect.objectContaining({ id: 'USER_1' })\n});\n```\n\n### `registerHttpErrorHandler`\n\n`registerHttpErrorHandler` is a middleware that wraps the actual handler, catches all errors and creates an error response:\n\n```typescript\nimport { registerHttpErrorHandler } from 'thirty/registerHttpErrorHandler';\nimport { BadRequestError } from 'thirty/errors';\n\nexport const handler = compose(\n  eventType<{ someType: string }>(),\n  registerHttpErrorHandler({\n    logger: console,\n    backlist: [{ statusCode: 401, message: 'Alternative message' }],\n  }),\n)(async event => {\n  throw new BadRequestError('Parameter x missing');\n});\n```\nThe above example would create an error response that would look like:\n\n```json\n{\n  \"statusCode\": 400,\n  \"headers\": {\n    \"Content-Type\": \"application/json\"\n  },\n  \"body\": \"{\\\"error\\\":\\\"Parameter x missing\\\"}\"\n}\n```\n\n#### [`HttpErrorHandlerOptions`](src/registerHttpErrorHandler/index.ts)\n\n### `sanitizeHeaders`\n\n`sanitizeHeaders` is a middleware that lower cases all header properties and stores them in a new `event.sanitizedHeaders` object.\nThis is necessary because the header properties in `event.headers` aren't consolidated. Which means they are deserialized\nas set in the header request.\n\n```typescript\nimport { sanitizeHeaders } from 'thirty/sanitizeHeaders';\n\nexport const handler = compose(\n  eventType<{ someType: string }>(),\n  sanitizeHeaders(),\n)(async event => {\n  event.sanitizedHeaders;\n});\n```\n\n### `handleCors`\n\n`handleCors` is a middleware that creates a preflight response to `OPTIONS` requests and adds CORS headers to any other\nrequest.\n\n> Requires [`sanitizeHeaders`](#sanitizeHeaders) middleware\n\n```typescript\nimport { sanitizeHeaders } from 'thirty/sanitizeHeaders';\nimport { handleCors } from 'thirty/handleCors';\n\nexport const handler = compose(\n  eventType<APIGatewayProxyEvent>(),\n  sanitizeHeaders(),\n  handleCors(),\n)(async event => {\n  // ...\n});\n```\n\n#### [`CorsOptions`](src/handleCors/index.ts)\n\n### `decodeParameters`\n\n`decodeParameters` is a middleware that decodes all parameter values with `decodeURIComponent` and stores them in \n`event.decodedPathParameters`,`event.decodedQueryParameters`, `event.decodedMultiValueQueryParameters`.\n\n```typescript\nimport { decodeParameters } from 'thirty/decodeParameters';\n\nexport const handler = compose(\n  eventType<{ someType: string }>(),\n  decodeParameters(),\n)(async event => {\n  event.decodeParameters;\n  event.decodedQueryParameters;\n  event.decodedMultiValueQueryParameters;\n});\n```\n\n### `verifyJwt`\n\n`verifyJwt` is a authentication middleware, which extends the event object by a `user` object and throws an\n`UnauthorizedError` if the client is not authorized. Under the hood it uses the `jsonwebtoken` library.\n\n```typescript\nimport { verifyJwt } from 'thirty/verifyJwt';\n\nexport const handler = compose(\n  eventType<{ someType: string }>(),\n  verifyJwt({\n    getToken: event => event.headers.Authorization.split(' ')[1],\n    getSecretOrPublic: ({ deps, event, decodedJwt }) => someSecretOrPublic,\n  }),\n)(async event => {\n  event.user;\n});\n```\n\n`thirty/verifyJwt` already provides factory functions to retrieve the token from headers or cookie:\n\n- `tokenFromHeaderFactory` expects a header name (default is `'Authorization'`).\n\n  > Requires [`sanitizeHeaders`](#sanitizeHeaders) middleware\n\n  ```typescript\n  import { tokenFromHeaderFactory } from 'thirty/verifyJwt';\n\n  {\n    getToken: tokenFromHeaderFactory();\n  }\n  ```\n\n- `tokenFromCookieFactory` requires `parseCookie` middleware and expects a key for cookie entry (default is `'authentication'`).\n\n  ```typescript\n  import { tokenFromCookieFactory } from 'thirty/verifyJwt';\n\n  {\n    getToken: tokenFromCookieFactory();\n  }\n  ```\n\n**Options API**\n\n- `getToken` - Function that expects the token that should be validated.\n- `getSecretOrPublic` - Secret or public key provider for verifying token.\n- All options that can be passed to [_jsonwebtoken_'s `verify`](https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback)\n\n### `verifyXsrfToken`\n\n`verifyXsrfToken` is a middleware that checks the XSRF Token provided in the request headers. It uses the [`csrf`](https://github.com/pillarjs/csrf) library.\n\n> Requires [`sanitizeHeaders`](#sanitizeHeaders) middlware\n\n```typescript\nimport { verifyXsrfToken } from 'thirty/verifyXsrfToken';\n\nexport const handler = compose(\n  eventType<{ someType: string }>(),\n  verifyXsrfToken({\n    getSecret: ({ event }) => secret,\n  }),\n)(async event => {\n  // ...\n});\n```\n\n### `parseCookie`\n\n`parseCookie` is a middleware that parses the event cookie header and extends the event object by a `cookie` object:\n\n```typescript\nimport { parseCookie } from 'thirty/parseCookie';\n\nexport const handler = compose(\n  eventType<{ someType: string }>(),\n  parseCookie(),\n)(async event => {\n  event.cookie;\n});\n```\n\n### `forEachSqsRecord`\n\nConsider the following setup not using that middleware:\n```ts\ntype SomeMesssage = {id: string; text: string};\n```\n```ts\nconst handler = compose(\n  types<SQSEvent, Promise<SQSBatchResponse>>(),\n)(async event => {\n  return {\n    batchItemFailures: (\n      await Promise.all(\n        event.Records.map((record) => {\n          try {\n            const message: SomeMessage = JSON.parse(record.body);\n            // process message\n          } catch (e) {\n            return {\n              itemIdentifier: record.messageId,\n            };\n          }\n        }),\n      )\n    ).filter((maybeItemFailure): maybeItemFailure is SQSBatchItemFailure => !!maybeItemFailure),\n  };\n});\n```\nYou have to do a lot of boilerplate code, which makes the actual business code of processing one message hard to read. `forEachSqsRecord` lets you process one message without any of that boilerplate:\n```ts\nconst handler = compose(\n  types<SQSEvent, Promise<SQSBatchResponse>>(),\n  forEachSqsRecord({\n    batchItemFailures: true,\n    bodyType: of<SomeMessage>,\n  })\n)(async event => {\n  const message = event.record.body;\n  // process message\n});\n```\n\nUse `sequential` set to `true` in order to iterate over the records in order. If one record fails to be processed, the \nprocessing of any upcoming records will be stopped, stopped too. If `batchItemFailures` is also set to `true`, \nall unprocessed records will be added to list of `batchItemFailures`.\n\n## Publish\n\nIn order to publish a new version to npm, create a new release on github. \n1. Create a tag. The tag needs to follow semver (Don't prefix the version \nnumber with \"v\" as suggested by github). e.g. `1.7.0`\n2. Define a release title\n3. Generate release notes by clicking \"Generate release notes\"\n4. Click \"Publish release\"\n\n> ℹ️ The package will automatically bundled and published to npm via the \n> `publish.yml` workflow.\n","readmeFilename":"README.md","homepage":"https://github.com/hypoport/thirty/tree/master#readme","repository":{"type":"git","url":"git+https://github.com/hypoport/thirty.git","directory":"packages/thirty"},"bugs":{"url":"https://github.com/hypoport/thirty/issues"}}