{"_id":"@agrippa-io/node-middlewares","_rev":"10-1661629843e851ef50219a115d3dc66d","name":"@agrippa-io/node-middlewares","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@agrippa-io/node-middlewares","version":"1.0.0","author":{"name":"Agrippa Development Team"},"license":"ISC","_id":"@agrippa-io/node-middlewares@1.0.0","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"dist":{"shasum":"d39386d26acda46c4b1fc8d16523b775fe8af1ae","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.0.tgz","fileCount":38,"integrity":"sha512-9odnXKgVKmlnR1FpFx+P3VmlGwuy38kn2bnPQBOByZQCnn+4hz7DqaJCkHUp2/THGs+JzBVrB5lIPiEv+dQVHA==","signatures":[{"sig":"MEQCIArHT/yEeW4M44OiaGPmyJt0fgEUxTCHo/EWNaXWsYTwAiB+pqFVyPD3suApItjGOC8qyaS/yoVjmc8jXKr+XWCUaA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16450},"main":"./dist/index.js","gitHead":"fd44b3255f537ef629224c9789264512b88ac854","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"_npmVersion":"8.1.1","description":"","directories":{},"_nodeVersion":"14.18.1","dependencies":{"xss":"^1.0.10","lodash":"^4.17.21","morgan":"^1.10.0","express":"^4.17.1","@types/node":"^16.11.4","body-parser":"^1.19.0","compression":"^1.7.4","@agrippa-io/node-utils":"^1.0.0","@agrippa-io/node-errors":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-middlewares_1.0.0_1635118263038_0.3091049116122955","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@agrippa-io/node-middlewares","version":"1.0.2","author":{"name":"Agrippa Development Team"},"license":"ISC","_id":"@agrippa-io/node-middlewares@1.0.2","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"dist":{"shasum":"00193c892324d0e0ae828e5105d22a107042fad6","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.2.tgz","fileCount":49,"integrity":"sha512-xbL6zFUc6azwmiF98Co7v0vHzut/kKBqF6/yHBisq6b8EP1DkTSC/E5uV7QzPAe/TIqVy0WKG/EctRZ3H+4ZkQ==","signatures":[{"sig":"MEUCIDFOJTMzwk0mE3DCBs7hRXgSrIwhoGa9Y2c6VGlJRct7AiEAhQVc9RqrKkJS9L7kuQUZsJHtjkGEl+57eNatQ0gxf+I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17414},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"1e67d8b0af92e577808a650eeea4e47ab5b446f1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"_npmVersion":"8.1.1","description":"","directories":{},"_nodeVersion":"14.18.1","dependencies":{"xss":"^1.0.10","lodash":"^4.17.21","morgan":"^1.10.0","express":"^4.17.1","@types/node":"^16.11.4","body-parser":"^1.19.0","compression":"^1.7.4","@agrippa-io/node-utils":"^1.0.0","@agrippa-io/node-errors":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-middlewares_1.0.2_1635312320215_0.8960181385215817","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@agrippa-io/node-middlewares","version":"1.0.3","author":{"name":"Agrippa Development Team"},"license":"ISC","_id":"@agrippa-io/node-middlewares@1.0.3","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"dist":{"shasum":"35dbabb2633ac7f80d2f7d9e24b0116549d00d81","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.3.tgz","fileCount":34,"integrity":"sha512-FiXHmvr4fXfYfCJqQGhKzMPARaeT2ENaHF3cWUv1RWm5h0e7t5yI6Fhp2kRyppCMnTFm/3D2OD8yU7qEyFAPjA==","signatures":[{"sig":"MEQCIEvddKKSmBkoLUWEAa8Ai9H3KdaLRAqaBxL5SCWkUiK5AiAefwFgQygw6XRDefKkNdlmnCt22oMPVMfh87VHrj9Lqg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13798},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0f89932951090a426cf56bec4cf67c6d744899f0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"_npmVersion":"8.1.1","description":"","directories":{},"_nodeVersion":"14.18.1","dependencies":{"xss":"^1.0.10","lodash":"^4.17.21","morgan":"^1.10.0","express":"^4.17.1","@types/node":"^16.11.4","body-parser":"^1.19.0","compression":"^1.7.4","@agrippa-io/node-utils":"^1.0.0","@agrippa-io/node-errors":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-middlewares_1.0.3_1635313711451_0.4661697986005784","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@agrippa-io/node-middlewares","version":"1.0.4","author":{"name":"Agrippa Development Team"},"license":"ISC","_id":"@agrippa-io/node-middlewares@1.0.4","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"dist":{"shasum":"bceb227e21023eedd460398aca80a33bc8c465bb","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.4.tgz","fileCount":34,"integrity":"sha512-fXHptxxSjH0VQT2jXiVH9XpTnc/0osNWBE7fbGb9OT0W54BMaoag2phoJbKj0ZFIHUDDJAhclkAa3+c7kgJyiw==","signatures":[{"sig":"MEYCIQCu2P5FugZMpIo+vaCCLqI3lzym2NwzHOjLzcpstTPS7QIhAJJkkikIK1INPFxXiYZW0CXqCbzMCYpXgG1xSM/suPDK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwvSdCRA9TVsSAnZWagAAy9AP/iW3Yu9quumPv41E2anU\nldDcQaYPj29svJq6704TfdgDAPPTWKjV3q+ffKwCWtun4tzylaaAfdYhMcSs\nHMr47upgTV/qJ3oULPJBmbUwxZmJzqm3LzaVzghzwOW1MGvprQhgQ2O3E6Md\nM2XklzwN/yHdPlayVLEQu4f1yjuzPLM/Jv4VqU7ESWq3GF5QwgpwNM+TWFIt\nAKXgq9QB//JSgicJg4xdA1oG+DIEW0/MncsCG9T18Bc0LI2cRrJTRr9et0f1\nYIvSFTrs6BiMBwKyOdOQG64DzL4roA1KYGwi7G0nbrw0c1pRAV+DaIlrlhqp\nTwDC1rSzjIfcgB/TdfHiRdBccsyyRUWHNmsPvUH+q979b3gS/CLdbN+6g/k2\nSBf65pM32yx+DidWdAPYGh40CwRPwLoBT9AT6Fm6Ofzw/3psr7Oo+H4nL7RU\ni69Rp4LC+mCxw9jAZp/3ebeBbY2llBhKW/pjnke/kpyatlNi8ee8AIb5ty9Q\nCdv7e+vdtwDn8qm73oTX4zbfRgsNhmoDfq8x/o07Uj9+hiyfAUbpcvQSdggO\nmM4bAZOUPeZZi1chddHaUJDJkrqvI3TBdelxMZm5FwnYRCMVtGnwuwCnfgw3\nueJ4wGg/ielNShbx0LNKp8FHBdGy4FRpOBaGqR4iTMOdsuKWGwUv/EwCEC9z\nIxl9\r\n=+2+V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2983f6317999adca4dbea600073e446c49ce8493","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"_npmVersion":"8.1.1","description":"","directories":{},"_nodeVersion":"14.18.1","dependencies":{"xss":"^1.0.10","lodash":"^4.17.21","morgan":"^1.10.0","express":"^4.17.1","@types/node":"^16.11.4","body-parser":"^1.19.0","compression":"^1.7.4","@agrippa-io/node-utils":"^1.0.4","@agrippa-io/node-errors":"^1.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/node-middlewares_1.0.4_1635390999725_0.5103821937879243","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@agrippa-io/node-middlewares","version":"1.0.5","author":{"name":"Agrippa Development Team"},"license":"ISC","_id":"@agrippa-io/node-middlewares@1.0.5","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"dist":{"shasum":"62dd24537c7b9b916328318400cdd410c9cb6d40","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.5.tgz","fileCount":37,"integrity":"sha512-Dmc1KqxRZ7gKhbCX8U1BT9v8yftQqeOKPR8DSj1AMxP1HuhPYZBuBbxLqezMmb2aLhOAlcC6A27Xqb8wRbFy1g==","signatures":[{"sig":"MEYCIQC0zb7eWUDI18W5tDGl0r7Rr5HzTGSQzNd71p8/W15TbQIhAP69ySQwFIxkQOLC07xQRWrB+1k7G3UQgy9wdOK252kr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11192},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"fa8015311f7eed54f0f2aea1154546c4552dbca6","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"_npmVersion":"10.2.5","directories":{},"_nodeVersion":"18.17.1","dependencies":{"xss":"^1.0.15","lodash":"^4.17.21","morgan":"^1.10.0","express":"^4.21.0","body-parser":"^1.20.3","compression":"^1.7.4","cookie-parser":"^1.4.6","@agrippa-io/node-utils":"^1.0.7","@agrippa-io/node-errors":"^1.0.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.2","@types/node":"^18.17.1","@types/lodash":"^4.17.7","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/node-middlewares_1.0.5_1726907311277_0.3754053527775383","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@agrippa-io/node-middlewares","version":"1.0.6","author":{"name":"Agrippa Development Team"},"license":"ISC","_id":"@agrippa-io/node-middlewares@1.0.6","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"dist":{"shasum":"54d2db981bd67bedeb4101b7d7b339b0dd1fad84","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.6.tgz","fileCount":37,"integrity":"sha512-co59T72uD3CeJ8vMcEfMv7ddcex/0BgyxUkb30hgDhNLK4AFieu89pmE2ZCl9UP6ND4Ot9RAaNccohwi/u96NA==","signatures":[{"sig":"MEYCIQCQmV9PbQQvRmHq1DLPu5OhxM8ikbqwkmDUNK/JwVnFSAIhAMCTx/z39Cyy5SqevucVZd9QDw+G4jbfcT55yoySmazz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11192},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"5dfc63feafc770e0cf9c90b9108e584bccb13959","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"_npmVersion":"10.2.5","directories":{},"_nodeVersion":"18.17.1","dependencies":{"xss":"^1.0.15","lodash":"^4.17.21","morgan":"^1.10.0","express":"^4.21.0","body-parser":"^1.20.3","compression":"^1.7.4","cookie-parser":"^1.4.6","@agrippa-io/node-utils":"^1.0.8","@agrippa-io/node-errors":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.2","@types/node":"^18.17.1","@types/lodash":"^4.17.7","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/node-middlewares_1.0.6_1726977882316_0.8318574248151422","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@agrippa-io/node-middlewares","version":"1.0.7","description":"Shared Express middleware for Agrippa Node.js services","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json","test":"vitest run --passWithNoTests","test:watch":"vitest","lint":"eslint .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit"},"author":{"name":"Agrippa Development Team"},"license":"ISC","peerDependencies":{"express":"^4.21.0"},"dependencies":{"@agrippa-io/node-errors":"^1.0.10","@agrippa-io/node-utils":"^1.0.9","body-parser":"^1.20.3","compression":"^1.7.4","cookie-parser":"^1.4.6","lodash":"^4.17.21","morgan":"^1.10.0","xss":"^1.0.15"},"devDependencies":{"@stylistic/eslint-plugin":"^2.12.0","@types/compression":"^1.7.5","@types/cookie-parser":"^1.4.7","@types/express":"^4.17.21","@types/lodash":"^4.17.7","@types/morgan":"^1.9.9","@types/node":"^22.19.19","@typescript-eslint/parser":"^8.18.0","eslint":"^9.17.0","express":"^4.21.0","tsc-alias":"^1.8.10","typescript":"^5.9.3","vitest":"^2.1.8"},"gitHead":"6ea0920dbd8366047b162c9133fa02a91b8eaade","_id":"@agrippa-io/node-middlewares@1.0.7","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-yqszVkHL/D/6LE4YpajnST93PYUngq845ls3+K2Cwt0RgoYtn25P/rkcTM60CKJkuWM19qq5rYAXMeiMJIrUKA==","shasum":"489b0bda4459240ef265912a8357314fe6f670d0","tarball":"https://registry.npmjs.org/@agrippa-io/node-middlewares/-/node-middlewares-1.0.7.tgz","fileCount":26,"unpackedSize":12343,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCUypXuq7UkdIV5lhshou2vLYrak8fB1x85MZLRMHfHuAIge/K0F3MwxGW/Zamn2J3/Pp11S4SmdvPA+iXt2tlseac="}]},"_npmUser":{"name":"mattvalli","email":"matthew.valli@gmail.com"},"directories":{},"maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-middlewares_1.0.7_1779022414620_0.9721677813140035"},"_hasShrinkwrap":false}},"time":{"created":"2021-10-24T23:31:03.038Z","modified":"2026-05-17T12:53:34.900Z","1.0.0":"2021-10-24T23:31:03.179Z","1.0.2":"2021-10-27T05:25:20.424Z","1.0.3":"2021-10-27T05:48:31.589Z","1.0.4":"2021-10-28T03:16:39.854Z","1.0.5":"2024-09-21T08:28:31.474Z","1.0.6":"2024-09-22T04:04:42.531Z","1.0.7":"2026-05-17T12:53:34.763Z"},"author":{"name":"Agrippa Development Team"},"license":"ISC","maintainers":[{"name":"mattvalli","email":"matthew.valli@gmail.com"}],"readme":"# @agrippa-io/node-middlewares\n\nShared Express middleware for Agrippa Node.js services.\n\n- **`Security`** — `xss`-based request/response escaping.\n- **`ServerConfiguration`** — composable middleware setup: body-parser,\n  cookie-parser, compression, morgan logging, a catch-all error handler, and\n  `attachAppToRequest`.\n\n## Usage\n\n```ts\nimport { ServerConfiguration } from '@agrippa-io/node-middlewares'\n```\n\n`express` is a **peer dependency** — the consuming service provides it.\n\n## Conventions\n\nStandard `node-service-template` setup: CommonJS, `strict` type-checking,\n`src/*` path aliases (`tsc-alias`), ESLint flat config, Vitest.\n\n## Scripts\n\n```bash\nnpm run build       # tsc + tsc-alias -> dist/\nnpm test            # vitest\nnpm run lint        # eslint\nnpm run typecheck   # tsc --noEmit\n```\n","readmeFilename":"README.md","description":"Shared Express middleware for Agrippa Node.js services"}