{"_id":"@adultswim/express-includes-middleware","_rev":"11-2e87189503662ec47970be7e147178cc","name":"@adultswim/express-includes-middleware","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@adultswim/express-includes-middleware","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"version":"0.1.0","description":"Express middleware for loading static include files","main":"lib/index.js","typings":"lib/index.d.ts","license":"MIT","scripts":{"prepare":"rimraf lib && tsc -p tsconfig.build.json"},"devDependencies":{"@types/express":"^4.11.1","@types/html-minifier":"^3.5.2"},"dependencies":{"axios":"^0.18.0","express":"^4.16.3","html-minifier":"^3.5.12","p-memoize":"^1.0.0","rimraf":"^2.6.2","typescript":"^2.8.1"},"publishConfig":{"access":"restricted"},"_id":"@adultswim/express-includes-middleware@0.1.0","dist":{"shasum":"8eb7234c10ce81b0d50b10111d4567735d97c8c4","tarball":"https://registry.npmjs.org/@adultswim/express-includes-middleware/-/express-includes-middleware-0.1.0.tgz","fileCount":7,"unpackedSize":6837,"integrity":"sha512-C8rUVH/GwZb815Be2LjYyBCwBLViUZ4Qgnb8VkE/W4CY74lDldqUAfna4FcsPssy3Fh2TKhO0I2KmgSbx9vDMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDntI5L71zn3VdHydnCAeR3ao6TvLl8ukpwnGChGmoKSAIgByutHddXAMoHk5v41UaY7lWBdCxsydPo2GqmYaPzCng="}]},"maintainers":[{"name":"ajliv","email":"livingston.aj@gmail.com"},{"name":"jhumbug","email":"justin@justingardner.com"}],"_npmUser":{"name":"ajliv","email":"livingston.aj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-includes-middleware_0.1.0_1522364210365_0.5658922760267682"},"_hasShrinkwrap":false},"0.1.1":{"name":"@adultswim/express-includes-middleware","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"version":"0.1.1","description":"Express middleware for loading static include files","main":"lib/index.js","typings":"lib/index.d.ts","license":"MIT","scripts":{"prepare":"rimraf lib && tsc -p tsconfig.build.json"},"devDependencies":{"@types/express":"^4.11.1","@types/html-minifier":"^3.5.2"},"dependencies":{"axios":"^0.18.0","express":"^4.16.3","html-minifier":"^3.5.12","p-memoize":"^1.0.0","rimraf":"^2.6.2","typescript":"^2.8.1"},"publishConfig":{"access":"restricted"},"_id":"@adultswim/express-includes-middleware@0.1.1","dist":{"shasum":"76edbd6800f22374fea2d40e95f13583d35739b6","tarball":"https://registry.npmjs.org/@adultswim/express-includes-middleware/-/express-includes-middleware-0.1.1.tgz","fileCount":7,"unpackedSize":7013,"integrity":"sha512-VXNqBWOn2Of++NYME31U2tmuRRK/rzLk3aA71/Hu4i0yxirqSvzUOzX3XIue1iajBFHs9roiV6YsSP34HEzkqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAWae/P3P3LMzE8e6CJMJwmxHEPv1dkHo8cBz+ZeN6SQIgKVkKHh7wOsEI8A430nCPXCoj4oWlU6hgTWwXaZrErRc="}]},"maintainers":[{"name":"ajliv","email":"livingston.aj@gmail.com"},{"name":"jhumbug","email":"justin@justingardner.com"}],"_npmUser":{"name":"ajliv","email":"livingston.aj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-includes-middleware_0.1.1_1522365186882_0.9826077138523401"},"_hasShrinkwrap":false},"0.1.2":{"name":"@adultswim/express-includes-middleware","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"version":"0.1.2","description":"Express middleware for loading static include files","main":"lib/index.js","typings":"lib/index.d.ts","license":"MIT","scripts":{"prepare":"rimraf lib && tsc -p tsconfig.build.json"},"devDependencies":{"@types/express":"^4.11.1","@types/html-minifier":"^3.5.2"},"dependencies":{"axios":"^0.18.0","express":"^4.16.3","html-minifier":"^3.5.12","p-memoize":"^1.0.0","rimraf":"^2.6.2","typescript":"^2.8.1"},"publishConfig":{"access":"restricted"},"_id":"@adultswim/express-includes-middleware@0.1.2","dist":{"shasum":"ac3b22d26760ea5707dbecc7c941ad3c0e5a0a15","tarball":"https://registry.npmjs.org/@adultswim/express-includes-middleware/-/express-includes-middleware-0.1.2.tgz","fileCount":7,"unpackedSize":7046,"integrity":"sha512-jad7Qnqu1tRMfpfhjAaJUbdUVGF53TLkbazjO7dKIO7EvD4Bx2ujKK6bp4wE7fdXtCVuv4fDDKXhgBz9cIaJjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFup3OgMHlxPWcElrLEHvJqlI4Lza9hqD4CrRgzS9MZXAiAwJQwAHDoJz63Rf/X66vCbaU2NRhU3q3su5r7CNcy0Jg=="}]},"maintainers":[{"name":"ajliv","email":"livingston.aj@gmail.com"},{"name":"jhumbug","email":"justin@justingardner.com"}],"_npmUser":{"name":"ajliv","email":"livingston.aj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-includes-middleware_0.1.2_1522365401209_0.07526688426276307"},"_hasShrinkwrap":false},"0.2.0-0":{"name":"@adultswim/express-includes-middleware","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"version":"0.2.0-0","description":"Express middleware for loading static include files","main":"lib/index.js","typings":"lib/index.d.ts","license":"MIT","scripts":{"prepare":"rimraf lib && tsc -p tsconfig.build.json"},"devDependencies":{"@types/express":"^4.11.1","@types/html-minifier":"^3.5.2"},"dependencies":{"axios":"^0.18.0","express":"^4.16.3","html-minifier":"^3.5.12","p-memoize":"^1.0.0","rimraf":"^2.6.2","typescript":"^2.8.1"},"publishConfig":{"access":"public"},"_id":"@adultswim/express-includes-middleware@0.2.0-0","dist":{"shasum":"16a56a47712395c89f3e97fdde88c28d238a50c7","tarball":"https://registry.npmjs.org/@adultswim/express-includes-middleware/-/express-includes-middleware-0.2.0-0.tgz","integrity":"sha512-me7n6v0PhkyKIs26G6s1yHy7ABG0nFVkmq1Nc9+As+ISgFhwEUxZdR4hlMYNo3fhYhtf6KDrfZojSBBjsna/ow==","fileCount":7,"unpackedSize":7649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdIweCRA9TVsSAnZWagAAXi0QAI9MHmO/zFp3kcTqUuR9\nSNJbrYF9eTQ8NqmR2QdFm2ZmwtG7uFKYgZ4liIKJ4HcabLTxKRTbLvYhZxtU\nMxOCxqRtVG3p40pLYmi+Ku+uWz0FSzPI3QrdqZRLmCx9+amYGz/d4WIhdXX+\np+uCw7+xzbzJLDfwL2/1jz/edWn2MdHcHMMY2ZzKGb+3M0h6qKsAMaaf+xcH\nbGDvVnBA2URlrVa7VXWGFJV6y9wI4iipUUg9lydaL5JY+O+0NnhGfdU42QYx\nsb96pN7swvOmaM8+qUsBmjM1yAuNSPLEgGvBOiIxb7+VBjr5gliA85qQgqu6\nm+QfuZ3n2NwOWB1Kdi+C1IFg2M9BwOKHUsGpi6xv4jEQ3/4MtIUJRGgEs/28\nMzm8V68RlucYL8phVUbTpEVxsuc3TD+i7mu+AkJrTPR0CYykVuKMRD2Q6W7I\ngUizgg6qU5flx6jaFKvLXfXSjwMj5cZwYCFRWlHC5lEb5hNTU1KXpmQdS8F+\nRqKHy+Xa3MtYy8BO5GNxf6OOswoVKLp2v6tXjivH/fUBvpe7Fbog2rYcx+5r\nV8AMCK9tmNDepIvsnCrOBbQn6maAwfPk8tzWKrOnpDXIHUXEPEB7v+LPnObx\nRss+vDtsIBbF1HEz4+lI1C1a4EFV96TbHvBrHSQ64jlxxfqmEq2fV1Xdbj+p\nd4/h\r\n=oG2Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVIay/RzC+Ugj0eIlJ6NOi+cHiA4VeVt4b9pZI5S3lswIgS8poND9xXhUokvAOLj+tmtE7O5mNta2wBRPqT7ZvV/w="}]},"maintainers":[{"email":"livingston.aj@gmail.com","name":"ajliv"},{"email":"justin@justingardner.com","name":"jhumbug"},{"email":"jesse.welnick@turner.com","name":"jwelnick_turner"}],"_npmUser":{"name":"ajliv","email":"livingston.aj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-includes-middleware_0.2.0-0_1534364702587_0.1650460143682546"},"_hasShrinkwrap":false},"0.2.0":{"name":"@adultswim/express-includes-middleware","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"version":"0.2.0","description":"Express middleware for loading static include files","main":"lib/index.js","typings":"lib/index.d.ts","license":"MIT","scripts":{"prepare":"rimraf lib && tsc -p tsconfig.build.json"},"devDependencies":{"@types/express":"^4.11.1","@types/html-minifier":"^3.5.2"},"dependencies":{"axios":"^0.18.0","express":"^4.16.3","html-minifier":"^3.5.12","p-memoize":"^1.0.0","rimraf":"^2.6.2","typescript":"^2.8.1"},"publishConfig":{"access":"public"},"_id":"@adultswim/express-includes-middleware@0.2.0","dist":{"shasum":"23022b875985d37ae4f2c9359ba9493037b41eee","tarball":"https://registry.npmjs.org/@adultswim/express-includes-middleware/-/express-includes-middleware-0.2.0.tgz","integrity":"sha512-F1/4k4KCdJKBzBm0vt49C/zR+nmJwTe276lnLZ6Yi8+8avEUcuknXAaEny/T+ByzmOwCyxg1rs+/si/tSM+adg==","fileCount":7,"unpackedSize":7647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdI4TCRA9TVsSAnZWagAAbXIP/2kBa+VvFLZGs8E5ijBm\ngO2G4BLERdvgWcAogJAql5113cNO2jsxATnc+/iT6rDDCvzaYsF5aKc7r9kc\nqoYlNTcgR2qP7J3jpcACpLXJxggNRzhxnHRDLVMQcNUnUkOJMGjatd3WD/Uw\nCKmf+jZZTU+dP2RBKvMaguR/5dbyW1dQkVs06GdUcvIdFdu8K14G4y7VlCH2\n2FV//VbTJ1QukEFFcXLBLLvNJGJdS5vBP7GSnPxEuvuMSlFtWEMMF0os9Zq0\nsidi59jXIS0iYhDSCFf32avAudYEb/CO7EJ4aCd84ZMK+V2CsSCAUbOCYyCD\nY6w3hxHfE8z6quzONr7Xa8VoXhbnx/2hzsSS9VPDSWfu2H5Qs+cfXqNSCYoY\nFA7tUw81SUzOWqZjfs0YEHyu109aV7+Wt4iyfuaDngYmNM7DPaIIwbdzo6ko\nMclADI5lo5lz8z2mUteZfu4Exnb266v595SYCNpvoViEBFKIaDvRuXZs1GgZ\nO1OMa9K84x46lpnrHHJpTyVuJ4X3FRzA+BevryamOBFJgMK2sMshVgyFmBa7\nfmf07Q1E2DBpsNEi4YfHlLQ6jrZvvLIQPmVzRznVe8PAmFCJTb/NjZ7adynh\nUpxLdHP4WekVHI7A5yQxYUuQ/YipGfKP3lJHL/ERiXSBQCI6XiPrhwvrzlio\nYSfr\r\n=6UCz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7VrmdUFzoCgryMQVzTYVdYJE5abjkLGp0R7TeVykAHwIhAJv/orbu5l2Rd5ElvTnVygvsI5/3HoR0jaGoNX9N3FhN"}]},"maintainers":[{"email":"livingston.aj@gmail.com","name":"ajliv"},{"email":"justin@justingardner.com","name":"jhumbug"},{"email":"jesse.welnick@turner.com","name":"jwelnick_turner"}],"_npmUser":{"name":"ajliv","email":"livingston.aj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-includes-middleware_0.2.0_1534365203665_0.8286488543785728"},"_hasShrinkwrap":false},"0.2.1":{"name":"@adultswim/express-includes-middleware","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"version":"0.2.1","description":"Express middleware for loading static include files","main":"lib/index.js","typings":"lib/index.d.ts","license":"MIT","scripts":{"prepare":"rimraf lib && tsc -p tsconfig.build.json"},"devDependencies":{"@types/express":"^4.11.1","@types/html-minifier":"^3.5.2","@types/p-memoize":"^1.0.0","rimraf":"^2.6.2","typescript":"^2.8.1"},"dependencies":{"axios":"^0.18.0","html-minifier":"^3.5.12","p-memoize":"^1.0.0"},"peerDependencies":{"express":"^4.16.4"},"publishConfig":{"access":"public"},"gitHead":"0fb75a9e651eeb52e819663f7ed5ec0d085622bc","_id":"@adultswim/express-includes-middleware@0.2.1","dist":{"shasum":"cbe786c76dfd85e87ac3577610c0abfda24c2576","integrity":"sha512-B3kRbhlrt/1m3YOfsDw4ol/rJTQTH2KsYAs45hujcLT5OGoFMEDNOMhFUv/lxz8xS1NOPT+vJvrRPPHdDLMnbQ==","tarball":"https://registry.npmjs.org/@adultswim/express-includes-middleware/-/express-includes-middleware-0.2.1.tgz","fileCount":5,"unpackedSize":7860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyhSvCRA9TVsSAnZWagAATogP/0+aL5eyw4NvnFam1J9R\nsfNN7M6ESHJj/by+cI6XVMOmtE5wdm2mfuJtWaUGtFfbHw1ZpxJJncS1Rgdv\n28wp8IjbwRFwy9Wag1I+g4S6irqz4VfQnfJ4B83jqjKVKTUlWCNBgR+gHRok\niGgyyJiCJkiATGw9Gp+XQuEgdEB8XCZHHh5/yIhxWyja0SuDQpNF7GqB4gql\nldIAhroaxvtAtVT+/5BBzdZFHLlYmdUuPmCvxLLD+itFxNcz+TXKc+PrufXd\njd+eECuZvI6GsRIW5V7lvy0EeqA43w3KR8aSU0PvVU9390RgUdRlLJdeS6/m\nF9vtzmZlaPadL9yv9PU90DFtof0sI14iiHaYaQvZjMNpgjDK3vKLguSSlInM\nTqGNedlgz0d4tYHIdm9y8n/WYitsHRNu5jcClDOwMyeRAT0CAGA+RaMxGGp3\nO6qgqXtT+gTPWzYLlxDHhlWjd/ySChf/26He4bseYlwTuqpSoseJYAuXStKy\n3Bz8iA22WD1VT6f6X1pAheAv5IqOKGU1+lFItTkFRxZJSKe+Z8cPSnHoQjcR\nu/hHDm1FRzne3jhNatajrqbZNflE5SDsZjGLG6nyTX8BPYIltse0lOkz/DHE\n01Ft3d1D9Br8rp4LqFYjn8KrwyLQmCpx2NLfi8iaOTqh9oLG8CdbcZeucBzl\nBJH/\r\n=6Q5J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEOjzYCnc4CxLjymcDigZYUL/sQUweV3nvkSVJpYAi+DAiEA+ULNRVA9iWXKV44QFw+fmA6wPX/e9t9I3pSVF7Zvgpw="}]},"maintainers":[{"email":"livingston.aj@gmail.com","name":"ajliv"},{"email":"justin@justingardner.com","name":"jhumbug"}],"_npmUser":{"name":"ajliv","email":"livingston.aj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-includes-middleware_0.2.1_1539970223034_0.048329058900794086"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-29T22:56:50.243Z","0.1.0":"2018-03-29T22:56:50.478Z","modified":"2022-06-12T14:19:45.180Z","0.1.1":"2018-03-29T23:13:06.952Z","0.1.2":"2018-03-29T23:16:41.263Z","0.2.0-0":"2018-08-15T20:25:02.712Z","0.2.0":"2018-08-15T20:33:23.711Z","0.2.1":"2018-10-19T17:30:23.157Z"},"maintainers":[{"email":"livingston.aj@gmail.com","name":"ajliv"},{"email":"justin@justingardner.com","name":"jhumbug"}],"description":"Express middleware for loading static include files","author":{"name":"adultswim","email":"adultswimdotcomdev@turner.com"},"license":"MIT","readme":"![](https://i.cdn.turner.com/adultswim/big/img/chat-www/icons/as_chat_96x96.png)\n\n# @adultswim/express-includes-middleware\n\nExpress middleware for loading static include files\n\n## Installation\n\n```sh\nnpm install @adultswim/express-includes-middleware\n```\n\n## Dependencies\n\n* **axios** ^0.18.0\n* **html-minifier** ^3.5.12\n* **p-memoize** ^1.0.0\n\n## API\n\nCommonJS:\n\n```javascript\nconst { includesMiddleware } = require('@adultswim/express-includes-middleware')\n```\n\nTypeScript:\n\n```typescript\nimport includesMiddleware from '@adultswim/express-includes-middleware'\n```\n\n### includesMiddleware(options)\n\nReturns a middleware function for fetching and attaching site includes to res.locals on each request.\n\n#### Options\n\n##### baseURL\n\n_Required_\n\nType: `number`\n\nThe base URL to be prepended to all include paths unless the include path is absolute.\n\nExample: `https://www.adultswim.com`\n\n##### maxAge\n\nType: `number`\n\nMilliseconds until the cache expires. Caching is disabled unless this is provided.\n\n##### minify\n\nType: `boolean` or an **[html-minifier](https://www.npmjs.com/package/html-minifier#options-quick-reference)** options object\n\nDefault: `false`\n\nControls the minification of includes. If `true` is passed the default minification options will be:\n\n```javascript\n{\n    collapseWhitespace: true,\n    minifyCSS: true,\n    minifyJS: true,\n    removeComments: true,\n}\n```\n\n##### paths\n\n_Required_\n\nType: `object | string[]`\n\nEither a list of key/values where the key is the name on `res.locals.includes` and the value is a string of the path to the include,\nor an array of path strings where the path string will also be the resulting key on `res.locals.includes`.\n\nAll paths are prefixed with the `baseURL` option.\n\nExample with Object:\n\n```javascript\n{\n  legal: '/tools/includes/legal.html'\n}\n```\n\nwill result in `res.locals.includes.legal` being `\"/tools/includes/legal.html\"`\n\nExample with Array:\n\n```javascript\n[\n    '/tools/includes/global-nav.html'\n]\n```\n\nwill result in `res.locals.includes[\"/tools/includes/global-nav.html\"]` being `\"/tools/includes/global-nav.html\"`\n\n## Example Usage\n\nSetup the middleware on the app route:\n\n```typescript\nimport express from 'express';\nimport includesMiddleware from '@adultswim/express-includes-middleware';\n\nconst app = express();\n\n// load includes on all GET requests\napp.get('*', includesMiddleware({\n  baseURL: 'https://www.adultswim.com',\n  maxAge: 300000, // cache includes for 5 minutes\n  minify: true,\n  paths: {\n    // content will be available as raw text on res.locals.includes.nav:\n    'nav': '/tools/includes/global-nav.html',\n    'footer': '/tools/includes/legal.html',\n  }\n}), (req, res) => {\n  res.render('client');\n});\n```\n\nThen output the result in the view:\n\n```\n// client.pug\n// res.locals is automatically provided to the view by Express\n\ndoctype html\nhtml\n  head\n    title My App\n   body\n     != includes.nav\n     #app\n     != includes.footer\n```\n","readmeFilename":"README.md"}