{"_id":"@askeladden/hasura-utils","_rev":"3-747035577dcf4aa4f0dbff959434a389","name":"@askeladden/hasura-utils","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@askeladden/hasura-utils","version":"1.0.0","main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/body-parser":"^1.19.2","@types/node":"17.0.39","@vitest/coverage-c8":"^0.28.5","node-mocks-http":"^1.12.1","typescript":"^4.9.5","vitest":"0.28.5"},"dependencies":{"body-parser":"^1.20.1","http-problem-details":"^0.1.5","next":"^13.2.4","zod":"^3.20.6"},"scripts":{"build":"yarn clean && yarn compile","clean":"rm -rf ./dist","compile":"tsc","dev":"tsc -w","release":"npx --no-install semantic-release","test":"vitest"},"gitHead":"ef6e42de9c41103484900012b406db32bf15ebf4","description":"## Helper functions to ease the development with Hasura events and actions","_id":"@askeladden/hasura-utils@1.0.0","_nodeVersion":"16.17.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-Us+B3hCootYDny5BI8wzXE0UP4YzzYOwp6uXHhZY+3GcBIGw0QR7yt/o18jeGAiUyFZsyyXwPTtX3PN+dFYOYw==","shasum":"ec98659a49ca8ef6d74237f032b6f10602f970fe","tarball":"https://registry.npmjs.org/@askeladden/hasura-utils/-/hasura-utils-1.0.0.tgz","fileCount":41,"unpackedSize":36893,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNrQG5bkWwbPrRUslmdhEnL/NKXUEfAoXYeH2DpjXVtAIgGbTlyHnc9Die6snMQpDo9VdlZvxXb45HOeIQ/fypKQ0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkKnoBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5cw//UtEo0s5KT2sDOaHYs+CkKCt8Mc5Tg6PKIidofXB4J8dJJkQu\r\nckbbjq1eyZTbThYmI1gz6HfQM0BQ+1kSuXYXq34cTcX6dZzPZpC+Hy1U8JzU\r\nC6YHhmvy0W0kyPq4PmH1gO2K9bYr066N0wktWEu/dZhK1gsxi8AAKmxfroOX\r\nB+yYGmqF4Z6gOr7mi5j+gldt6dH2FBGYGyklPJy8IJQg2qqEx4CNLO46KKLC\r\ndFiWtOf6Pv7S/deYE4Gy1ORgq4b3A5r1F/FLZmEyW2IEj1D+mVv0awZE9KEd\r\nudQwPV+hOUg1xOASDLzTnUkaVe8y0Zm+ldQYfz0PzZvUPPuOB6wEFxn8AZd5\r\nb+iOQDD96nnEtRqg2ZL57tyxdxUPkT9H839KhSgLoVcxI/M8nNayHdJdNBsx\r\nVpNrMxAORV71ns7PZ/TH3bfiwa7Jat+VQ4iSD0DGGD4A6NgPWhPnxl9oZ+5+\r\nfiqZRegqhOjwENR6yQWRWIsgoV8ilZ5DoHWMkjuoRU22J4O01Q11IygBiwjz\r\nr2aHXCXKgqxSJrIHGvpx9q9Kaqg5SPVUmq810syXSKIN7c0QbKu7gD8Dxgt9\r\nVcUI7nYjsgQhMapFcMTDp4ALAcZRrmzs8HowJJYH9xrGkSOMYzdEH9RbNv6c\r\nQYbI9dgRSuKKFzl5AxOPkCFP1Fy1UNvUISQ=\r\n=W7kx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"petter_askeladden","email":"tech@askeladden.co"},"directories":{},"maintainers":[{"name":"petter_askeladden","email":"tech@askeladden.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hasura-utils_1.0.0_1680505344835_0.3115071422545117"},"_hasShrinkwrap":false},"1.0.1":{"name":"@askeladden/hasura-utils","version":"1.0.1","main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/body-parser":"^1.19.2","@types/node":"17.0.39","@vitest/coverage-c8":"^0.28.5","node-mocks-http":"^1.12.1","typescript":"^4.9.5","vitest":"0.28.5"},"dependencies":{"body-parser":"^1.20.1","http-problem-details":"^0.1.5","next":"^13.2.4","zod":"^3.20.6"},"scripts":{"build":"yarn clean && yarn compile","clean":"rm -rf ./dist","compile":"tsc","dev":"tsc -w","release":"npx --no-install semantic-release","test":"vitest"},"gitHead":"d872899eacd853a88389fef643200df8f231f5c8","description":"## Helper functions to ease the development with Hasura events and actions","_id":"@askeladden/hasura-utils@1.0.1","_nodeVersion":"16.17.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-nOYISDYJAVJwIZ6Cpgh92/HHxIu37Av1cZH5zO5xTKS5GWfMNNOxL8TJL0e0wstpVigE29lccTBOEgFQcPbScw==","shasum":"1fa1fa21d767b275e6b297c8b154e2d7538e9f6c","tarball":"https://registry.npmjs.org/@askeladden/hasura-utils/-/hasura-utils-1.0.1.tgz","fileCount":41,"unpackedSize":36764,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICUP8x/UoFNtjr+3nRxD5ioIQRnAO54U8t/kVeJxY76oAiEA7EeZon+MhMAotW051vp87znre0DWLbauVaAwg9g8Wrs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkK/lKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6CBAAgXqOeZWkCRZVa+t9bdgBO9f5N8zrIbswyXFDy2r3O8p2tLUs\r\nlAdtWLYTvW/Pqak9OGMHVeu23WFy0nt+E1TeCp6orWYh4zlSyeruKR/7vj75\r\nNSH2W0o1KY8zOtKwvAvYIRZcNVJM+LtJ3u/l8TrN+xbOzkYBE77C5cvoWhLk\r\nR58Hvh376mWcgAlFSViwg2xdeVlWpAYI0lpLteoR4ogSVxJ95RARE5VgCSOn\r\nGHR0jWQpZ2z9idABvDOA6z556yZEA25WKXfK3A+0GthlFBFr99LCMBhCk+7d\r\n/YxHqMF8g4rVgG1G96ISoWVTtRf6L9N/GwoOZbO/bYXFt+1YFwOM0BBI15kG\r\nHeNAFvP/zCbYw0cht9ZvVchD8tbwXbYGD21wU4qvJamgstNWZbAAIyFnD7qJ\r\na+iEXwdgdSNRD8PgM8e0oQBxjgvGovD6YB0jhTql0ICJJdJPW9Y7DrF2yDHu\r\nUZpqxOZvq/LmbG81o9UJoqojP0QThnYI/7qekE9nrzECxhV4+KSIiYQ/SqFw\r\nPO/vUlKXpDFh6RsojPqGJUD9LEfl7uqYYq0bOhu+Ca1vPVW64jjro5duZu7i\r\nK6ErtKUtzNVYOY1dDakb1A65vEGAWl/EigDdyNMK6MKlKx1OXEoCwBOSlVNQ\r\nsX7N7isv8iaL4Id4ZqJHkVEV6/xeUEG3JRM=\r\n=J7ga\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"petter_askeladden","email":"tech@askeladden.co"},"directories":{},"maintainers":[{"name":"petter_askeladden","email":"tech@askeladden.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hasura-utils_1.0.1_1680603466777_0.998640847521427"},"_hasShrinkwrap":false},"1.1.0":{"name":"@askeladden/hasura-utils","version":"1.1.0","main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/body-parser":"^1.19.2","@types/node":"17.0.39","@vitest/coverage-c8":"^0.28.5","node-mocks-http":"^1.12.1","typescript":"^4.9.5","vitest":"0.28.5"},"dependencies":{"body-parser":"^1.20.1","http-problem-details":"^0.1.5","next":"^13.2.4","zod":"^3.20.6"},"scripts":{"build":"yarn clean && yarn compile","clean":"rm -rf ./dist","compile":"tsc","dev":"tsc -w","release":"npx --no-install semantic-release","test":"vitest"},"gitHead":"d0e89642a227959a13d966b4e27f744e6483ad9c","description":"## Helper functions to ease the development with Hasura events and actions","_id":"@askeladden/hasura-utils@1.1.0","_nodeVersion":"16.17.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-GWoDg5WbH4LDICeJJuVFPLSDwsvW1EqRqgvvvNFM9R+0lCAnkytF4WzPmf2835DC0WKlWjUNlq73Ed6huBNWcw==","shasum":"9de2f917fa76658a354454dfc76ec89f602d53af","tarball":"https://registry.npmjs.org/@askeladden/hasura-utils/-/hasura-utils-1.1.0.tgz","fileCount":41,"unpackedSize":36924,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJG2di4tb/JG4nF408XkeaMKTFavgeh6zHKSTjrSKT1gIhAL838ApWPfRoqf+q6Q7J95IDLkcBHGMt1ZA/xRho8Vq5"}]},"_npmUser":{"name":"petter_askeladden","email":"tech@askeladden.co"},"directories":{},"maintainers":[{"name":"petter_askeladden","email":"tech@askeladden.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hasura-utils_1.1.0_1687776142618_0.9002206987241947"},"_hasShrinkwrap":false},"1.1.1":{"name":"@askeladden/hasura-utils","version":"1.1.1","main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/body-parser":"^1.19.2","@types/node":"17.0.39","@vitest/coverage-c8":"^0.28.5","node-mocks-http":"^1.12.1","typescript":"^4.9.5","vitest":"0.28.5"},"dependencies":{"body-parser":"^1.20.1","http-problem-details":"^0.1.5","next":"^13.2.4","zod":"^3.20.6"},"scripts":{"build":"yarn clean && yarn compile","clean":"rm -rf ./dist","compile":"tsc","dev":"tsc -w","release":"npx --no-install semantic-release","test":"vitest"},"gitHead":"f8d056534819c4667d0c94bb480f17ed92a784d4","description":"## Helper functions to ease the development with Hasura events and actions","_id":"@askeladden/hasura-utils@1.1.1","_nodeVersion":"16.17.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-Q5p3hq4KoSdZjoVQiV38dDjWZViJ+VX+4sAsDyNwoPvpm2x5auQIhKcs0K4YoXItM3H0F9AtA6hSmNXOrenlzA==","shasum":"9d8c3794f01ccbf990b06cbbbd873a0522ae1d76","tarball":"https://registry.npmjs.org/@askeladden/hasura-utils/-/hasura-utils-1.1.1.tgz","fileCount":41,"unpackedSize":36531,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGVI3GVQvoWxKDMPCQFOL54FxXp82phG+TbPmcCjKOXUAiBE1MEBurHs1T/6vltPneSB/j+wdhFwMi7bKuKkYfaa/A=="}]},"_npmUser":{"name":"petter_askeladden","email":"tech@askeladden.co"},"directories":{},"maintainers":[{"name":"petter_askeladden","email":"tech@askeladden.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hasura-utils_1.1.1_1692280264957_0.17673429980266842"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-03T07:02:24.833Z","1.0.0":"2023-04-03T07:02:25.016Z","modified":"2023-08-17T13:51:05.352Z","1.0.1":"2023-04-04T10:17:46.949Z","1.1.0":"2023-06-26T10:42:22.771Z","1.1.1":"2023-08-17T13:51:05.166Z"},"maintainers":[{"name":"petter_askeladden","email":"tech@askeladden.co"}],"description":"## Helper functions to ease the development with Hasura events and actions","readme":"# Hasura Utils\n\n## Helper functions to ease the development with Hasura events and actions\n\n- Validate the hasura client signature (api client-id)\n- Validate the input data\n- Handle the input data\n- Handle errors\n- Return the expected response\n\n### Basic usage:\n\n```js\nimport hasura-utils from '@askeladden/hasura-utils';\n```\n\n#### Required parameters\n\n```js\nconst signatureConfig: RequestSignatureConfig = {\n  signatureSecret: '<signature-secret>',\n  signatureHeader: '<valid-signature-header>',\n};\n```\n\n`<'signature-secret'>` is the client-id secret defined in the Hasura Action  \n`<'valid-signature-header'>` is the signature header defined in the Hasura action ` ('X-Hasura-Signature')`\n\n```js\nconst payloadHandler: GenericRequestHandler<HasuraActionRequest, HasuraActionResponse>\n```\n\n`HasuraActionRequest` is the type of the body in the Hasura Action request  \n`HasuraActionResponse` is the type Hasura Action expects in the response\n\n#### Optional parameters\n\nThe `validationHandler` is optional but can be used to validate input data.  \nThere's even a helper function for using Zod schemas.\n\n```js\nconst schema: z.object({\n    value: z.string()\n})\n\nconst validationHandler = createZodSchemaHandler<HasuraActionRequest>(schema);\n```\n\n#### Basic usage of the action handler\n\n```js\n\nexport default (req: HttpRequest, res: HttpResponse): async () => {\nawait hasuraActionHandler<HasuraActionInput, HasuraActionResponse>({\n      config: signatureConfig,\n      payloadHandler: payloadHandler,\n      validationHandler?: validationHandler\n    })(request, response);\n}\n```\n\n#### Basic usage of the event handler\n\n```js\n\nexport default (req: HttpRequest, res: HttpResponse): async () => {\nawait hasuraEventHandler<HasuraEventInput, HasuraEvetResponse>({\n      config: signatureConfig,\n      payloadHandler: payloadHandler,\n      validationHandler?: validationHandler\n    })(request, response);\n}\n```\n","readmeFilename":"README.md"}