{"_id":"@aerofer/sdk-interceptors","_rev":"3-288b856fea4a132cc45d56978758d7e4","name":"@aerofer/sdk-interceptors","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.7":{"name":"@aerofer/sdk-interceptors","version":"0.0.7","description":"Request & Response intereceptors for @aerofer/sdk libraries","main":"index.js","scripts":{"lint":"eslint request response *.js","test":"NODE_ENV=test jest **/*.test.js"},"pre-commit":["lint","test"],"dependencies":{"crypto-js":"^3.1.9-1"},"repository":{"type":"git","url":"git+https://github.com/davidkelley/aerofer-sdk.git"},"author":{"name":"davidkelley"},"license":"MIT","bugs":{"url":"https://github.com/davidkelley/aerofer-sdk/issues"},"homepage":"https://github.com/davidkelley/aerofer-sdk#readme","publishConfig":{"access":"public"},"_id":"@aerofer/sdk-interceptors@0.0.7","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-CsY2DzJ/FRpPPZa2ZpRlCHAlvuhPo7+EzKKJbm6VSh9iiNIneyv5xZWlY9dSXlgJfOS9pwRNlNJMZ6YN9GSnmw==","shasum":"91b7a60c36ca3c4a5df61036c81031a00d898d21","tarball":"https://registry.npmjs.org/@aerofer/sdk-interceptors/-/sdk-interceptors-0.0.7.tgz","fileCount":12,"unpackedSize":17951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVd5FCRA9TVsSAnZWagAAzRsP/1ROLLZoUex8J6QxXvvl\nY5t7itwoJ8TzZhyjcMrTL2UuXcl5DcTyi+MbT8gtUkKhk3NSxXD8pbFAF4NH\nw3TNHgKgsXCzgWGRkt4ygvQkxKC8/qAc+E76GthFKDOSf7q7SY3ZOyFZWKQe\nuEldBbTVTrKypll+PFL8lYiI8A9Xe/PLwgA2JyoZk3SLHbBpsXHIXNthUVfm\naW5uXzlWT0zEOuTxxM2OMRjh5BXq5YpIaoXKT/k+0AP5C4LzocVNxxFlwL/h\nctAJtVndLfNNYPbPvBrjSQ6rU2qU7jDPIRN8rQLS7fXTrfwiU91UCa+0MEiQ\nw1FtAUGTaB/VmOFyBujABZz47HMKyOBmRm16e/0zP4/2yMUnJJa7mkw6UitR\nSie2CCpVJg4/mWfjhAc4YIOyINY9qI/Xk7yNg5UiXhMcF47PHQ8cTkkDMP54\n7oFmHZIxQ0hz5tDOfRoaOeVbJwc2UIPQ2AJJ6Fr4WVsUQrPV358ulgwfTcwU\nUHATxu7akkM4ZflTJlDpAWdtZsMHwB2mTOWXzYmKj6G8jIWa9z4QLjNEdSC9\n0n7gA0fKTMTPztVRh8ptDq1tTlMLfLTwd6mv5K5MwXHoj2XwwNGvMt3lk/i6\nGJpDC1oRBwvkG8GCQJ+4vJrahikIzzRDfQBAuzx2gtb86ti6E0k2hyQXEogz\n704S\r\n=e9Q9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCORuABsrLykXgQEWwEHBqYYHZ8bMsY80ILAHsanSExNQIgUqz/YVAlxnOtL93vKIp2KhUi/Sx8UfXLnJSZPIE+WP4="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sdk-interceptors_0.0.7_1532354117693_0.23122426726903744"},"_hasShrinkwrap":false},"0.0.8":{"name":"@aerofer/sdk-interceptors","version":"0.0.8","description":"Request & Response intereceptors for @aerofer/sdk libraries","main":"index.js","dependencies":{"crypto-js":"^3.1.9-1"},"publishConfig":{"access":"public"},"_id":"@aerofer/sdk-interceptors@0.0.8","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-Z1yHLwSBeojheHlxVUTDAjPrdJUj3fpI9FxiEob04ox6U2gE93LckjRjuwcpEt2oi66nXOSaEguARcbPa32TpQ==","shasum":"c3ad08e9995134676658c0aa05537c54a48b6202","tarball":"https://registry.npmjs.org/@aerofer/sdk-interceptors/-/sdk-interceptors-0.0.8.tgz","fileCount":12,"unpackedSize":17495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVeUvCRA9TVsSAnZWagAAY1wP/3WeKcVmYoQUWJzlCTt6\n5xULgkjdrAhVXZ5opjPynx9EwXGf//N0kHCbHUZ9O/ZUcq5ocN/rCPJw/KFU\n/uC6EEbivnt3R6BuZDS9aRo5umY5abnYvqLN54YqBy/120HHfMLewy+XhwRb\n6YB96ZDOGX7E5NqlMcOLoP7VWPFY8R3IdLe08d/Pz5l9qWo3Ojl8V29dypTz\nTMimSSSJEmKzGrt3ACuXUz6kikDSn4mR+7Htp7aBg8xS6VRyQRirtwRxh5K6\nMDqsc/JZB7KHI5G0NbfCd8AH5WkxYDuvCkIlTp16yoY4XVRPwBdG+W+XgNP6\ndgif8+i2vi3uuhnXrfOH1ifWCq8LaYYLDJXNynAsRS289o6RqIJVTUIf0N3N\nXuu6TiSt20P5upX31ykVqRxglEvZdRiZGMhwEjJaqwTl3lDSQw/BsDEzN8oO\nRtO8RkQlkHiXXhmvQIESfkOJGLI8PXopbwcXptZBcEccSkqq3MXBd8HaBm7l\nI1u4DM5xF6hHF/Ru26sAXW6qBZVYZw6w/wToya046NYTaJfih5zBYTg+XDhV\n8pN4KkFqK2E3/bE9BGQxAm/QmZTPkKRLzw1tkMoGujh3tOQf7g2VIKPsQW4Q\nN+7l4oJCuoRVlz/OPb7RtL8X6YlNHqTmI5tDlxRXy8gWH2Qx8DiNVzbpyYVc\n9oUl\r\n=SFk0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFnw9oCas54XBJn9+RpShzMIrUQOMFoCrvntMlRfi3GzAiEA9sGJ8h5b3iQ30KNGfTfp+kadWQwZkPnfpH0jguIfrRU="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sdk-interceptors_0.0.8_1532355887345_0.9721331338238519"},"_hasShrinkwrap":false},"0.1.1":{"name":"@aerofer/sdk-interceptors","version":"0.1.1","description":"Request & Response intereceptors for @aerofer/sdk libraries","main":"index.js","dependencies":{"crypto-js":"^3.1.9-1"},"publishConfig":{"access":"public"},"_id":"@aerofer/sdk-interceptors@0.1.1","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-CkalE5PlA9N/C+it6B3xBJjehGJL/Jl0KJSzbpW8xPxcn1iLRN774O5tFifDuKja5a6IqNBJIHrKhtUX7rD1rA==","shasum":"655fb647c2e5f8cb9169124d483b3480e9a62c0b","tarball":"https://registry.npmjs.org/@aerofer/sdk-interceptors/-/sdk-interceptors-0.1.1.tgz","fileCount":12,"unpackedSize":17946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVvBCCRA9TVsSAnZWagAA03wP/0q4htQz78qXSiNj7UE3\nsjWEirhQGF+/ItR2Fb8VTW0M1ByWWf7tUqy0J6BpvPEj3Oolqbhc5hrlIW4M\noN7VIpo2BBMSGvQr4JhZbJwtu8gVl/PFhQ+o4+hNFnorNgE0nCoHlKJCYILs\nt24pgW7i/TQsLSsFPdqKXOelH4DkB7xATa2XBaafLSGbeigrp1RZ66QqRC6R\nHrkdqFQ79FRsAcRSFAPWCVI2FKMa2xWX1napcTUjbJVCtlR9a0YIw+THhcPj\ny4Bkh+fHfzhLv/CYWdHr8H2PbLCG/qQ8LHRpMlbUZG4BdsG3k00XFWrl6djv\ntdG6IEJdPTnWbjJZALSYRS5vQdcaQyDdQhn4y5AqU97FTaxE4utiidU99qa7\nOjZ/TTCxUBTF+jnDoVhOvcynNhFOZOqUKsQ9/88y6zgwY9UeCb+J6pFy37V+\n/dtKGJZanJaqMlL4CgU9q/TMPraRcVu7qAmAPw0K9I/DL4Y83Q0SdOrBA2u5\nDlmNikqrnNoI1gfK0Ip12AEauMSxKZf/5aqxZ60lwufZvlJkVwFJF3aFi3AH\n6KELZ5styy7jY5MvQdst5yxnBr2CswpRLbg32Kw8QnYjKDrXW3Kw73u/4YsQ\noi2CgfmJ/QjrSTbnh/Q8rGHZSgCB9y5hMtS6eYXF401fq6H9eqCRFhWnY+oQ\nSOve\r\n=ZwLC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEgIIpvHSz8Mx5SW5eiTtx6EdF0D5niLYROX22DADCSeAiBNBxlI0GwfUTRH73MWLw0eDnCsBPQhZE2w4e6vcgIsjw=="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sdk-interceptors_0.1.1_1532424258584_0.7506463537134287"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-23T13:55:17.588Z","0.0.7":"2018-07-23T13:55:17.783Z","modified":"2022-04-04T11:49:14.160Z","0.0.8":"2018-07-23T14:24:47.421Z","0.1.1":"2018-07-24T09:24:18.654Z"},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"description":"Request & Response intereceptors for @aerofer/sdk libraries","readme":"![Logo](.github/images/logo.png)\n\n# SDK Interceptors\n\nThis package includes multiple request & response interceptors that add utility by mutating the original request before it is sent and the response before it is returned.\n\nMultiple request & response interceptors can be applied and called in sequence, on a per-request basis, by using `applyInterceptors([...])`, demonstrated in the example below.\n\n> Note interceptors are not loaded as standard and must be included from the `@aerofer/sdk-interceptors` package.\n\n```js\nconst interceptors = require('@aerofer/sdk-interceptors');\n\nconst spec = require('./spec.json');\n\nconst api = require('@aerofer/sdk-core')(spec, { interceptors });\n\nconst requestInterceptor = api.interceptors.applyInterceptors(\n  // any function can be used!\n  console.log,\n  // AWS SigV4 Interceptor is described below\n  api.interceptors.sigV4RequestInterceptor(creds, 'eu-west-1')\n);\n\nconst opts = { requestInterceptor };\n\nconst response = await sdk.tag.operationId({}, opts);\n```\n\n### Reducing bundle size\n\nIt's best to only include the request & response interceptors your application needs. You can do this in the following way:\n\n```js\nconst sigV4RequestInterceptor = require('@aerofer/sdk-interceptors/request/sigv4');\n\nconst applyInterceptors = require('@aerofer/sdk-interceptors/apply');\n\nconst interceptors = { applyInterceptors, sigV4RequestInterceptor };\n\nconst api = require('@aerofer/sdk-core')(spec, { interceptors });\n```\n\n### AWS SigV4\n\nA request interceptor, producing SigV4 signatures for authenticating against AWS Services and API Gateway. Provided any valid [Credentials](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html) object along with a specific region and service (defaults to `execute-api`), this interceptor will sign the outbound request that it is applied to.\n\n```js\nconst AWS = require('aws-sdk');\n\nconst sdk = require('@myco/sdk');\n\nconst credentials = () => new Promise((resolve, reject) => {\n  new AWS.CredentialProviderChain().resolve((chainErr, creds) => {\n    if (chainErr) {\n      reject(chainErr);\n    } else {\n      creds.refresh((refreshErr) => {\n        if (refreshErr) {\n          reject(refreshErr);\n        } else {\n          resolve(creds);\n        }\n      });\n    }\n  });\n});\n\nconst execute = async () => {\n  const creds = await credentials();\n\n  const requestInterceptor = sdk.interceptors.applyInterceptors(\n    sdk.interceptors.sigV4RequestInterceptor(creds, 'eu-west-1')\n  );\n\n  const data = await sdk.tags.someOperation({}, { requestInterceptor });\n}\n```\n","readmeFilename":"README.md"}