{"_id":"@nguniversal/express-engine","_rev":"169-7f7e62da9b810ca4b8652a82618a9a1c","name":"@nguniversal/express-engine","description":"Express Engine for running Server Angular Apps","dist-tags":{"latest":"16.2.0","next":"16.2.0-rc.0","v13-lts":"13.1.1","v14-lts":"14.2.3","v15-lts":"15.2.1"},"versions":{"1.0.0-beta.0":{"name":"@nguniversal/express-engine","main":"dist/index.js","types":"dist/index.d.ts","version":"1.0.0-beta.0","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 7","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^4.0.0","@angular/common":"^4.0.0","@angular/compiler":"^4.0.0","@angular/core":"^4.0.0","@angular/platform-browser":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"^2.2.1","zone.js":"^0.8.4"},"_id":"@nguniversal/express-engine@1.0.0-beta.0","_shasum":"2d52e6b136f21da46dbd98e9ed634ae882fd54fc","_from":"dist/ng-express-engine","_resolved":"file:dist/ng-express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"vikram.subramanian@gmail.com"},"dist":{"shasum":"2d52e6b136f21da46dbd98e9ed634ae882fd54fc","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-1.0.0-beta.0.tgz","integrity":"sha512-rhNm/vAXu/YKtXkkcfMT1IpLIayGGeLLCqbjO/0OhVCdDnaEJz2lx134Fjk7HZrSSM/uE3R/EDA9tR1SmVXnZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyoiXod5kSuQlX+/szemaY+j+sdn8NQDEo7HI/Nd94AQIgEpFHYvdeI0/BAPv2GInd61JOHaouT7Zoe43x2YEyU4w="}]},"maintainers":[{"name":"nguniversal","email":"vikram.subramanian@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/express-engine-1.0.0-beta.0.tgz_1493069941686_0.38470106152817607"},"directories":{}},"1.0.0-beta.1":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"1.0.0-beta.1","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 7","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^4.0.0","@angular/common":"^4.0.0","@angular/compiler":"^4.0.0","@angular/core":"^4.0.0","@angular/platform-browser":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"^2.2.1","zone.js":"^0.8.4"},"_id":"@nguniversal/express-engine@1.0.0-beta.1","_shasum":"f8ece70affc80a08391abd93969cf6d7b680f2ae","_from":"dist/ng-express-engine","_resolved":"file:dist/ng-express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"f8ece70affc80a08391abd93969cf6d7b680f2ae","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-1.0.0-beta.1.tgz","integrity":"sha512-LvxnFZTrBV2NMEaIaeVXMAiy6g1dJaYrShe/a/2CqZJvum3NG4hLnksTDm6IsXky808/XJDw9Ix2a1LhJ/C2Pw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/1uuymk+BCK4DRxc7RrkfJWBD2R1FLR33OKw9Wovd4AIhAL1559C0oa02pcQtqO2RIhEysXPX2t5rfWCTHlWyyN0K"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/express-engine-1.0.0-beta.1.tgz_1494396487746_0.03697169339284301"},"directories":{}},"1.0.0-beta.2":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"1.0.0-beta.2","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 7","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^4.0.0","@angular/common":"^4.0.0","@angular/compiler":"^4.0.0","@angular/core":"^4.0.0","@angular/platform-browser":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"^2.2.1","zone.js":"^0.8.4"},"_id":"@nguniversal/express-engine@1.0.0-beta.2","_shasum":"868f32ef7fbb1a168063f2b312fff8f7bfb60ed0","_from":"dist/ng-express-engine","_resolved":"file:dist/ng-express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"868f32ef7fbb1a168063f2b312fff8f7bfb60ed0","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-1.0.0-beta.2.tgz","integrity":"sha512-kGA7H/CqPmIGRO3vrh+IE55TPiqloSnML5IY4N0pTWxNP1D8KSaGyJ9PdaFcOJjPjhnxx7/2Cl3q5F/IbAGLfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCI78Ko7xkTRhWLALYXDVTwy5nLkEFBlciSG/4nIWGXrAIgZMct5U5jJlae5uIDKndlguOhJTezWJgu8WUTO2gq3Rc="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-1.0.0-beta.2.tgz_1495845416043_0.9104229824151844"},"directories":{}},"1.0.0-beta.3":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"1.0.0-beta.3","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^4.0.0","@angular/common":"^4.0.0","@angular/compiler":"^4.0.0","@angular/core":"^4.0.0","@angular/platform-browser":"^4.0.0","@angular/platform-server":"^4.0.0","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"~2.3.2","zone.js":"^0.8.4"},"_id":"@nguniversal/express-engine@1.0.0-beta.3","_shasum":"b06dd5ece6c6882db5e29ec4ed91f65792c63a4e","_from":"dist/ng-express-engine","_resolved":"file:dist/ng-express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"b06dd5ece6c6882db5e29ec4ed91f65792c63a4e","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-1.0.0-beta.3.tgz","integrity":"sha512-WBHOdIHWdNZJAo4p13sFJGc5sZO5Sq83jmPwdwL5JxkjcxI+REQRvWsSMGFUZD9b8q1U0r9XM+2zPn2mVPAeOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8YTdnCbDL3gwDEa2Mk3S3UUP5NL2j0XTOVCawd6V52wIhAIkuuQmqmRXkoWeDbSqOMzGLJ7e6SmWC8Rn0BtGuHCWj"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-1.0.0-beta.3.tgz_1503957153798_0.48586824466474354"},"directories":{}},"5.0.0-beta.0":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"5.0.0-beta.0","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^5.0.0-beta.7","@angular/common":"^5.0.0-beta.7","@angular/compiler":"^5.0.0-beta.7","@angular/core":"^5.0.0-beta.7","@angular/platform-browser":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"2.4.2","zone.js":"^0.8.12"},"_id":"@nguniversal/express-engine@5.0.0-beta.0","_shasum":"0e42568d8b0aa28e6afed7dc215fe6724e53c836","_from":"dist/express-engine","_resolved":"file:dist/express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"0e42568d8b0aa28e6afed7dc215fe6724e53c836","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.0.tgz","integrity":"sha512-oc070U1iRbDKDXU9rKwmeNFMQTCHr/eLZCwuqv8fjVVKyhXnxoGwTSUMQ0ez1nlrHzeF7wlYixem3LtpeuBscA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHRgSYFyRHLgMaumg1BsZUMimp/vB2Mp5LJa5i62RKdiAiB6WlBi19/mnghUVoBrdq2FcQVnDrzOWK8v8pKfJmVcTg=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-5.0.0-beta.0.tgz_1506056665677_0.7191002126783133"},"directories":{}},"5.0.0-beta.1":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"5.0.0-beta.1","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^5.0.0-beta.7","@angular/common":"^5.0.0-beta.7","@angular/compiler":"^5.0.0-beta.7","@angular/core":"^5.0.0-beta.7","@angular/platform-browser":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"2.4.2","zone.js":"^0.8.12"},"_id":"@nguniversal/express-engine@5.0.0-beta.1","_shasum":"5f3f1d9f052a7e284fabbe2a138e54be95594653","_from":"dist/express-engine","_resolved":"file:dist/express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"5f3f1d9f052a7e284fabbe2a138e54be95594653","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.1.tgz","integrity":"sha512-wr3tMZArwBXBpwdlyYzPEGI+p9V9I2OfTP50R/9Thx5sQW3KGr3haFfofh36YtC8iW/LEESbStYKcXA2aowA1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBHtJLO021HhcGPMv1/QUSAMB/hs1nMKJz6pzGymPp7AiEA2CYkF19vCY+qaIqmXGl+9VL2sv5jcurVNCQ+EvHu77E="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-5.0.0-beta.1.tgz_1506121053301_0.6827452739235014"},"directories":{}},"5.0.0-beta.2":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"5.0.0-beta.2","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^5.0.0-beta.7","@angular/common":"^5.0.0-beta.7","@angular/compiler":"^5.0.0-beta.7","@angular/core":"^5.0.0-beta.7","@angular/platform-browser":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"2.4.2","zone.js":"^0.8.12"},"_id":"@nguniversal/express-engine@5.0.0-beta.2","_shasum":"e4ede99136bd9d382dc794f7418472acb60fe1e3","_from":"dist/express-engine","_resolved":"file:dist/express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"e4ede99136bd9d382dc794f7418472acb60fe1e3","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.2.tgz","integrity":"sha512-WSIQodn2W3gklKvsf5Vj8RcAyi0buzAE+LR3UF+Nmt8FOn4XwA604ZUvQE9QPILw7bT+D+sEMozDDh31v/zotw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfpQoNN64n62GwFvL/PCXEEtoVjZA1BSu6GjVSmEvDsAiBgvN3Bv1PC/TGt7xriOLXbGjz46rd6KKthUc2G30CUcg=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-5.0.0-beta.2.tgz_1508535370828_0.38964496133849025"},"directories":{}},"5.0.0-beta.3":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"5.0.0-beta.3","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^5.0.0-beta.7","@angular/common":"^5.0.0-beta.7","@angular/compiler":"^5.0.0-beta.7","@angular/core":"^5.0.0-beta.7","@angular/platform-browser":"^5.0.0-beta.7","@angular/platform-server":"^5.0.0-beta.7","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"2.4.2","zone.js":"^0.8.12"},"_id":"@nguniversal/express-engine@5.0.0-beta.3","_shasum":"845a8fa74b1d85555cbbb703a43bc88a5d20c365","_from":"dist/express-engine","_resolved":"file:dist/express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"845a8fa74b1d85555cbbb703a43bc88a5d20c365","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.3.tgz","integrity":"sha512-djhHVCNYqkTxi1Mim6FNs2Cge/OE6NNuvL4CPynDHJ9SKuMpoEkGLIUjWeNygvhQ0Ncrkdpp53NhzQ2f54mDfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9EUsRtalIsZ4NXjY3gms+Qn1iKh0kZk6buu62Z1QC6AIgSI+073HtLil6ib7dVY62sU8Oc6Sgg+2mFgjIaBtgehI="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-5.0.0-beta.3.tgz_1508535683061_0.021516720298677683"},"directories":{}},"5.0.0-beta.4":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"5.0.0-beta.4","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^5.0.0-rc.6","@angular/platform-server":"^5.0.0-rc.6","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^5.0.0-rc.6","@angular/common":"^5.0.0-rc.6","@angular/compiler":"^5.0.0-rc.6","@angular/core":"^5.0.0-rc.6","@angular/platform-browser":"^5.0.0-rc.6","@angular/platform-server":"^5.0.0-rc.6","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"2.4.2","zone.js":"^0.8.12"},"_id":"@nguniversal/express-engine@5.0.0-beta.4","_shasum":"8f4421204e7bd2a42971b3db23d188dc0f3f5f1a","_from":"dist/express-engine","_resolved":"file:dist/express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"8f4421204e7bd2a42971b3db23d188dc0f3f5f1a","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.4.tgz","integrity":"sha512-K/sRsOB67ZqghMa4jHrch5vFg5f0Vvna+CmPsj4VSK8iGeNGdLEeEVQj4uPUTd/xUpcNdOgJnu/dz7FA4icQfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGorUdK+c/tbfxrkAisR3C0q+GMDI2XkShpkEgv3QOKIAiEAqZcN7K8PQPAbFPot9Yy4m1WNvjQnRsbrOFF44CgnvNE="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-5.0.0-beta.4.tgz_1508973547952_0.7493250067345798"},"directories":{}},"5.0.0-beta.5":{"name":"@nguniversal/express-engine","main":"index.js","types":"index.d.ts","version":"5.0.0-beta.5","description":"Express Engine for running Server Angular Apps","homepage":"https://github.com/angular/universal","license":"MIT","contributors":[{"name":"FrozenPandaz"}],"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"config":{"engine-strict":true},"engines":{"node":">= 5.4.1 <= 8","npm":">= 3"},"scripts":{"build":"tsc","prebuild":"rimraf dist"},"peerDependencies":{"@angular/core":"^5.0.0-rc.6","@angular/platform-server":"^5.0.0-rc.6","express":"^4.15.2"},"devDependencies":{"@angular/animations":"^5.0.0-rc.6","@angular/common":"^5.0.0-rc.6","@angular/compiler":"^5.0.0-rc.6","@angular/core":"^5.0.0-rc.6","@angular/platform-browser":"^5.0.0-rc.6","@angular/platform-server":"^5.0.0-rc.6","express":"^4.15.2","rimraf":"^2.6.1","rxjs":"^5.2.0","typescript":"2.4.2","zone.js":"^0.8.12"},"_id":"@nguniversal/express-engine@5.0.0-beta.5","_shasum":"3cbc0fb7f928012d61240681631581fb0ad327f5","_from":"dist/express-engine","_resolved":"file:dist/express-engine","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"shasum":"3cbc0fb7f928012d61240681631581fb0ad327f5","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.5.tgz","integrity":"sha512-wA/dOjqxol0NFnXQ5D+F1NeDgFdni+JoLLWS2hF//C97CThbf0IDcjLtixpL9lJ3HxHHVlKkRcWOTkgeYk7mRg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIANEAy/1sY5erbNY6HeEIblvumjkUAYw0FTumeLTGPfuAiByNZrECaSNtowSC9wvbUAOn5p2T3JZIDGeWP7IM55Xzg=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine-5.0.0-beta.5.tgz_1509470443907_0.8337153077591211"},"directories":{}},"5.0.0-beta.6":{"name":"@nguniversal/express-engine","version":"5.0.0-beta.6","description":"Express Engine for running Server Angular Apps","main":"./bundles/express-engine.umd.js","module":"./esm5/express-engine.es5.js","es2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^5.0.0","@angular/core":"^5.0.0","@angular/platform-server":"^5.0.0","express":"^4.15.2"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","_id":"@nguniversal/express-engine@5.0.0-beta.6","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-EuBLaXjcPQst+iFq0AH6iGIC5a3dYbBz/ZFEAqN+/aFVCUsxzrE3F+ZvwHwxDNgbUMa/idtSLm2ezLPxV3LqfQ==","shasum":"7054354be3b06367051cca628fc9c1ea8fc42600","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.6.tgz","fileCount":25,"unpackedSize":62275,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHMB3x8jH5gQWoCUBnIhBXI2KKnUUS0zOAqb2c2VTPGpAiBjDBvgnMDdQVKLx3sXrn9gorOkeedJVtiZekUFsttbuA=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_5.0.0-beta.6_1519847466525_0.06593587499664433"},"_hasShrinkwrap":false,"deprecated":"Has packaging issues. Use 5.0.0-beta.5"},"5.0.0-beta.7":{"name":"@nguniversal/express-engine","version":"5.0.0-beta.7","description":"Express Engine for running Server Angular Apps","main":"./bundles/express-engine.umd.js","module":"./esm5/express-engine.es5.js","es2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^5.0.0","@angular/core":"^5.0.0","@angular/platform-server":"^5.0.0","express":"^4.15.2"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","_id":"@nguniversal/express-engine@5.0.0-beta.7","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-PwlQxbeA+yr7pSbbyVRSF6pXPmkE83DYNUhvvqjvWRUlXfCxr5czdREN1sMBytqX5COc4/7SCBzrULLLTbN6WA==","shasum":"fa2e6fd40cfeeebc08b15ce3e372c66c9ba31a12","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.7.tgz","fileCount":27,"unpackedSize":23066,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQXOW6rCY/YtBi0bpdQogjWX0YPSBC6vokzCA1RGJ/2AiEAg3Y1hr3MZzNF9gdG8CQOuqehW7vaB1M7nyYfKai0law="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_5.0.0-beta.7_1521642177871_0.13085920581801047"},"_hasShrinkwrap":false,"deprecated":"Has packaging issues. Use 5.0.0-beta.5"},"5.0.0-beta.8":{"name":"@nguniversal/express-engine","version":"5.0.0-beta.8","description":"Express Engine for running Server Angular Apps","main":"./bundles/express-engine.umd.js","module":"./esm5/express-engine.es5.js","es2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^5.0.0","@angular/core":"^5.0.0","@angular/platform-server":"^5.0.0","express":"^4.15.2"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","_id":"@nguniversal/express-engine@5.0.0-beta.8","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-AVbgYXZeBKpNa36Xord4GWrYY82O2TUWMM3RFARLPSOGeJz4d8lawYpdcXA2gtRAWqj6EDXWuYNxs3cxHoP+qQ==","shasum":"d56ac2897c783454f507bb8ef9e8cda6656836ea","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0-beta.8.tgz","fileCount":47,"unpackedSize":65777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0ThLWwHgNLNMxk+FMDHrVyZsBvvGFCCaUlwcGBpAqagIhANs3AZDvboFW357pCewkIyc8Tdyx4mfgyKHeMP0u8wha"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_5.0.0-beta.8_1521841076122_0.49385465747350143"},"_hasShrinkwrap":false},"5.0.0":{"name":"@nguniversal/express-engine","version":"5.0.0","description":"Express Engine for running Server Angular Apps","main":"./bundles/express-engine.umd.js","module":"./esm5/express-engine.es5.js","es2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^5.0.0","@angular/core":"^5.0.0","@angular/platform-server":"^5.0.0","express":"^4.15.2"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","_id":"@nguniversal/express-engine@5.0.0","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-USYwZDUymQjxEf3SahdSQIK6qAWNPFDYmBmcxdPxLE3DZCMl0W+PSAv2P6sJoU3SVvaQeW8VA8iiSQy8+0iXlw==","shasum":"e218fa9fbc7b47379bc106f69ada274e05631243","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-5.0.0.tgz","fileCount":47,"unpackedSize":65770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6ka23sEFYElYdO0pPKkhxRGQ/l4ZhC/f/vCfhV4YBJwIhAKjFK6VgmjvhdrL/wq7tujZ0efXEwZTwLxYhqT6NSbsT"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_5.0.0_1522629911649_0.8412085064996997"},"_hasShrinkwrap":false},"6.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"6.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"NG_VERSION","@angular/core":"NG_VERSION","@angular/platform-server":"NG_VERSION","express":"^4.15.2"},"ng-update":{"packageGroup":"NG_UPDATE_PACKAGE_GROUP"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","_id":"@nguniversal/express-engine@6.0.0-rc.0","_npmVersion":"5.8.0","_nodeVersion":"8.10.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-SSmjmJ4cbZZVdMcNr/CI9zkvbMhElvvwf3dIyJ8hSVb5DBaTRpmQcpUTsYiuurnUJEwreANlHR0kMyeB8XxyQw==","shasum":"72fe81ccf50d9a2179bea33f8416caad449b453e","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-6.0.0-rc.0.tgz","fileCount":47,"unpackedSize":65685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3n6LCRA9TVsSAnZWagAA0H4P/A2rwFHex1xCeR55C8+X\nhu8Jqj7Y+uW2C8cBphy3IZG2Kz7Uaoy97VDR5r+kXjx4m7EbtGpRSJ4KMg/E\nymQzTte4aHsCEhIocd5HNEz3X137S5MHXE+7cI0KCf7p0EDnSQ956TeVoX3V\n9pz+rqvEU8l535TnhyqX4l1hzLkMGL+7MzoW50STlAUxmGx6OUjuk546L3Je\nGUS5L8tFkMLkAsjMgaeWnJeWRJR1Q1KK4rWzUSJiliJonauYvIlu0hU4RESh\n6BkOPD+qhlwaSKtDqnaBM/tOd5CVmzGd2b7FJe7mOWp5m25jU9mhsKapKNSX\nKy5rV4I197IEnMmmSQNksrPnkTw7G5JKmvhxv3z5M1KNJtnVLAsG6UiTa6ys\nLSMeuj0Dy1x54SKEPtslnUiva43ovinw9gj+2SbH0KFpRlDPcbNQc30nxfcK\nBwbd3y0Mes2i9IWy6Gmp51nK4q0MoYWHz3dxPGQRgRwykSpY69BuhOsKmB2F\niXSzeH74B5a1IUWP4zS2vjQcrGnImlvemYzQpiS2pDQPHHte299HU4yvAVXl\nSe3gEXj4cynkJ02YxcCYG4WEgq/RQmyEKdr1asrl1bs5gmUcx1dpEbIqfsLt\nEFW6xkkvU9erp6z3Z8lAUDXzkri4reHuNEp5BwOow0981bAICyZ+YehTtyNg\nQiz+\r\n=Mx1Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3VEbb6HDKZ5A7L+EbHgJ6ViOZQtEXSJNQYI4lFnCVMwIhAJmKK84GlsT6PWhbu2Q/d77P56YO0pm+01ExH3+UoaJj"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_6.0.0-rc.0_1524530827105_0.4350707827089775"},"_hasShrinkwrap":false},"6.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"6.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0-rc.4","@angular/core":"^6.0.0-rc.4","@angular/platform-server":"^6.0.0-rc.4","express":"^4.15.2"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","_id":"@nguniversal/express-engine@6.0.0-rc.1","_npmVersion":"5.8.0","_nodeVersion":"8.10.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-0tBmlwc7nUNtytppr/DKYgBEblnqq9zguKDpVmmDrEpznCIXM4wthMkvCeZPfxqgFy9WEl7Ospi+uT4LFOj1+A==","shasum":"af7e670b4f490886588f65ba92268a755cf69ad2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-6.0.0-rc.1.tgz","fileCount":47,"unpackedSize":65620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3pThCRA9TVsSAnZWagAA95sP/194eBcx0vdmUTCqBE2k\nVT+/57fLWejZ+RJAS3pJfLZGQvF77XmZJLKaGmHZLJG/6WShrdD3hjrmoDmz\ny21GD+8lDr8I/cXsKQVscxBhQIYQMCgQgStkjeOteE3n3cU2DshWt+CqkLVI\nli+WB9jvyUWhcmRj48r94qk893YYLmKlzbj/Jq7jnllTQEl5LdOLaff6BsNi\nDvKtt9yqrtRU9rE/Qt3Sh8dG5Ah4b2TvhjAvlLgo8iN+w8WlC4uocyCThSRG\nk4uBt3JL4AfFAW0tn6fzYo404iPPgiA3F6wzLosPYj1tbAvax3c54vwjUTDY\nayNXeVjFRCvj/fV7yzK3qBc7Zov5fw83VjCEZyPdgIgou0b+o0/A9H4hyhIX\n+mKE5YUuLyPTFQGNe0o7opltKwS94UmYQXRRw0V8GvuNtms5VOddk+43t8TA\n7i3KRoP5NjT2vo+IdF8k1nBfgd15/kao5mb9kKbk62SeDsRwTPT0jXwAywZ3\ni7LFFnZ2VLvHC6WK4nTNUP0f5iVs8GSkOZe+HG/uYbsljm2FRzpGP2BDMGS8\nzhr+apO9lSNb377JBKv4FdpTCZPtvK8ekyLgnLSx2KHVCc6WbfUisLP6gGqC\njtO8ZEP44EpGpxTjbZlnCLs/tMiVaFm1G6dNYCm3PstE78YtBpMQUtlMpU/q\nGfP6\r\n=8juy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBAp5PcvUK15thwNoVIomwp3GRysm8g3uZcUDAlkP2CaAiApkpXIZ8W9FvpKYYYVKRFkfMKPRSEjTGR1PiYptnXbkw=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_6.0.0-rc.1_1524536545109_0.9415370124974001"},"_hasShrinkwrap":false},"6.0.0-rc.2":{"name":"@nguniversal/express-engine","version":"6.0.0-rc.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0-rc.0","@angular/core":"^6.0.0-rc.0","@angular/platform-server":"^6.0.0-rc.0","express":"^4.15.2"},"ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@6.0.0-rc.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-3MySjBFqW3hi5pd2PCdPYz8+zmmSd3IZfus1V5oMmprdGkdYjrp3yd6f/Y4Ysct2dJb+gH6a+eSdRwLi8FFvFw==","shasum":"ca4a576d62614e04aea8a03f603b7e1235dff033","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-6.0.0-rc.2.tgz","fileCount":54,"unpackedSize":106205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3r20CRA9TVsSAnZWagAAJ3oQAIaO1KwnvNGltXnVhnVz\nwfsgCSASbLKLdKTx7Etvktd9dQCObVi99IG5Wl7SrIbUswHVF7sAwYyuEFQ7\nnZ56QueD0UtM5BOqiYgq7XWJUUG0DPjJ3WlRy74MMwZCO0psBzL+zrSFMltw\nwzvn2KjiQ2SLo6tby1yaYOfZ5W3wWbD+GcBYJmRuBo6VvlRXD0GAGgNoSs7n\n1xgq59duJ4X56PuQEoXnTRBahjQ6gnapDzzOCvs5pM16dwlB7rCN7p/2X4uR\nJEYEGxIFty6450Kv9emdhzHzSGs2Gqj5LT7fiEQUyJHigBqX6Ts9vqoqgz2o\nKfOAY6zCBjovEVbkmmkee4YrjpEiLe9pVMkEkBcgvjztOFvI8rvdCptQIUrM\n6V4WU4iItI68GmHkEkx08ChYPDLp57zrNsjBM3HUlVsFPSoQWSrweR+ZK900\nKrM0N7j0AhXd/2+Q+CYqnLtf4MbFGVq9K4nZ3GIjvvPX/MZBfoYmmUBUUkKg\nQvRGi+qH5+Fs7lRYscxQowX/qFp+yhJjYUtd/bX0V91ErlaHD9+OcRQnIX39\n1dA2UhE1aqNqHbLDhEKtoI8lXUEAgRI/scNrIEzv/18bL1mdNMDqTigGhdxK\n+ga1xQlwDUJ44jRCrIgvr7jrwraUuwspQyghSsu1j5Hdh0FbXyMdiMt0M/Kv\nAKqV\r\n=Rox1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2Zdqy9zj8VS+fYLDTzAhZbzRBr354xYXIQdZw85pyrwIhALfzwwZAAG1uSyZaHhZRqzwEA9upP73wGybyJn6YlPkt"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_6.0.0-rc.2_1524546996459_0.044756315562172855"},"_hasShrinkwrap":false},"6.0.0":{"name":"@nguniversal/express-engine","version":"6.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0-rc.0","@angular/core":"^6.0.0-rc.0","@angular/platform-server":"^6.0.0-rc.0","express":"^4.15.2"},"ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@6.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-BFedPnFZcTDXGY2TedWyY29SVuHq/E6cpFDPN5bw4gn+lAd6m0aVySebQX7s2YPvX9scU/ZuKiOT3PRAKlgv5Q==","shasum":"f8bc7b5e940afb1ffdbdcb1bb22665d440ea0b0b","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-6.0.0.tgz","fileCount":55,"unpackedSize":108601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa642wCRA9TVsSAnZWagAArr8P+wdZjGnUu4TjYvoXfVgW\n30fzMYiUHzEyhtHthbRKKIuZZOtRqgueXEE2jMRWwuE976Pq54WhOHKXPMQi\nccBcuANd58UyaB8wBNKSbLAfF3dnwv1MMRa58EMx2oZsbrZ3hmTif4m/DGfb\n7/ftBmKxziagggEc/fU6UB03pD7Q0SLdatxe/FnvDD1oC/uMKHLOp16Q+g5h\nxJ9d+ZI5H17bp+FVmScbWhrAsKKCyld9DBabkXgIQRbShwzziR1d8VHl1Do4\nt81ZMN2L1XlIYi3Yhq816+u7BDdRGBajz60Im2BWpNx5n3Lx2O5Wd+yOGSoy\nPtZFxuZlewk7ENU/bhEobGn5x1tVOivkBovTTK0vrXb+EoqslX5BejwzVj25\n7LVfwu2OS5XmaHBAJbsj9MnCvnpZPdg/lh8e6IfdFueY2lwbNxKZ1x1jNnkb\n6fE/cszpAZFtO8+F8i3dr2waK5SHIcZy1OWfo4ikXktY/0m3ICyC+PfBZVgi\nSCuDKpAApJGTKuYnu4SJkHpIRUOxmMhXfO97bQSvikgjj//q8dJgcWB9l9OV\n0i50WoUpVExdm/QK+KmQhubmEGX55CtZHKmGwGtZ1E9Clkc3QCAzmYDomwHI\n+XkhYGxexuvA5y/vBzKES97/19qrzY+RuXHykbWEXunXWYVsJ0ePeBE+fBO+\noMWZ\r\n=5J8B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDffJjek9GDqKu2isF1MYHs9Rg4gxAYCRm3PNsjNgUn1wIhAK9+oVAp6kd7/8wr3zuMLPfRB3u+oPlYznIsq/jEkVdl"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_6.0.0_1525386671970_0.8235075890576398"},"_hasShrinkwrap":false},"6.1.0":{"name":"@nguniversal/express-engine","version":"6.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0","@angular/core":"^6.0.0","@angular/platform-server":"^6.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@6.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-A5v1IF+8S20PBVDwzwOspDZbkb40cWuzZvxPJcqiSSe+B8wCe620AQX+BCJsKsGh0k6z4VEDqEqJLX9SX21Lig==","shasum":"384d761556a0accc0738ae89b8a63afb43e76a86","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-6.1.0.tgz","fileCount":65,"unpackedSize":144023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfjfXCRA9TVsSAnZWagAAq+EP/AjSwZbV/QCSw+VQbFe4\nk/Md4uL3ctEiFGJeagxV7IGNWUlVIibDcwIqylaFM2LO64gmoBTB697b8cCG\nCX20e/0qHaG3u7CoIWBJfbD7LVPevuoBv352xscFui+EyonGjcIpTXbva0oX\nOZ2ovBuvj4PJUvRnDh1hVJmO0RYVXEZ4fCvIAzGoVda90VG9N2lwd2ztnQYK\nGi8UKoKvK1xKH5hwyMjBUaZ1cj4j0mjha9XJ2mO22MuhdYd/WoRtxNCvDWPV\n5rXQtG0amsBA4XEo1bCs3PFpQKLE6YiOb0Y5+kanCYpNU1ChehKzoEawPZns\nvOdQP3AkaI5rRcNVp1/X2ZaS9cEHAQ0vLKM2WWU7SUsnRYSWtIfFwlwlqYIM\nsJtnpbpjL56cWKEchvUWlKEkJDcbr5re+wLT3nvipuOIidHETC6YZVvmv10I\nh4Rq+wRJdLZPY0sjU40wtKpauYtpfe7EKy4EtKqOrK2BoDQpK5s5pF4BV/AD\nR+2WPmIJQVzRsb6DGTA9/Rtl55I02AAIYWnlVDa4t1X12BmL5X8aIJ1QvDSK\nGR4K4JfudyHcMp+dozhJHjL01hjlQX8yJ3YamlgKdWUkDQwBRhcTN3Qu6c5/\n3cJTNh8wnasW1CmIVL0b2Cw2gaqefNf+1X0MvBo7Lqc72khr1oEsMuHr8f0R\ncGRy\r\n=QeeG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF5ZGRahdlnMZR91CDJBwkyNWfVXslYS5dL3ic5NNHqrAiBYD8z1r+P/3uAtmpldrz7fc5eWL5PzR2ogu0lcr12f3g=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_6.1.0_1534998486620_0.47520296641947346"},"_hasShrinkwrap":false},"7.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"7.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0","@angular/core":"^6.0.0","@angular/platform-server":"^6.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@7.0.0-rc.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-yZdHoqEJCQ7+rH0TDtMS43hXg7WSvh9t5qp5TZa0EDLrr7KabxxyuvvXXmyYaPjRq+OkCsPiYbnkUu1LStdfFQ==","shasum":"b159f369f27fa190b3a4e10035db78b7b0204752","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.0.0-rc.0.tgz","fileCount":66,"unpackedSize":151005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbv8MmCRA9TVsSAnZWagAAUWcQAIOSH+Q4ptlnG0mrZXcV\nmVT/FcuK9zehasbM+l7cRmpB7yggfR4RPBgl1YKdtVWL9LHJ/lBVCsrFG1/d\nXv4eiRN4iAoADEqtghdLSrPLc/2Dr2Ut2AkY3wjhhinwRcItEdL54pmWqu3w\ncRED4cheAD/lImPFFjYOdQto8nev89tjKH7vkd4SdtO4ady71o10uKoeLbJD\nbvpq4tYiEQSEv85Z+7MZXTW9ZWhyKY6w9fldJQCFjGVF3VdGOUESWtymfh/0\ns4gaxq0601NqHcviMdYQnNYge2+V1eHIUpZRNRj2QcxGYH4+Z7wO9ubSETjh\nXWo+23Lyj/nKTD2Um9noG/9OrpDEh8d90SmOQeVxPvCji0b0NwZYAlDjGlPN\n4nFZ97JFOTi2z6WkvMw2PgT47WYdeMKBIGwU+4oml6ZqkdKqRb6qsow05+Gi\nHJ4yArCK6PRsH7xwDAHgG4aW3DEKTR+VS/oVmHMqYRQQeIVdsIzxamZWFHtS\njAcRJACiR7c9wtExYgH3oLJfGdfpJTue0XwSG5bHlTBVfEljkXImaszkoDkG\nt+4AKPTC0Gz+LIeGo6OR6ufTa2G3KML4L2StOaJuPDvuiY5zyth2NrjCOugO\nHOUoIKVRi9b0qH43k9Ffh0i9RWT3Vykc1wgJjBekbpg0JWSuamlBQcxywY6G\nXPku\r\n=M9OI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPdOsWWxf67LavVsQcy7HMHQ/ODKhOA/+jF4KsfEXx+gIgfFBlSO3sCSyM/chCkuxR8jn8KQ8imAxZFvY8ixWbojI="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.0.0-rc.0_1539293989658_0.6488995054473949"},"_hasShrinkwrap":false},"7.0.0-rc.1.with-local-changes":{"name":"@nguniversal/express-engine","version":"7.0.0-rc.1.with-local-changes","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0","@angular/core":"^6.0.0","@angular/platform-server":"^6.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@7.0.0-rc.1.with-local-changes","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-4ejGo6nFxRyyXoSu9RzHZdJhOToBxFdpTczQyrg83HQ1KksC0p3biwbHlUwYEZsPFpvdAaw+3otAc4LegZBk+g==","shasum":"ebc50b8bc7e2d4cc4c14e8561f940e8129d2af13","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.0.0-rc.1.with-local-changes.tgz","fileCount":66,"unpackedSize":152607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwPO8CRA9TVsSAnZWagAATIUP/1lPrwt94yKrGcmqVHa6\nNRUa6jW5ysmPEPbn8PjsJvpcy2jxaNIf36pnqq8keWnXvoMfhhM4Dr5oRLnz\nGeQm1/GPIWJ4aSdPn+yTFL4dbd3GEPxQdpgkLoVWuJKSz0EwuFgzBXIMPpZV\n1aX6S3U+4WY5To1b1SMaJ0l0+ukPADt6Om1i8EsIw1uu134cejk+IpqLDUxb\nZgtL5ttMMKBQu+z4GmUbfVTM+VMTAuWepMOA1sIWiwr3Td4yySOzvW7w5Mw9\nYcHYITc+x5M5IQe4nRpNQRMH8zyTV+OBN9Zay3HUuILzmXCy+8ikCfvliunU\nmG4SXtRTdmsmlhG3Jvz1hfGrb041qpbcdZGEzh7GBKPQ3SNqWhg7mwvqs5tr\nF9bX5I20b8ThQLtwueSVpvE0ruyw8OGcy82zl9u5MTlXNv+v5h9jQ9fzsJbO\nO8/69werMiMLRkdAq8Ea8v4hEKJNFJYmN/JsrGPfPxx9VaiNLicAIHs0GnoW\n25mgH+3QYu62n8PGYLRYhRtM7vxA2VISwoRo3ccoLSYO/sbYncc7sZcdaUPv\nMb8BYt+cvQDR4O9IrPt/89aeMDOrQKyKL4TZJoNFCywx+IL6XxxpETb25W7/\nhUuJWMr1aJ/izt4MrTL9h9nTY1JwrntYZ/aIoSCtXXq7CxNqGtCx0k4PgIBE\nGw0a\r\n=32ar\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDml7tlRW7vpOXaX1esusuiCxhhO4p5bdzoCHEWubbMAIge4GcJNxWjDIFxK2jjXkr0Wzn6S/55x2FKsUmnY0G+gs="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.0.0-rc.1.with-local-changes_1539371963935_0.14373632433265948"},"_hasShrinkwrap":false},"7.0.0":{"name":"@nguniversal/express-engine","version":"7.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^6.0.0","@angular/core":"^6.0.0","@angular/platform-server":"^6.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@7.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-kC5LsXwCkBeXILN2n4cNGKwddX8byL9hhSm6efsWmRPxeCNWyYL8u2VuYlmwT5l2nk0mTC2FHZkzthmvzscTtg==","shasum":"83789ef417a0bddda62124ebf8331dd931897a46","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.0.0.tgz","fileCount":66,"unpackedSize":152535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyRf0CRA9TVsSAnZWagAA7nEP/RNMmFSEITEkB3QgFRH7\nV7e3Gbj+WDQsP/efYs1dSgvYjvzlzY7fD8zK6NV+XxbgT5m6l0dPUsLQv6ax\nD3IFe3f7EKdhv2d1T7YSAbAh/Go08TNpgxzvrCi08m2U7CaBWUW7jjhmQzf7\niFZJE46+KMV6UPqx7u1rp6EqfgwwDMxkxqYpJQfQPx6jyWZ+TkUniA+lClsF\n6tVBD7344WGseSQWw6Q/6T3jPzlUkk4/YSfCOL5uaC8OPTxoNW4EycbGRV+t\nxYFI/uG1+5RWsNJQPTaxZtUbcY6jRK8VKV8DdZBkzEdn01A5LnioTWnQ4iqh\n7NS8eVs2y5v/2QsekKGpINaUfpK3319oG1YN00XD15jPOOR4UJFaZrQ7tRtU\n3eTxv7S05hVsKbc4sntYeGIMe6tLnUe/bDfIDWM3qFDRpuYwXZZi3lHpibuE\nIhbOGWrDzsSyPdiyieF/cdbPN7e+VkbFjZwYbjGsYHEfBWgUTQVh/7Z24Umf\nbIbtURQaDZQFdO/Ks0oPPi+tKiZK1THrvAljkAnB/G1ISCRy0gPxGHjaZVP6\nzsDxZLeCcbzJXe6L0x8skSXY6CY673HhZCzK/rnIMmYU1mfnZzkw6Quf+XIs\nhL5v0XcVjaQ37TUstxuWT1ZDtylQMdPn9EYH/XrFqfxXbQEx1OeUrxhtf3p6\nIWM5\r\n=+4Vg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCux1DiqEPKFTqNeQwFdtLQS868XQtzAlBjupHe0o1tYQIgBRIf53fOgYfnp8FT1qSUUggxcvoVNOy7HY6YzBYylCw="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.0.0_1539905523663_0.09008440889072644"},"_hasShrinkwrap":false},"7.0.1":{"name":"@nguniversal/express-engine","version":"7.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":">=6.0.0","@angular/core":">=6.0.0","@angular/platform-server":">=6.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@7.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-B4slbEGEPeTLp6RQBDc0ZASZZ2APhwiytM21XSrMAdcRMu6zWn1dcXwo46MMWL33751u9aUhorpVD4aL3Yfonw==","shasum":"eff27353c3af35691852eb6e08181d425dbc0382","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.0.1.tgz","fileCount":66,"unpackedSize":152539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyRuFCRA9TVsSAnZWagAAmXUQAJJUi7ESsDOndh4heYWE\n1tr1jwx+Cm6FpWrOkC8BeEMzaecI1vCySiaCG670vsjjWqALXe0zZYcQuqaz\ndxBFhwSsyLKb+CQf68y2neGBbZPuPtZ50e1r8SH6VveMgNDLILD8EU4YCBCy\neZCOwkBT2K4zBnCzMC751KcUUspmomh/AHlsSiZQk7xq99Hyi6KxQeZkcR8x\nUfAuuWKFQYRqBq+mcFP/ppVjGgap2go4bvXY4pz3y9rF2oqe9EQLubvFMKp3\n5/r5wW4KNgczBVCEqoPpzychVxmckQVn7q0wkctiSmnZ0c+NOppgoB6xY1ew\nKQhsNO2n8/cWbYosHJeXTn999ZV7b3iE/ZAqwEbCj2UWLdxNVjRXrUoyS9MP\njkjoP3T22UUdvjAoLX86R/udFyaQoPZz8tlt/nXG7MN6SObPzRKPpKfqUSX3\nP1KaHGBm3n9REyG/or+Xw/lIyYfSoygKPiB9daTcgb4gfiVpYsXUz+5MXvJk\nLkZx7B1Hc2YvNauXXaWCrjR3RVMDWDu15pCdtTEEYNjSWKiXGat3jpYbyO3t\ngqWJ6EbF2msteKUkgfa9Ee67k/3VsWSLEThS2oIgqv6PmvebkVVbGW2YmIuQ\nnxhT6RMXeK95moZw8F0olDrP7fFc3xo1yV7NZWqX5dlkDrQYcYnQcXlYZ7zU\nrea1\r\n=Edrc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICxKnNAvV0zz33NhEjy/Kx6a0lngNiHOAUb5/d9YV4k2AiEAytY0saRH+Ur6X0gMtOsaQOw5cphH4yyFSBMbcq4dxLU="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.0.1_1539906437325_0.34052421693884316"},"_hasShrinkwrap":false},"7.0.2":{"name":"@nguniversal/express-engine","version":"7.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":">=6.0.0","@angular/core":">=6.0.0","@angular/platform-server":">=6.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@7.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-mmNgDpUrcuFcjBOfUlmAliS3St4tSekLdQZWu6PK/d+kw5zicDDlSO/UoUw5g+wz7YHkGQK+VDy3wHc0Bo36rA==","shasum":"f7722828d7ec14951d0c24ad438772daf79583c8","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.0.2.tgz","fileCount":66,"unpackedSize":152491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyR/ECRA9TVsSAnZWagAA85UP/irsUBemHqvQrO5fmYWc\niJni8jCqDqpQ00sLAf36VAJTJoc6oS1w9eWFkmM99ugUllIKrwPQZVu4bPZt\n7dUmplWqw9Nr//9mfecBGs3GQ1vW4eDH379IycUH6zcH0HnAut4rNwH/cbJY\nkNTdiQcJ9nheRYXQqF9V+qnmT+RvDsqivFMePtb2UHgcRlbs83Uf7DiYX8jr\nbm+DfAGRm83SFq3B5Wi8uYcq+PIB8e8mZbwz9Basfmb/0v/HYgBAsW6e+B5t\npbjNmgBhGdx2qUvRQ+EeNWhJdo55coMq5Zyq/pByewgGxsGyjtew3d+PoTkO\nqi+BdDNPoimh2fyfMicvX0QflXDH37z4nHPc0tDTP5Tpjxk2MGfYXFBLj3U+\ncITZ7RiLu9659leARs/2vbzEx/I/5k41n3L1/vq2BpI3aYEvwXegXf5hYPMA\nfy836zweMhwjFTwh6aPMLv1UrurBxMur+dFR7bKohuiIyC2eVI0s+MzKV0KT\nO9MvU4X/dO2q3WtzZ/W7vWPtDJka4JYRT/nqEam0t/z5nhujBrX6RUxl0f10\n47tSVpcB0PhQG3iNsv3SvvwQBiyUC0dX/Ovk/lUOexKvzQAkQYPdPthu2MJa\nny5AhLDdJPY3bQ4oK0mA9ptDbf3s62TxmLxTQ2Q7X3/CPDQVxA6dR4g6RiMK\n4YvO\r\n=mxOE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrBbibZAhL/hgM+tvOAQr8D5WpSAQhRDIRLwS4zFe27QIgT4oQbYiFPHuFnF/j0KfVitqTu4K5I+EAzLzwnZjMNFQ="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.0.2_1539907524218_0.8911138162353878"},"_hasShrinkwrap":false},"0.0.0":{"name":"@nguniversal/express-engine","version":"0.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^7.1.4","@angular/core":"^7.1.4","@angular/platform-server":"^7.1.4","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@0.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-BMyMIupdOb4G7OZ92qro4wfVuFU3AVSiqZ8lOAVfXUepf5sZYpritFod64ZCN6tAbSTkshYicf8IpUoZp2B2Qw==","shasum":"f465cff5b7816da8a62b2cde705215fdfcf5728d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-0.0.0.tgz","fileCount":68,"unpackedSize":159602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQ3iHCRA9TVsSAnZWagAAyzIP/Az+ObAqgWNibllWzTS1\n7iBDJwb742S7spnTaBkIulxDceyC/HmzmXlOrv1wAZVTJsaeug17hKtl120Y\nb6s2DXZ5Sk5/rtPP4pMN++EWCrL4FfgQH0U5EDSBvdCRsoTBnMNK2baoew/Q\nklm5iOXxAFbob0xGqYhNgX8r87JB3w5KRkWBUdf2baWPh77FhZ9PF94a/nzb\nL9ByfvE9M8a/ibYQGc7sLn5jMWw8hP3iICtaPK33EdzS6zcBWk8EZZx2H8VZ\nKSxMGYTag7uVgWRuK260aQsw3hziLaKlAmi+D/uQhprHKIn1eD010Su6KYGF\nLVOqA2CT4KjTGrvw5txXmt0qXiv720Y5sQsFvI8fbFhUE5QmnvjwAbSGJvyc\nN1Cef4SSh+w7cFC4cX+Bh0wtfanlHW4HgH9GkvaXmgW6XeoHIbzAz7GuVNDt\nYD0Y2nRty3lssP40/kZj7c1dqyDPlM/WJPYZ9h6WdJDsYr6NzMxJ2B7gEApH\nwlbGYLuSAXPmmEUXOTgcx24o0H0tsinDtvY2WKCL+EoZBfVd35m9POjVBbhT\nCIBkDHvEahfk+WlAhSfTqIibofjP4DiGCkZm0Icgen7IkQ8MJvfmChU4C1/4\nbYwmwaSHX3I2XB22fPNwZ4mMoSVJqjOnoxQtIpuObTV45+mWcnb/sLOsG67u\nYdfr\r\n=FjaU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEA3jI/Vyk1m33xORfrIwrbLRKjf5Xsrxw/tia0PBNubAiEAzmbjENz/cjHfb/UC8mVEKQZ9bylEHCk9OVarQYBEvl0="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_0.0.0_1547925639170_0.013989011232586668"},"_hasShrinkwrap":false},"7.1.0":{"name":"@nguniversal/express-engine","version":"7.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^7.1.4","@angular/core":"^7.1.4","@angular/platform-server":"^7.1.4","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@7.1.0","_npmVersion":"6.5.0","_nodeVersion":"10.11.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-otOA3WTjb+XnEDiyhwkvP0hE1gC7PiJrDoDFs5Q77SQ0ZAjuGzAIIgpQrPE8B+v0zmVj2oucDNCSZlmYWb1P/Q==","shasum":"d48b1a821036382d62e4d4b122b5e44790c41c3f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.1.0.tgz","fileCount":68,"unpackedSize":159603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQ3kSCRA9TVsSAnZWagAAmIkP/0v27QSbyzkA1xJFrq3Z\nXVSsT263aW7+zNL3JFqaAMC4bZFU/mOgwtGoredMposookrNvmz6KyQSNyae\nrArkoFZKRM/7hLQd1VHsTnnOV+2ZC8kzRzCpTswUUtCPPdW0AdP2G7FmnRBO\nO0nkqtYfzVAOkfpkwkvCB/aS+tgNnJkyKaomLdmvngZ8IQaQik14LGW+RPvc\nauZmFh13kjE3x/6ZIxcfaMIoRiNfcO0I4Tnz8TzGzLt/H8n1uNdOkSXnUywn\nejJziowwlkBBNS0jWFSbSwBnUVYsQuXU9KqB0R1hptbIOA2H91yuFLEwJZGO\nc+M5u+/MyxVsnVSnnOMHPYW8SNZN53Q2xKamibCNorSItCnENhE9KWLDZN2O\nOw2dTJmB3MqYsXf+vRKCBrm1+V6xB8tiJCiL8SXb/wyJVGgnMyLEPB+BVXOS\nSSm5P0qcFYLAne7NbBQ2plEuTbHF3J3vY2hruLFpsuam1bWvmztcTRuuvU4h\nMY0+gE1PkbzNfWseN2cg3xkoQH4TKCQGHWsztBALXUy6/DpoOouUMhxm3mqx\nND+bLmQIhyDHFpW8DiVv0qqUpCJFSstNt3ff+PFfNVTSctgsS2mz0PGYkWyq\nCrEG8qg+FrWwT3uut4xLz6TVON+mICNUwQqeOEbUOOtLAyzQF3iGtg19LQnb\nt0sI\r\n=EBhg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC98mZFiJPPACkYAQDKL3ozDFI0nKzGmTm3h0HUXbyadwIhAJx0OszZ/0DbQJD8E5MDiu7yRYdetAw5jmwaI6+xo+L2"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.1.0_1547925778321_0.049197427729237075"},"_hasShrinkwrap":false},"7.1.1":{"name":"@nguniversal/express-engine","version":"7.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^7.1.4","@angular/core":"^7.1.4","@angular/platform-server":"^7.1.4","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@7.1.1","_npmVersion":"6.5.0","_nodeVersion":"10.11.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-RJ2VATA6s48bYNrAfjnkjUCohpR7ehiOySwGA2vuUIWCWXKDIIPxgmET5ffVHy1a2XdMsOgrQ9Whth7+CxnUgw==","shasum":"9445ccb374dabdadccc8de98ca8a79b536ae14de","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-7.1.1.tgz","fileCount":70,"unpackedSize":177329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgMu4CRA9TVsSAnZWagAANssP/RdwTr9/2/5ULOjN5tQQ\nG8Jgn4xQ8OeVRbxZlHVbSaM0EcMM5DhcnNYUPz1ZXedAPfdiUw6NhLqLzYa5\nCTVx5jmBpyPFQObbMbZ/R25kHMQDdND7FWmQCt9jN/4+QtxMaZ1oOLt8Hfds\nTu2o5imjYUp+tLYPYWFf5/afmRTsEi61wJDV+iz9tajIjARiCCb+wLji1FLr\nyKKbcnAZdp81vgmTQhKokvufKkuJSHdmFoPoJ4/EFcYhvj/xJqensnYd4r91\nHgbK7aExlQXRIf15KlwrbCaC3iLSdIQzHPOXkaN8mas58CAIGST8s2zA//98\nNjEyc0eDPiC2hTgF1K43GTGcQR3nGxLel2JseI/Y0+uwYH9r4lKPjErM3Q+E\nUGGQABdznmDi8i3T8/UEHDt+MHN1H7dDWjJ+DZ/Lh0VwdROB2Zi+qER5F/Ow\na8LhM/NYH1LAWwsCnW/eNHbvv8H9WKJD21nJ7hXbD0WN0wOLNrU4W5Gz6U8t\n3eKMRXg8M2IdzdT4SOo9cGdpH4jT6F0JmICY4TZgtH7jJF16cFxhR1NuBNkt\nyxcq5mPtjdrofQHSKn6pnRdc+EMBU5udSgpBm+ON09x3p0gxCDdrouRIwClj\nvvCMbZXpPuy1y8iSd5rHmKGbG9Hd4+GLYnZKZKGdBSylTfoeCiEaOiIVug+M\nuw4u\r\n=WSr5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHESHXWO6rIyGXU21PwAopCFPHbLGcA5D1ZiKuTCKGLzAiEA6LgtbmgXa5BuFYeQhWfytHb5gW+bDo3+KPAaNgy7sKk="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_7.1.1_1551944631676_0.23236533353433453"},"_hasShrinkwrap":false},"8.0.0-beta.0":{"name":"@nguniversal/express-engine","version":"8.0.0-beta.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.0.0-beta.14","@angular/core":"^8.0.0-beta.14","@angular/platform-server":"^8.0.0-beta.14","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@8.0.0-beta.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-JgjmStgz+9Dm/TipMbIiW8sUBP7C6ZuSKtV3Z73f8AtXHkRmHP59U7+TsQtdKxawYBkU15q4ogM1o0FyY3kvuw==","shasum":"98f7119ea4b8f5a7b8566e566ab1f621a1f82060","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.0.0-beta.0.tgz","fileCount":70,"unpackedSize":178565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwox0CRA9TVsSAnZWagAAj5kP/Az57aRYBikIWUVJTVHx\nRSZFB6ytGCx5eslcZf0X0LQCp4r8camtcjMTQ7AV6/0W4QfwJLabU6ex3vmX\ncRqD63dUb1O83udOlTTAY6SdxYANKksXHvGlAelNiFRQTmvofTjK42KQkMHX\nn5AKydAfhdmekuydRmtexSZ8sDJSqbdDpKjQ/SebnjK9z5u5ZbLtkaEa9NDj\ngac6rLTv6+7dzRmgjO6e5JR6G63VHGBN09oOuqVIau1NHKl+48EKg0fhEnF+\ncEfKF/ORyenW5BBGey1S8c5Qj4+vtFrxMM/raO+BuTl6KjQ8dpdSJeIoG89+\nDgehAgbl68VuAkly3GXjCr49JtPn8GUHncXGW3axOa/sNCpMqfBFYJRoaVre\nf+ouPRPhd3L6FySZfomPSxAxhRVn4pyO5POYnprUPCuU/nC9zVvTKaessJ3X\nUfBDzkg6/bSN3r6amjj6simZnoXIFsnvKjtQy7FtnB37ZRlv9eN2e0Y/YQGA\nQedvwp3WUJzFwaDQeNbYJVoU/tu/Oer+XkkZAxeOSXKLvQWYfi7vRHCN/LO3\nY/JMgLzQWwcbvPdyJOqcOzF5hihlI2knpAhoclUITtAZYpANPobW4/+Yy+eh\nRrwM6P6KSwQRSmqxXpiMAXDKtuz52iI4NbtyHPS20d1/ZB9Sv1Fb2pA3kxTo\ny1WC\r\n=WHr8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBihTjyctahCerfwk/0fFTVW+1tRiCsfCTVbxvEzXANpAiAhECutvV5Ok9FkK4oxGdLZ2MdzMJkp/qXjIpHqDMKIEg=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.0.0-beta.0_1556253811495_0.20593063143222"},"_hasShrinkwrap":false},"8.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"8.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.0.0-rc.1","@angular/core":"^8.0.0-rc.1","@angular/platform-server":"^8.0.0-rc.1","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@8.0.0-rc.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-iSDeu5TwNw7KjQQu5N+UUa4ie04gpa0LpBFPkci9ZRGgaiRbwV4Z/qNmHe2MWI7o4k6xaZddDKC5ixGZ7Lo1Cw==","shasum":"ecf86f8cb433e28a29af3cf6a01cc6b6dc00e32c","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.0.0-rc.0.tgz","fileCount":70,"unpackedSize":178554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcw53NCRA9TVsSAnZWagAAsCsQAJOKA0/5i3TX/zQmtT4t\nG874t5oxPSm4SshC9tpj+xVWmrPyZez4WNPylmmwsDqAQyCeZJqf8GhAWBsN\n+EIuRX4QuWSVmLcuGaBEurrL1CzEdOzQyr3lqcaWHCe42I3S3pncx3FRpy/y\nV+xZ6hA5/GlKMFFoQseyv/loM7/3Rtnwi041c3NPdX71SEKMG1uT7yz4WFgR\nmenfRtN3qPjT6/fLuWjTZZpV4TpmznBNURjwVTXQp74UvG7fh0KsuerRVxC9\ncHscISr79ohJnPBB3Wos/XylXg6sy6nwQ6Jn/qDWiR8qJ93uT6ojKUZEEAVG\n8j82+p9dJJaDfg2e8MjkJuI9SUB9rxtiFXk9/Me/pMWWHaFVKdiI0ekmPAts\nBuHOl9t9pqWhpsGcispKuWXUy2dTDLO9NzXK4HKPcWD6bO6raHfYWx9rn6o/\nSNjB3Jq6fCk2Gw2ntT+GA0Vp+atTNWUaEdEyXbSxA97HQuGlPM3AOvp1IKeq\nrTl8j/Ly8x4i2f/stewY79F5EQvTaOFGc029Pp/y8lIqdmVNMqoBAxc78+cE\n++Lv74U2m3CsK2gkQLIgFWt6nUCuIf8SsctM+H36/XwaUbHLxOoCW3m8EGlB\nuZeb8mNoigp9OFQ6QephcdsL/jNu6P2LsFCAQZQyY19lWaASTXaTyadhguF0\nI12+\r\n=nVMY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkWsSFHfWNg5AqoJBHyuX1luicMahUQuyvgBRtL8w8AgIgLBDNVRMzP7zioicsvsN/pqhlE7HCGXD6lUVLBDpuRV8="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.0.0-rc.0_1556323788739_0.6959212309155562"},"_hasShrinkwrap":false},"8.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"8.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.0.0-rc.4","@angular/core":"^8.0.0-rc.4","@angular/platform-server":"^8.0.0-rc.4","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@8.0.0-rc.1","_nodeVersion":"10.11.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-WGJZTxkCMgDHK3UQHi6h7AL9Us7Vroz+pAS60lKJ0oNUCxoJ9S+i4jXfb6rtR5DtOTBqUy8O8fQ0U0HZOhhoWA==","shasum":"95f05b6fdac036f0deda7813e8ee08fa4b4edfd2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.0.0-rc.1.tgz","fileCount":70,"unpackedSize":178563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5tQzCRA9TVsSAnZWagAARmsP/1jQLDQqc2+d0XM4/NaI\n+/hlmbwR5YA9l5sRLeXDDZ1hSEEXkRiJbWIYt64loMi4zCL4kd+Cmahk6sNE\n5t6e0WTaVemOMlveA7n9VnKXwhy7CMgGKCAWudvaHcJNaGUkWPkodbFq4AKV\nd3uSlNWjNwysEr6EpkvJ1Tk6ehHhuMWmK/3DsQ5vGR3wuwqH1sxZdZ8/rIjn\nqhUKQ7r/mojMcdstf2S+srWInNx6mXPWNwKmMxoaGaPcd3etvTdUSOg9sqWZ\nT33a5BEXdgunRblRqmf1+3U/v2kMNkFxj0U787sIEng9S7YuIVzCqn292HgY\nlsBMT3cWCRrAZCVDyEQIr9j3uTmEW2Qko331Ldfv1C7aX4x26weDXIHL6Tl8\nebzxYHR2+lNw5NdPmspGgMmzsjqDahS8YRUDHpykohs1ejPszDcDFiZb9cJB\nuY+SxFaHnMqGVL0w8k2eYx36U62bQRgnveNZA5HOQh1yLO6H4Bs7MDK08Eme\n4cy/4g/OpDcbZoIkpNwxkuGwvzssMMklrjMPb0qMNrgDPPFzes41NKTDbWlN\npwj0v1PCJXvS6vkkJF/RF1idaPCsv+OoePJJCgsdM/Qx+J86bi3n5lOncgbE\nJGOjet4G84xchyRyPgmrFPRhZ/8r5gH1bfoPm+S55E42W2h9GNUP8+pp+0ja\nC7SS\r\n=LVs9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1JmCGJ/CTPE1MQlAcr5o+9dDr7BnHBBHa2APtydxdbwIgN+gdea3Nf1vBz8cF7DfRi4uTHE3cxdImDny9IcL1hFg="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.0.0-rc.1_1558631474435_0.8219654744122407"},"_hasShrinkwrap":false},"8.1.0":{"name":"@nguniversal/express-engine","version":"8.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.0.0","@angular/core":"^8.0.0","@angular/platform-server":"^8.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@8.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.2","dist":{"integrity":"sha512-OT8o+sSLAPWr3F2CO3a4CsQAitBQIt+6i78jOFhaii5Agsdy6XKbSf9yPhpn0IjoKdTjk77KJBcNcUPxWccS/g==","shasum":"11b429afe63d249ccb7d05328c9003509312ada7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.1.0.tgz","fileCount":70,"unpackedSize":184706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHSJoCRA9TVsSAnZWagAAEm0P/j/iKfSxkynKgk+NYov1\n9yUVnRalG9mlSg6VrImmG1eYCEuCgtLiuV0ZA7CAbuvE/VPDXLV1PTfqfLt5\nlLHEwnAOK6i4snrNCpvxin/MSzGshcNPEBXW+Fsc5f80/I0BfFT7Cre1jCuX\nbQtDokit6WWuT15utcHQ5N1a68qiVgCtdhGkbG5W1fQVeZjdVyIAGL59N0ep\nzkwysNz1iU9m35WEpQLZjbCtgEOAy6vCyQIkt5aYtL6PaMHQbfcykGy8RSWb\nlnSd35S6Epo1INcmKBMIU3Xof8lfPwu1R2yP3PGlG8CFUehfz1ZonjWbduZn\no3+OoeylT0hKENpNHqJVoTV0lwiDBNkX2a0VExpTl0sZXn1ctQEAAYu6RL35\ncNe9k0koG6QVZ8fn4Bkhc/0/dn9W8gOZgMumJ8LffTpxtbC3a6s2hoqa7WZ6\nHyg7wS7GGvQgXDfVz7rbq9uPFOc8PRWi8mAAtki6RC93+idADbY9Vrx6vlyZ\nNTkiUyW2Y5h1ZpWtf2shezEHPoqSNWHDpQ47gutiJE0sdm6v7/k2cpJZfPPa\nFJ3y9xd5FwWNkz/Y3o9gkc5Gf2WGCvQy1efn/DOkqeszHo/0FMk4/IFzCE5b\nZ2JY/769JKdKjQO9XadugeFRyYhTfg/E649bPk7yBxXgvEf9zGablreXKaGA\nXiHA\r\n=rL5O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIARo+3Qn3dKd+qg7U0nGajeTWp33YSq5EAi5CsCTXQvpAiEAkFzBo4yf0g00NHmQ0LhI22+XjynmOdi0lNL/aUn/S44="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.1.0_1562190439796_0.18741409424967825"},"_hasShrinkwrap":false},"8.1.1":{"name":"@nguniversal/express-engine","version":"8.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.0.0","@angular/core":"^8.0.0","@angular/platform-server":"^8.0.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@8.1.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.2","dist":{"integrity":"sha512-LKfNnKb1BU1IyI/U7LcDgU744ptrn7fTYb3QqHAlGaozHUNRjXpNuBdkrcAS5+8UAhRlTllpSt1c+TmY2/tomA==","shasum":"253f2a484764cf183a679847a0c25c52d5b25ab9","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.1.1.tgz","fileCount":70,"unpackedSize":183785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHi+OCRA9TVsSAnZWagAAqRMP/2E6IOc1zX9oucFBVxQv\nhkLBQ5yTqdG3StFkvlaILUFYK/as/RjmT/RHV7esJt43VomYx8UhCWYSvL5X\nnMAVJxhHf29emDGQfejMtNCd/G0HNo1nVyfXwHPaescrI4JvTb7ejesBzoQN\nlKFqmZ62SlkS3r3+7/4RRCnh3jXN4j14ZZOA2nfnU5dh4kBnn1G8VQjyoz21\n8hG6aDUunflqbvDIeOgPZUbeDD3YddRVzSjxz7EaGUsRiFmxeVFUNYUBH2ga\n/8ZQZ17aEZPWmLYWYRkz6paB82LgxFdLMgxxlxBasAMAErX4iSsK/IfXJNCo\nn5r45ap/n7ZrowE0TtMo4DvImHTRzYCowgvBpP5PjcfG4RKR8WD6pZ4AdF5N\nFnrQ4Qd8KD8So8fkmV3T+XYOW10/uRq0bGE6kHX4UtVXBduy5T4cq1z+tJlr\npNpEZebYN7owyj+VJd2eZSRjJP/A0hzZ0jflQyxK2svzLSdaPHT+30S59ZKz\nzikDj4VbOvG7vAcmzWlPo1YHmdIhGDQLDPSkltt7vtx2VP7Lmv50HMF2hfJT\nV7aJVtsKf46K4bAo2HQsaNbuimgUGAFef1LyzNL1D8JBJuvxpPCGlhegUG2X\n/DSFUZeb0GTPxstnJ0PmahB+ayIhXRAdaRHZJiiZtt59ccKiZGyAWLyT4ieC\nRHlA\r\n=E6iT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEIstCoaXYpqLmQ+vHf2gZ2HJaOF+lB7XPXGt95n02s4AiAAifrAHooZ2h5m18ORGEUaCqiRuP2gcySSwIw1WaX/+A=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.1.1_1562259341342_0.7009231725916529"},"_hasShrinkwrap":false},"9.0.0-next.0":{"name":"@nguniversal/express-engine","version":"9.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^9.0.0-next.5","@angular/core":"^9.0.0-next.5","@angular/platform-server":"^9.0.0-next.5","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"v9.0.0-next.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-LkKlo+MQzJPNnsgPR3pCJp3dmiCbOBoaZIZXvOjjLOx/+g5lhPLgXfMjv/ROnx4Pzpp5brKK4z49ilWqpBnfgA==","shasum":"d6ff18057c0febef2cd8d1f3be3329e56db36eb4","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.0.tgz","fileCount":58,"unpackedSize":145961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdf/b/CRA9TVsSAnZWagAAYlUQAITEXGnGAgd1DPbY8f/c\nTcuLmpNySrFzqWloImbSp0M9Tlm2ATbT/Ekk3XbZ5v1P2svXGrjO9/dBDQaP\njLsdMno9VWaF5EEjt6wWhamEB4mGsvB8dQl/iKAWS882YZpL7EWWT12sVcxD\n1I+3WKKxdLlhlJOGeF8uySDNC9FAM9jh7nomS5cGqkPi9KiXUa0M2FDOYsVd\nYUMhGAafp8/cWGH28rAG8h+4b300v5Tm4pFppWFQcexvka3iutKgs630gCi0\nriW01yyjCMpbAShBcKx9Db7TzAHRqDJn/0NQLJywW7gvHw92m7/9jmx0Lmon\nAj5r2G4+DsXDTgfAx1wK3sq1aKd/ULHA/kFS+aiFKqKA5aFk5kVcwnVf4GrP\nvxv2PpLNA4XIhZWdo10iJ0cpAaOh98aKDzg8vVqIw7Kd+zQsNnyNBVarChf4\ndWZ/InkiNmoBlg5LNBI9dsCrq6mtiI6RD5inVUJQpDZGWghyFZWOkNyb0YNB\nLpt2mImh0YC9IwWloT3zREUrkhFGOcteiaC5DZbFK/uJO5N/X+R7buCMx1qe\nwPT9QZN2cXHpx82YLSOYXJ6bJvSE3uAWoz1KE/ve62GXZKKE9g5kUtq8qaoq\n28wGhSkhE1pL4oVkYcCGaqarDQ4MN/GhyuHgNqYmFfQVyuM25qd6ZcE0ZIgx\n5ofU\r\n=W55L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAXZGlPECgPlxodvDF36ms2xEy4AuMLKcfLBGrQvg/vkAiA6A+Dh13KAK+cAxXiXSLZ8/NslQBqTX65tj95kOOnlPg=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.0_1568667390414_0.26003420453352133"},"_hasShrinkwrap":false},"9.0.0-next.1":{"name":"@nguniversal/express-engine","version":"9.0.0-next.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^9.0.0-next.5","@angular/core":"^9.0.0-next.5","@angular/platform-server":"^9.0.0-next.5","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"v9.0.0-next.1"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-3kIPZC71PPST8iMUwYx+QQlQYuWAdTrHuMDUBdAwozlsXIiNCYCFvdzi4698t9ntQ6mx8bTjhpnBbWmDPtXHqg==","shasum":"373427886ba2d5bc5d1cad510c23fa33fa245514","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.1.tgz","fileCount":58,"unpackedSize":158073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdg/1iCRA9TVsSAnZWagAA2YgP+wb4b1HgzI3T5pBaYXw5\naJDugmmhwTznVNJw+7aeHMjaYw+VWtcXakNg4lIL4OdoQgkkcxcFm8Iu5/VF\nT8BUi3Y6Nn7HlDHRbFrSDFuaHKgwbY3EsCXI22SwjAZ3t8WcKdz2U/NMj619\nFdOnO//jj5PTmdlRNUjbhK8BIBXr07GJhbqFIM1FftRRdMv/uMNBuau8Eisn\ngkD5+0ySqfuTMfmlVG4muE5G+8PbeGbEa1FNbImALKLmbeb0MlPcxwYVX363\n6LRh0RbmbZ/qCqvXYYGtHsuORE6DPp3bg9ThazFBZeIDuKW/yKMIAYdyuGt9\nGEueeRsXjUorNlrIlY5s87ipBNZTNzigMaC/BwVQ6pbHnWuJe+riLE4r9Xdh\nkkPfJZaZWermylc5OEdHQpBROTVuF24dY0zdv7ztG6ddMgCG14M0qpF2HrKl\nPRPQZFN9JRi6P+TmcBekdFBb/WvdPe0A8NP1k4hQ7iBRzG4AyVMrfTzEs6J+\nY8oJaku2UPZe5Jj6xzCmBCcVsERfe3X3DIqCXpLa7Bbv6rdK7toRX4DLhtB+\nNaerMk4ko+4UsJpKPmGNAx0+hz8buKN+DkjloalDrT/27rmZoKIZOannUvtj\n7b3hH7ZU4E8kzjDjHej5AZg/F4CnqrxHz/0dkQvLFmvOapgnik6FK/3HmVXW\nqgYp\r\n=oUBD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqRvuCvTwxs3kJX6nVwRgnyEn800aIt11TK500/3OyXAiEA62jv4TtPIq8fRdU5cfh3hDw+PEnqbKxmhOMmBDz/HhI="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.1_1568931170219_0.8227594906878233"},"_hasShrinkwrap":false},"9.0.0-next.2":{"name":"@nguniversal/express-engine","version":"9.0.0-next.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^9.0.0-next.5","@angular/core":"^9.0.0-next.5","@angular/platform-server":"^9.0.0-next.5","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"v9.0.0-next.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-zh3zXIT0IGf+rNwJguqAcVUl9iLBS80WdQvh+dnlVzSyON4R5hSOl5f39/m524maKcLySqlu4n21gOSVS/yRBQ==","shasum":"3750bf902109b4f21d473941011261c30a03a44f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.2.tgz","fileCount":58,"unpackedSize":158355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiooFCRA9TVsSAnZWagAAhfsP/2ihLM1Saj2QbO/7yqN4\nrwx74QOBvcN4Ahs1/9Iz34tE1ZHaC3ahnJJuG8NZ4k5s7IjYWpxsIE1bQ2yg\noBJ8SXYxraWu98J8jM0opsGWuh9Px/9LbYz9eI6/RDDR3ctwd7xzWBN4Uku1\nHgLbVaDtN6/TFJJOci7fBiHmrRB/IcW89vmJ6loI9hoiJayvpXibD9QJ12Hn\nsBdIakFjOlEbdPhyXF5nZPOd/NZtQiFMewHUrPUNuToUDnKhN6XJY4ncmF+5\nfOTVkYK9+QmOi2ysDv/EfCiB1honXtf5qMmdWJLDXssaJLIfmzqar1uhMld6\nbJLLoFITo7+q3vAt/R/LnxHxFEKih/a4xaX2P3B7P8/9shUFIfOMUV39/Y1s\nQlVzFGUKnlPI+kBWhRWwOv/+JYfn5SovnkGCfiANr6VhmKO/xcTMSbRCVJtm\nczW19Z+qez3iRbAQKnozdYF1rV5fyoqchhAm9QZG/DIFlwpaDw76XuulS8Yp\nnNSktP0UiSkg/om9IMNe8w5DSVCNLd+kmZz7EezOCQ9n+5azeEBdVWVEHT66\ncrcGgCsLBhk8nLmcMshUCnvJiveXxZ8wZi6j+rHCpgFx9vMcqteYAfdd1aSN\nSr2F/VWrJeQEVHiudYNBykRRJRyknMct4TZiXQgqdHSqzrZiyHSz14G2h/Sz\nZBWG\r\n=pFQC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCl5+BxtvY20J39CUZkrOoS/SEtkt3ulIGj1/Cjd0FgpgIhALAypiurdsI9DZrJLwYu8Yi+v6IcWcM89f+Acdm6TMuh"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.2_1569360388883_0.7623526782960552"},"_hasShrinkwrap":false},"9.0.0-next.3":{"name":"@nguniversal/express-engine","version":"9.0.0-next.3","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^9.0.0-next.9","@angular/core":"^9.0.0-next.9","@angular/platform-server":"^9.0.0-next.9","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"v9.0.0-next.3"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.3","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-wuk2XO405uMz2jXMYmepa2M+Mun3X8bRrL+7pfrbv7HTqulPbSh+uHKX485w3GeCHPbHScjwY9tdyDH4M5jGyA==","shasum":"f7b52ddd1ca0559bd8942c199453266fc9063ec9","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.3.tgz","fileCount":61,"unpackedSize":162230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdl6eCCRA9TVsSAnZWagAAYMEP/iPUog2l2ulv/6GTnWv3\nmNq95hii6XQoZOCA/RHifZ7YwgUjowQnKp6OEciTvfTLX42RzjbBMJ3ptgwv\nmrW5nwNLVSuhc7vTF1HLpNK6obI+VUruISSYA/cbcVBRzBGslC8Xyz53+C8s\n7QmQGlUhHKaf+r8v9CIexceAS+oXwxaQRHVL/QlBDdfxM/qBjSvr7+yNn4Bf\nAF13QjszhN27dirm6vLkcq82ctXUCGh/rZlz+bhZG+tHqcPlPSCVWDkgqRcb\nBMYq/5UzQlco7UfDnUeoi1au9VX/zaD8rQjYrKj1EXYG8tuJ+DOhkNyCF2tV\nMm8MPf0Tl32rckD0lC3YAN0MDfZuVu8a1XqftYuqpI+QvoyqcPUu58kIvatA\nUgai/AiQ/IcDdK/3QvYegOedZKqAtVO0EW2Kka40bf6ch5f6djuoZZdpS1XA\nD7CCTEMGmTR7WpSbnS8PjBJzAj824UEDXSzVltCbBg8RpOM623REhhTyyI8i\nlIeDFpeKemBRec6AqBOg0uzzABMpe7bgbxR9YbrVrySDJOjjDF6c4ibhl7o8\n5w1PlpBf/BXoWz+M1XQyfgZUEFJjTEFhkEnnmyMoIKwZ6WqxtDXZrWlPavdg\nnE03u6jASfC8Ow6jJ625YMo9u5eT/3kjpvjWrQoFKU7NGRJBOFgl9cQ1ltLI\njJog\r\n=RW8q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG6lFzHgruoPTCcv2TZ2AKZa2NmV9OqtJiUQXEzyk9xHAiB5l9zw+uBeG0R3PcB6pJi4YcbGq7YM+uOpZO31gumCHw=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.3_1570219905625_0.46649085508804444"},"_hasShrinkwrap":false},"9.0.0-next.5":{"name":"@nguniversal/express-engine","version":"9.0.0-next.5","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-next.10","@angular/core":"^9.0.0-next.10","@angular/platform-server":"^9.0.0-next.10","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.5"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@9.0.0-next.5","_nodeVersion":"10.15.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-srgV2toN6R6NLi51Ic1dqUcnbPOSr4y+KJIkUunw6vBSPdHkLsyPJBDzyzz7HaHO5P/tbkWSeFJZ+c0bygkotQ==","shasum":"0808539944703af40a942b393652c431435005f6","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.5.tgz","fileCount":61,"unpackedSize":162629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpj5pCRA9TVsSAnZWagAATpQP/i63Ji6TwnvRo0b4QxAw\n489ujQoBQYH56pQN+CF+tpqd6AbFGgPgr05ELZ1YR5n7Z1+2l4HBbAjoUQZ0\nDX++75EjrNQ2KqDkhuvTvBRRpGeDvGcGDybaj2r1rtJSV+4az6mFg7To60zJ\nTMYnWLs2+rbLZWZgS0AxvPAmFGo8qfb/06hkPKnVjVsAYeogzU55aW84ZMUn\nciJTPkp/sx1F43zuFUGgrGNAcDLNaqOEC7tqFl/Dwy1GygnGd2GxmFYV+nqz\nP1YfnUstjZtoStRCBPFY92l+c1ZtfGHZWpJs5RrVMcgHoe0WMeiTPCmEMR2L\nffPhzqkQ+FzzzCwX+jutrS05qt8NLIR2xkbQ99iRB9pf5s6K3YwSHEijCmlY\nkjqF0OaUIKXhhgAwEsChqNHbRRmot/XVJ7BjNH8qXnjz2XZc4VLg5Som2e9O\n1TpUEfHvHOyf9YT4hpgaHfvXO2WqtO+cBCv8VeEhEMN7h9WZ4GLwjFWGTD9D\nsa7w+sODr6BCH3pIi2b2eXcAwrmwVzm1/s8mVVt4+8i0aRNFIvsKBCqNbELn\nXpZJzUay4YlX86IQLrtBsumP6TDJtfVdwSHhn4WztyvW7gyAzvk3YkP/hfsY\nRNmlhtuvL2IYTbmvTxGLAJKuIDaogjRo/zrJeiDq/d/hTR5uYw6YChA7dGfy\n3g9N\r\n=YjVJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNxR7SL5tQHM/26y6VrP2EDb5TZvM6WaH1yb0MHhFOmAiEAh5h0mg4r3eRNe3t4IISdrJO/Iq+K8/Z+/kbVPM/FIeY="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.5_1571176040411_0.9765620030685656"},"_hasShrinkwrap":false},"9.0.0-next.6":{"name":"@nguniversal/express-engine","version":"9.0.0-next.6","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-next.12","@angular/core":"^9.0.0-next.12","@angular/platform-server":"^9.0.0-next.12","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.6"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.6","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Qzo05h/69aQQtkRAF//52H0LjhwvukWlefSRgdH2kuhj8wftVUWIf/cl1nibfb8ldjQGMZhwKulPuML90Qil0Q==","shasum":"523075a8f198704bf15ac07b9f28c0a41115f141","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.6.tgz","fileCount":61,"unpackedSize":163459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsMaxCRA9TVsSAnZWagAAghEP/0eMLbemmwyBkj6qyaqA\nsRd3UWTgCObx6swhbwSAO8gctou6DPAqEVjQrB+kCnIw+LxQUP3fPyF0G04e\nTqyKKQ5S5IGykCeINNqWeB4/dL9fQWK0rRon4FFU5gBO9iP73xOdatpyW/Aa\n3Fj+xraX+P9qSikZ8eQqatyywr8UoGEuo160eJQLl0faWbRBHLELpq7YZMPu\nBVWtZ+H73tFG9zxSScPczpgqjjm1fGr0LSc2TYH1CYiVSUGG8EBePLbFNLpe\nSCyXKTpANUqDM0+e5DPCQvw0Ti6tXBBVLojMrZGAUv5uAArFi/zIglj8Zz1s\n6+ODH+v72lWqDEu8JaHypT/PGWa+R4qf9YWukWW1T1LpKMlM70FXDQNIJ168\nE0N86PjV2IrYKP4HqQMkHYYH/zUZ1glOKRUlu8nNpqEaq3qVNyLyGr+EOV3Y\nVpSPEbRNfOon4lyOb/6AcE0Pd2fjt1QTR5Va/OcKhp3CAcPwxK1+o0V4hDMv\nrOz5su4/2ZwmDRI1dK7rFCAdxOw7aC3fmfrFy7LWIF9FP+ItDTztsKBGk9Aq\nrT2YZOea/0KIzxCLoxy6uhokRQNjlzd8E/1JMVLakzaQPxkjlC0z+4RGags4\nHO8EgTT9ERJvmCunQnOMTKa/IZPckF9DxdcvQyiz8wSKuH4HVk5sVjSDkliu\nr7xJ\r\n=V3AC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEiD9hBgcxLnIxKmr1RL7gqweEZMJ+tiZk8lPWjvL5VPAiEA50fnzp8sxbzfX7IDqXxFXtuNayEz6P3vNzn55ml9mWY="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.6_1571866288803_0.2788150648833061"},"_hasShrinkwrap":false},"9.0.0-next.7":{"name":"@nguniversal/express-engine","version":"9.0.0-next.7","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.4","@angular/core":"^9.0.0-rc.4","@angular/platform-server":"^9.0.0-rc.4","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.7"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.7","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-FrzrAdYpC0q/XBv7a3GTsDsCmkGADKbHXN8HM7thQxec2JCPUBeRYy/K9MSiPSt5HcPWAHSqlRxZu4bPYhNfgw==","shasum":"da4b74e2382dc3d1d55aa2c1b0cb1a2e1ab55de3","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.7.tgz","fileCount":61,"unpackedSize":164896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5f8bCRA9TVsSAnZWagAAtq0P+gIEgWYU+6fhy4i7bIXG\nk9rRvvzH0o96MXiaPwCJs6GOy5kvdSDlJJvekYztmYV3USsmDTOTBUg5u0uU\nNL4zCJVZTwBfd+MpF+M8SPjogVH4F+ZllzPCM0HE5aWpDeXN4W0j7vrLpYEp\nNRW2xehN5uU43fcoDlOaK4TXoFsW3bQzcLR+u+QP2dCZ/vMcuD/uF7XGoO0x\n49uiEjwpeD21WYA2MyTWtTkZ03UpvMGSo7Wk9IRNJObRhXCGfvt/Ss5i8xvS\nbuqrJVnCWI0dUeCLEQ+4iGpEVfJ84w58/75bjk5K1eWhrpIuyrVTcfqNQhum\nqIgVI+Jf+NNix9gQGNzVJFSUwH5vNpPVJGr/BoVo+upCx+U1K/XVGMUNM09D\nuG7i3lipJsoBvkamXMZpDsIUhfzPrwR6QanxwXmQUw0+SrU4RW+9gfaXmQON\nXpZzzxRZZsgwJlSKqHrOchvUwiayiK0L/pA82NqblC8bPTppDesOFa9P5dFQ\nX+NiOH6Yw72VXyUOlHRymTNFN2MGo6JMFXMx1pwFaG/z+fxv3YRcSrb3ZEuX\nO/ESbob4G0nxx5VyI30/CywV+2Q8l5tmVzEjciv7lYcz+nlr5JwbLcefiPFg\nI7QRgJrhgrIzRTEHRaHquPBY7mRqJpDG1Nl94tG+Zg96Ws/wqBRP6lO21Yhf\nTmpg\r\n=MU4N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAS9gzcZU+s2oMprVflj3ErSA+IkONUQDd44c4mTOjukAiA84g4HISCRYJh/hoXuNQQJl9X8MGF9hfC/QoIhuQre+g=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.7_1575354138939_0.7877544821721727"},"_hasShrinkwrap":false},"9.0.0-next.8":{"name":"@nguniversal/express-engine","version":"9.0.0-next.8","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.4","@angular/core":"^9.0.0-rc.4","@angular/platform-server":"^9.0.0-rc.4","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.8"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.8","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-eKk9FN+XQD9EIkrd0iB/+RNt/0S1KcE+uvva1r+LCNDJJ9I7M1oIF++1Intzm+SkalYR/+L1OCR7mmcgA8cS+Q==","shasum":"5757d93e6a5d37b34e105c7722974263481d7c5f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.8.tgz","fileCount":61,"unpackedSize":164896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5wUHCRA9TVsSAnZWagAAI/kP/iu7RxrMwh4a6PkJ9QkH\n1+rW1UlnNCEeYFUZHl+u7GEAGr0uLwyxNjID5d0DRz2RA5YV91QDNr0xY078\nqsdhcD5dodbGZmeh6lvVPdzlOGqvPTk07FwzA4Tci1mhJxOcwBCTuFTBH4B7\nSpDZwlb/tDgPLvQvG2UP0c313TV+jVbRNqhFlqwuiUls9huy0laSF4+MnM7Q\nEEs9NWd49orhWXKVn1631R+UMRX+926U3BdNXjplWVj5DFSwsT2z8YSsSyQy\nfWf0KOAVslTzwI0Aka5IXcCxfuM1vPqj4K72n9h52ZXoiauC2nEEzWFCm3zJ\nCrpJejT1oDypM5yG50TtQmbvm/DqVikTcN5YBtmVADSy3R+SEN5K/SAKmVOa\nudWc+XKu2kOZETSav/1ZBFy/z2PqTXSDNKRN3F3RgEZk2FaduNIR0/rGXDiq\nGMNqckpkr7Vb7P09YA2tOGDdHDV/CvusYsaYJpULvCszfolvKFWfaMFeaW53\nNSo1F6yigEZtMSuYBF6fJMA5cPItzQWa4Mwt9FaESu6lHgeN2Xm60iIXSabE\niN7vQ9CPHXjlbWe3pGrDZ27ATQVjzub4RyKNPiHR1YQTqCul818wr4kIbA4H\nZjEzLICqI9RLcd9QAHzSYdcPx+mrxUARvRfxWYRwHucv30AzmbZt311GQune\ncBmv\r\n=LZzU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD30Hl389mHZwZ9nGOLENj7gcJ2/1tBfP1MWm/RuqZ2OwIhANpzXODos85EoiiadsTAzGyfVp7Jzcvtxvqz7YoB6Pei"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.8_1575421190912_0.019787478092259114"},"_hasShrinkwrap":false},"9.0.0-next.9":{"name":"@nguniversal/express-engine","version":"9.0.0-next.9","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.5","@angular/core":"^9.0.0-rc.5","@angular/platform-server":"^9.0.0-rc.5","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.9"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.9","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-xkdwlAW9FLb4p++Hk9ysMpwFI0a7OLT61mSX/pJi81EyIOpEd9GpYz+2K/iqrYldtPUTnVQ63jyTi+L0WPo+WQ==","shasum":"d67589f544293ddad917560a0b2b70ebd1c0e3f3","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.9.tgz","fileCount":59,"unpackedSize":160037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7sydCRA9TVsSAnZWagAAiqwP/171Xl2lXmH0180h5hmW\nDgD75BGgQQ84mFwtaYarM9Xq0rW4zAsYJBsl6jX9pdl07A2tLWRoEUwRl8zj\npkHkDuvwJigWHJyvfC7FmhrT/VEBRYD39vPmkjkGWYHLf4Z5WoLNnNRvsn8K\nFJgPvFYU23ajlqIyjVWgbqSLXnB6PZBHYJlvYvcepxLx1Xia+tIaXt4aWQVn\nulXGJDHNHIXfHU4SBsd53gz9v4RFjm5HsPtTaHrc8knGMrpfC9kujmLkxwjX\nhhJY3sp4d6asyQCZrOJm9JF1pqzdIwwIVLvstnn+Oxjy1KWDhPcGDCYVe5ON\njHAiI9aLykkxxVYP8njJaK9puNIkBKS/OEDLNz3Br8wH1pxN2VYiTuRtv+pV\ncBwS0KEuuVvTXX/od/Z3qoWoFLLPWgEwRF8bdyEbK+kUnzcxfbzeoOk0mm9l\nQ5SW0zgDZ4efkHkusiW2uUQ3GgSKdGcUDPWmXvxHJKfY7l7fGxsh7N9RZPIp\nOkDqUorhgk3mBq1kbKk7MQ3PFudgRKKshQHQl6ROQaLT9acqg9MolvhzGlUt\nbsG/exRShXMPEOQib1hiDQPyKpmlugIkIANw2M+op/0bkumUTeyqJ7GnaFoP\n37nrvxpMp87VWoQs9BzoetBvjzb5o3HPbh+slf3LsGuXxGYCjZLK05u9OwjC\ngFz7\r\n=aMHV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHiW1kyjKVmO9RaUmjbvPMJgY3rtUKVfEpe62Nxwq/MeAiBx2cflfurOMFZhExzftjbdW1DOiDw/mPlFiVjO92pb4Q=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"_npmUser":{"name":"nguniversal","email":"viks@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.9_1575931036976_0.05881727357471811"},"_hasShrinkwrap":false},"8.2.5":{"name":"@nguniversal/express-engine","version":"8.2.5","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.2.0","@angular/core":"^8.2.0","@angular/platform-server":"^8.2.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@8.2.5","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-FIsHE9348WN1mccRCIdZIt3Z3U0SHRtzMlSnKwSpp7hlnnlhiko9lxVqzfGx0s1Pl+ME5RVUTEaU8/BgNWWUsQ==","shasum":"4f24e9b8e1b0b23cc9a840aad042fef3f479e7d7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.2.5.tgz","fileCount":70,"unpackedSize":185095,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8BSzCRA9TVsSAnZWagAA2BAP/Au0qgE1UkYHhi4dFXXW\nHTLnhK48u90WUAEI/wboEHnZOIuMJ7q1srclJ0DSSiYNsRbVF6m+7vFgyQC3\nM2Vk2kwlc1Lt53ZWnp2C70XvuiiW+7Fh/Kzfr2jGgLeLZjFkvRtjGh7JM7Od\noojn2vigvaTyKG3iXAz5HM5a7d9LmIpMjB69AwDspDPZYp4maW8yRncjLys6\nUPNf/+2rXWl69ZzSNgdj2Iqb9/J7ew8R1y9fGdAhxROukn2lmZa7GhwMze/W\naQs9H9ZubneRbxyclvGEcu8VCGMiCF2Ya7N3dKudsbk7KIlGlwBL0/eU4z96\nG2upPPI035HtXwIXya6HPtK4qccMoaJDmYfAMCsiE4BnQ1R7G9Y2L7KfXH9L\n5IRDA0Bkrk2Rks6jUfRW6AHl4LhRlK0IEGkL4kogTP/Sn9ydjWrx5V6Yl2kw\n/xHqGiTGS7JjGdlUPEw8OFXZZtRa/gGcJUuXYBUvsue1rqUaM+I1c6eY3I8j\nBZiwJ5UG/zL/AVGrlRMt/ai6IqIJQtTCr/nJqcP0eI3eE3g4RkpC3ZuhMKjX\ntI05v98euj5i51sZOM8lZ4/gsXTuKMEMSzOJRxGxdZVJKIGFRXwv0KEoqiaG\n4FZPmQ4hnwBsfImSyfnlKyTKIBd3dNKsMqqnJHBxXGvPVOfqH46JIxHKZ0g1\nWFvb\r\n=lLqy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBQ9rFLM0llQdIWKHGEOuJl+TXS83jkaCfVaArt0Hw7AAiAyFV2QWud38mEk/nzW4maoxvzrj07uJezvLdGfWbY3yQ=="}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.2.5_1576015027327_0.08265841198391399"},"_hasShrinkwrap":false},"8.2.6":{"name":"@nguniversal/express-engine","version":"8.2.6","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"peerDependencies":{"@angular/common":"^8.2.0","@angular/core":"^8.2.0","@angular/platform-server":"^8.2.0","express":"^4.15.2"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine","@nguniversal/module-map-ngfactory-loader"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine_public_index.js","esm2015":"./esm2015/express-engine_public_index.js","typings":"./express-engine_public_index.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@8.2.6","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"nguniversal","email":"viks@google.com"},"dist":{"integrity":"sha512-IKUKTpesgjYyB0Xg+fFhSbwbGBJhG0Wfn8MkQAi9RgSi8QsrSMkI3oUXc86Z7fpQL55D/ZIH7PekoC0Fmh/kxA==","shasum":"3930551727b5be1256f0aefa1ffd3c37cb420f9f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-8.2.6.tgz","fileCount":70,"unpackedSize":183250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8BtiCRA9TVsSAnZWagAA4zYP/3QnRDl86Qd+x6OGO9bS\nijpk0Dp/FFwicIOFabKU2RoZtbGurxNOq9dCf4qYv9QuMoKByKnqwnRSOA0t\n1d/02N+++Uk76r9ooeorgmarB9dQEXXwXsaFNfrvmpxvMX94K1pTcoR7sP77\n6lWEYcJe6XXMKFoxKGuimPKCofnD9ACoY1Y4U/tXSMw22zeD3xcLz/pVOFPn\nlF7T8rhMnyyzSYk/Ma03/kAxwMzB5LHTBnOYA5Ta85UCYToKwfW3CWGiPBBF\nMPcMJAvy3OIcABhOdklfKQapM8ttrTlFoK//d11geYJrd44vl5sQeV0RbXxs\n0wR8jpH+JecqeSQBGtR8B30imYStDoh81qM0/PBsaYIT8S+AD89AuRwVFZDu\n+C8tPORHIPOR1oPECWIkFkILoyhBxIw43KTShHryNsP1ZB1KitgRqjj0u7VL\nzGQGfjKSHOchz3pDrM+8fDRxS1/lrh0HY6fOw9yPbrcJ7jgQQ6SxsREWsTYv\nD6XE+ivrnsFkwcOWcUjDu5LhvhldAkNpPbjVliatfIzgqZIDo8818GXMiv2c\nyc5iREUPRjh9EagmpYh16o0XRA8JSEkBJLgSog0+bxHXX6KAeZCabtuS3nPh\nrgJlYdPOz7z4VugYjIO5wRXmXWuBw8iEHWr8i1N9Ank04BHBRMMGVPkVFBUt\n15hf\r\n=MA3u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1qYA+ZzSJiUXkV2fE67JUdLNaUr5NB9jfbvtcD40UwAIhAMM+j7IsKESgCxWzdDtfgd9HbaEvR/tADraA3FMFGA5L"}]},"maintainers":[{"name":"nguniversal","email":"viks@google.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_8.2.6_1576016738404_0.8423452716310205"},"_hasShrinkwrap":false},"9.0.0-next.13":{"name":"@nguniversal/express-engine","version":"9.0.0-next.13","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.5","@angular/core":"^9.0.0-rc.5","@angular/platform-server":"^9.0.0-rc.5","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.13"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.13","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-kmaeYS4JZTxdpSZWG6L3qnwNFmUnKGpXUJJtku6nwPyzfvLI5ISv5LeyXOWyEiWmCIRQUIDOy1ohKY31Pg1gyQ==","shasum":"0edf87c5f760c9ea22abc5732b1e833af0b50b9e","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.13.tgz","fileCount":59,"unpackedSize":160924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd++d3CRA9TVsSAnZWagAA+MYP/RDxaj6FnhWLHdI/vljP\njmjx/CExHE+13CnkTrQtnD8oi0rgElpZbWZWEe2kARV2MnSghd8LvmVFdGl5\nOHkjdOBx9kmkqjsDlDMDOsM9X8O0v4YdwM23W0elWLtVRU5SWnuBi7SOJM4x\nifgahgV7wqgkOTsRMRgqeSBUrWUx/sNJp0rXUI+1IqcUbfO7rfWw+lZPoeXi\nCF9DE3yteLW3uFslJx7HdBxzrmgzzdmzlnD+kcbe4uEflOIRbayzyStdU3Cb\n/Z1UeWL+TSWGkxCKcASQFaS/XQ3q41pm9cZcyY7RuxrK+tjkE28DLKkX1OyH\nX1a+JPlvjNYwxTDuncyJClNcNFOI2R6SkddUf9mg1sv6a9aFY4jVUOPcJAQH\nVolVYxCojg+YT+ZCCA4ZvTDKPc+2DfYkOBqDh+diCBsycZ9yRbyKb2Hn1MvU\nFJhS0yQHHxCwyDbjEzE4Zj5V8X9XISf5Ic6e4ePUa2F+/iEdpESqRKFVoe7m\nakAl7wJ61VsIVWGQTSux3BNX9BaKqcbOwjT2ZjaQ3kRbJHquwI5zDbtalfTL\nh8fO4kn/l3XQD+q3LEpeBXQhdh39aUF39ozcD1U2ZfNqO6otwtYZRAY62h22\nJhItdCn2x3raIxO7nDyGeCv25rW5oZ0lVO/BqTbfiE0k/VfSNEXaKPGJ+h0K\nhvDG\r\n=rhgf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGl/Vrwjz4Y9B3abamWCHPd3zskFzJU5lQb2VeEOeqeQIgS2lmuZX6iuDhfKjYSUea6nqhEiSbZDN6BpwqHX5GSaM="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.13_1576789878986_0.595629558122899"},"_hasShrinkwrap":false},"9.0.0-next.14":{"name":"@nguniversal/express-engine","version":"9.0.0-next.14","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.5","@angular/core":"^9.0.0-rc.5","@angular/platform-server":"^9.0.0-rc.5","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-next.14"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-next.14","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-+q8b+0qW1VwPACeLXKbURqgruzjy6wWQ1pXwAWGkkYbsU796qfYoQBdJcVOkE6+noU5d3vjCvmWagEpcJjNjJw==","shasum":"26d81c0f514a63ccfd8f7edc3cd5e061f5f3403d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-next.14.tgz","fileCount":59,"unpackedSize":159808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBlzKCRA9TVsSAnZWagAAV7MQAIdqQDMvYEkO23N4KUp7\nTl75kJDOyoX0MYkMep0LrXB5D9SLWD8deTsbh24vD8O1DyAwHj6F/g9QtqGn\nqtJN6TAq5grY3mMWqNtmdVX8EzyktVxE8zzbRo2UXDAHgIHQ/0nj5UQxnELZ\nIgFNG+hVnJcGcqAd28dkLDXFgLiutKJnbJ2MlFPNrpNxj4T+5BX2vRggkonu\n88Uj4pyfZVWzlbbKKYRcPFU50FAj8/J1trc8dS7Z+VnZXyP0KqeZfgV3Xily\nop0caO8tFhKF724Y9+H+5jTLHntSUTMwOIDt5RvTm+jj+SqwFUvpxq18FC7k\nOJ5P8jeh/flrth45bggu+OcoKzggQnRyb4g1KexqP1UVBfn5QDBFs9L1dQ2V\n7ymiN42X223ZQNmGoUqZj3yYWpFLb5rTaR23YvLzocYAeyKoHcNuT0OUT3/C\nsWK/wchW1WFjpixmv2Y2uYON+dpB1lDyAestl90BklCWO14iOWLuHb3fohKK\ngvfSaAliZnsKTdlTRquu9zmUG3o4v4RQMXIGE+cQsUNr+o1hWjUnx3LXvqE2\n7p6gJvD1JnZdqfVbv5A4yLiPXhaTu+8duzOchk10uLa1UtBtDjK1lq5d6pi6\nfsitF9U1EZQ0zxvJvLnbnI8sqVP7jaYdqQLUMPyiqojq+TskiigV4/qtEPHD\n1es2\r\n=dJmF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGa2ooKVtRtjnbZNfqnHymxuzR677/ld09WIGIKj7AOUAiEA5/90jvIwKHz1N7sbUVsrMKWlKGkFr/RwOKdp/7Cvosg="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-next.14_1577475274276_0.7680946751730531"},"_hasShrinkwrap":false},"9.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"9.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.7","@angular/core":"^9.0.0-rc.7","@angular/platform-server":"^9.0.0-rc.7","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-rc.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-rc.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-vyojaFRNXS5BiTIXkc6GsXZ2J/QOFvpnNLVnxZgTns5+Q1/z84Q40sJCbfT0VJhjEUxen3gMlHOza3aE/kUsTQ==","shasum":"433e49ed241038a41b46f1d6f93cefc64157fcf6","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-rc.0.tgz","fileCount":59,"unpackedSize":159775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeD9J1CRA9TVsSAnZWagAAbkAQAIKobEO5kb7Dh+mYG5YE\nVSZt7lJNAkllVrCcYZVUeek/PU5zy9/RM7/id/40HUoSrO3/Da3rLMb2i+1R\nXnyj0txqH13Fl3YqqZytnAN146E9Bov3GL7tPWtROpbJA5U6+vSwSTUapNUC\nflkInNbkdNBHrM2YVzeUJ/K2p2i9Ho48Dlkv6GM5A5C2AqUwFyC2O9rvZvJI\nL+/SO5rDWYZ/eEueLhXgcrEAJflRYmAZfltnoF8SEHgPmn+vdK7kUI5+/RuD\n6GDDwbQosO+X8BO8b1D2QRIV4hSFfWX0oJTXmx4mQKyNMOPKngO0Jt78iHOP\noX5x0AP8g+IqW//t/TlkRIqamf3gbMlRNwe9nw/6QNn/Q5ZBCS/XbjBIziZR\nffjWCm8BLIrlpBX5+Xeoi7b+/DB4c5TYYurRhl2VFDy8b+Afdxo59lxFx4oh\nDFIoj+YKGI3qZvriQOmj0d66njkF0aaeVly84zBb8Wc5h8WC86JsbhhvFHTU\nUlBG+YSzLdMS6JU026nr9WY0O2e8QZdK9juQBcOqI+hHfzBU7Wl9ukTWkrUe\nuuGAgdI/pKhk5ToIZTqbp6ydMfLs2YWwfLKobXcE/oP4MXXLHubZkun3B8NN\n36cDOi+bueecMJcFEtrXQt1O4gaoginWkXiuQfGiTa4zokyRMjx/MvnlMVts\nbmBh\r\n=gjR1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCH3UoflAkMyRWqnmKdrgDbpA/cp8DVwRMqP9BMwaWDw8CIQDNS5Cis9OJvBZ/kxBwHTP0nzxMetMFiiSHrtX5SMuwSw=="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-rc.0_1578095221449_0.9382108379043137"},"_hasShrinkwrap":false},"9.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"9.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.9","@angular/core":"^9.0.0-rc.9","@angular/platform-server":"^9.0.0-rc.9","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-rc.1"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-rc.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-JE6wCAJqa72lzp5I+99hYveNgKPYQuL+E5Kj29jRTjEPtgMrJmKBewuNpeFNxzvZkWLV4EgHAQiGJtU1rHqkww==","shasum":"ba5b94d3ae166e7a9221523addcb161e39266516","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-rc.1.tgz","fileCount":59,"unpackedSize":159836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKJPnCRA9TVsSAnZWagAANwsQAJO7260qeFFP4ka/m+X6\no2ZTkAZfFN5rdeNhvhnBzmClbGAR0mzt/JF9UcGelE1PmtZCCXSyRx0WOkOq\nGk68OqsWsj0L+V02PD3Y+oA3XG4FRzgPz9QjJWFe8h/d6xpdehJWNKwKvAD7\nFUDp83nVilBZjxQnebjIerREGy6YINbIOB+ao7E5CbzlzbmGT4VgL5syZnSh\nolG+C5EhbYlVq8Qw5JZFK91PEKNVImH2TE5M2EEOlrz7t+cud6BsXai04djI\nFNQS/QN6DTP/T9fP3dZT2G9wBeBDEWY90lU4/Q1JuP9iGv/b6QMjHIZHpD/C\n1gG561aJSGqnbJKfUxjUl4HEhztkdgLHnq4YWjZjbI2IGpqWBbwM2eFsPMe8\nlk72G7NxtUmanuMI3P5g0/6YmoXUYZPMy5Gxm6G8EAyTHRwrku5H89Kdhz0d\neiXHZHG41KPy9mU7ubcvStktALA56GhTZZNqyDleDwthronqPAQqK5hBcygO\nDUIEJpr4p0Ub9dQ+AJXQ5jqBafwnDTx2GOQ6FVD8U9pmPDWxNjtStjlg2Tv4\n8sPnqxqK1qS2vYfvrxWdkLWSBn5eqeuNqR176ANbH9qPIqe2wO7qfI0lk+OV\nvg2O5Ag+JYuvZ3EOTldnZLcpd9qUPNAmcHZs3RyriXw+Gfj7J/a4EcH4rryz\n5zUg\r\n=gRtB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDouHpAwKkKz8aikfp8X0lIZnbYgTwryrauE70Xbav63gIgdANu1mhig5rpsXcOFKPrhKPwoV9Nb7v35qeFGDhYssI="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-rc.1_1579717606812_0.3488691493951286"},"_hasShrinkwrap":false},"9.0.0-rc.2":{"name":"@nguniversal/express-engine","version":"9.0.0-rc.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0-rc.14","@angular/core":"^9.0.0-rc.14","@angular/platform-server":"^9.0.0-rc.14","express":"^4.15.2","tslib":"^1.9.0"},"dependencies":{"@nguniversal/common":"9.0.0-rc.2"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@9.0.0-rc.2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-WQ8vBDPh95dKAVtQRXrEhp7+PbXe9UmKPr9KyIpOOwYQCOpA2VP/2V3ysFrtpJd3NddjfB5pV33Y4owfxBAT/g==","shasum":"1b855f8e7d6beef41b1ce7b77e3d40d3035856ba","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0-rc.2.tgz","fileCount":59,"unpackedSize":159839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeO0hoCRA9TVsSAnZWagAAz7UP+wT/lZbeLJE0RN3iToEF\n8CVikJzP+oc+FFCmDB9syq1xY3OS+g0gY5n40ODei9NzYfXsZttzhjFSHzlC\nmV9Bqr9hXQUo+aJRTv0G+zMtkghLn5fL/x/Q7Y54fKAE+52i2d1TlA9VgwFq\nMog4wzid6xk2b1X6DY2PFvR0IoEOD/h5KBMSJ1Y61aeDUQsftCVxhf9gxL71\nKa/ZuVnGsJz3Hu5F3XmnMa3ii1phTXIW9wzlp0t0Xk3IUHqGUIW2oPemx5gB\n7rRKVYsHBqqHfl6XxrBEpAt4fa+5MpMEbhGhJEEb6r3FPmN6onOOuVwFYaY0\nXAxG0ggQPBbqYE7gsSZWdCTkAKjj4PNlpvEHhNr5+ey6g7ekT7jqy03NkSx3\nxdkOrUtfBOuTC6k4VqnkCqHTmF36UWp87h8Ok4MI0rzx64XyeNSNcqPZo3Xw\nrLt5ZABYpp+DKXJj39z4Gyw4o2+1hlHKc3mGCp7FuA4CWORWV1VebU/Hkju8\n/IgSdYmah7pCVkS374XhMsOcrPe4j8ul6qOhyKlTsYJwmKEhJu3Wp1Wy5CyX\n40d+vXoPRv9Rd+HrT6YgZ3oM/iDnrvw5DJBjaR8KGP0gN2YNVJgi+Rk5mdlv\naEL4wZ1sRHUgV3EUu73/O1M19LaArVAitixR0hyNkf+gXPyPPednKWJVWTyj\nv62N\r\n=n/ra\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFY9cykpZKxfpU4B2DgGXr1ZnB5v2wBmnIxCPtQpRFbVAiBeNNUW1biqUUyv7VM7L4MjJvc8OOigwOFAPVMqFzHj2Q=="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0-rc.2_1580943463859_0.3283493541423499"},"_hasShrinkwrap":false},"9.0.0":{"name":"@nguniversal/express-engine","version":"9.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.0","@angular/core":"^9.0.0","@angular/platform-server":"^9.0.0","express":"^4.15.2","tslib":"^1.10.0"},"dependencies":{"@nguniversal/common":"9.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@9.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-2HOzC7Jb9kxAskXkvH6BO+u3PqmCCkNjoZBpwrM4zoXjuVdlwSl7YAXLpg24pXhYmto7m7j7P+lvpRXYxV2Zjw==","shasum":"06badf0ac8e2a1d9d210d8077a1e5ae3539ae593","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.0.tgz","fileCount":59,"unpackedSize":159797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePHk9CRA9TVsSAnZWagAAUpAP/2jjlYs++/hKn4Y2t3Iy\nlKkcgAgLWPc4iFLrScpw0Sk6yGW3/O77DIjQNjhNybTiTb/fE6+aEz1SFvw5\nVsRRhsStjLs6bkVTzghSdX4msfMxP3N4K+fgJZfn51tVZH2q0TwXS1nWLr7I\ngDiSI2ny9h52A1COnnbSaQiNXQBjZRhcV9gtl9yFAbG4A3IZYuPJIcOld3CW\nYa9ACAO+SlowGHearcsseKWe1z0lT3OVSswMD+4whZTd7mzVFZMAd3C8Cx10\ndQvNgV6wteCE1peMNrjGLU6j4QzKWcJEIqicdpKaiyCgYPtg43kYVCgNCeQ7\n8HHBYFU/WykFSOg7x4jgW8dvPzo/8bdALJpSlF5aXbqb2GmFYikrTa1WPRfY\nrdP6Bx2/6OK1YFQIU7giClzxx48yGqo+DSPDkWZHJGwfQrVaHrc4V485CoIp\nEl7b01adVHiqslLkMX0z8dkqcvccbtS6rQngaczOO1XUUQpR0WBNcaiplZDe\nLTqGNh6MdEiC+3y0ulJemtnWVQaP9kVUeH9nt+GrCseKo+0I8qXfk84j3Vtu\n+ePHZ2IgdbhcyLy/ipW89vBz4WnBiyvhP4w6iK14d64ecGvnaNM76IVroupr\nDJJ4FIY0DLhMHGE6TUASVY5AdU4/hvtOtxke4+dJA4k0NEBaszba1gkKRefS\nbFCk\r\n=9tlW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsOUNZ7QxULJ8nWSVTT5DBrH6ROeNpoKdzOcolGHrAXQIhAJQjE8r2UecX3WV7CusQP+wXUcDtoJ50qlnaDhO4P9UF"}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.0_1581021500790_0.8051819452319058"},"_hasShrinkwrap":false},"9.0.1":{"name":"@nguniversal/express-engine","version":"9.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.2","@angular/core":"^9.0.2","@angular/platform-server":"^9.0.2","express":"^4.15.2","tslib":"^1.10.0"},"dependencies":{"@nguniversal/common":"9.0.1"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"]},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@9.0.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-uICu/CVrKuRYKUhpn91tRoERRhorDH038zyUsQt3yqsKV5BXyclr+H0lHh94dXyi+W0RKmksvzGNshwc4IWnUA==","shasum":"109078bda23093dbdfec7a722c360a4e394931fb","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.1.tgz","fileCount":59,"unpackedSize":160340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTy7ECRA9TVsSAnZWagAAFaIP+wQhMNoUEsGWc8JFR812\nKCRU9iNmp95tUs6NtHp+JO9yRz+HwWUBjEAe7CKMm+yIMq69Mwial8wEteBM\nN8vxI3VJrST6Lys1LQTng+OG7jGTgVItNTwRiBuLIntsVBp3yfpTkS0krZpE\nDLON6L1J6iFKGXGx2YlHljSkAmHaNgkcvIK9Axqvc5R3WpB8QKQoRFXOStCB\nxXEsQAVGOKvVLf6BceecAF744KSokxcYRO26lP+Um9FcZCgL89NLd1g4fWwl\nxeKZ6YbNtIYc09uWDu9K1LKEXEh+QweQeUSFtt267mm8pzvb/fRsPm2kImut\nm7Zt8cW+cXzcmHBcCj1JsxjGnuRewiFImdZUOSJeFDWk0Z9n091LbZpT6rW7\nlmSyZItEfJSX9UZ5EGcUQ2YeELS0G39vAbJOIzbDEUKZqXufkMSo/OfWeb7U\nSY3SVQIqetLFiOlITcX/SfDYcbnZSsm5xYEroSP2QJzgsiqN/KqeW/x2aLb9\nxJrUCyEtjQo/6bMQfEMheEPPkNTSTYczUd4fTi2VKMG1yvcjngpedPFrkNjr\nw37u6swvkjU0DZEhwNuQIMgLEW8QtC3MTNeUypitm5k0dCRiA79W+afQFfhV\nwzrEfnOYuQFL4l8cQL6TYYKOIWBreXgFDJEzODUX3858l6Q/7fOZeYQ3QMry\nwzmI\r\n=ylGS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAiVDY5knymUGXdQxLz++ZmW8B36Xn7oRrd2EmR7gvU2AiBBGGIj552K9PDewcv1SB6uDVcnhbm7fCCQvvqm5obE1A=="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.1_1582247620217_0.027215089591879016"},"_hasShrinkwrap":false},"9.0.2":{"name":"@nguniversal/express-engine","version":"9.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.0.6","@angular/core":"^9.0.6","@angular/platform-server":"^9.0.6","express":"^4.15.2","tslib":"^1.10.0"},"dependencies":{"@nguniversal/common":"9.0.2"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@9.0.2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-3BZue9Rk4spuRZieE8gm7vuUZuL2cWlsIw0pPHBRT5LDnM26zk124eUIOMbxZZGAa2pQLkZ7bh1H1eXit6ISHw==","shasum":"d1aea1d8b9486ff65be6463e64e093e593249ca2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.0.2.tgz","fileCount":59,"unpackedSize":160400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaTryCRA9TVsSAnZWagAAtlUP/0ZucS/gWZcMp7oM9FxW\nhs5oP7Xd+oDulH5AeVfAtIdrrYvucBvYjZ2yyLZo9FmNDB+hBf2rLm+JUG/n\nYG4E1sJKbTNS+C/x2wJ9Qi4384ETRvdCDRBcRtE968phsXaO/RWVDaLAKdKl\n+v+izCn1wO1OmmAdvQrEAjky6D160btOU3y4lj1/gSjlbMN+uVv+KPhDfTIJ\ny0rMMGy/1BTei0XmQrZXDI/BT3NXZqjMScAS20oX+52eNiu7LK2j7Q5RjjQg\n7Juhe/y+lLPjKyyBT73V/JcWk/pFOB1E0u8iNdV1KDMuqjOKo5LesrcVr4td\nLyD2rMP5cBxhkF0cvX1DnRIOuCoGISlLwQNqHwUhaY1G2xkBkgkOUn3OdyYa\nbL98aT2uRLncvvQwDbDAbM8xfxy8OK1qSlbtUV4fjpimm9QrsmwnZ9zYLmwi\nKJ9xnm3cYM1/xtgAVhj6XVjhQKSRavM3jtpmJmdh0ojbzEpmtZHLekgYfkeZ\nf0U576dTJJzasQWijKQ8G51ZVTXbRolFjIl+bc8S//ia4VF4fSi0dvUiPHd6\n82sbT4Nlz6g+x9PlQrLZ3GJ7h6csbB8pyFaRUhtL6uMxAjnTbhpA8i+cdkW8\nj05vbq/VaWgESdDZm+j809LSqWaAmN4/gZ+2wXnAlYIu5UwaZcSU7mDxXdqH\n6qqD\r\n=xraK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBuOBFSvMeXTHoN5qNyLrsO3Sj6qHMZtnk4BVQM2gQXpAiEAmwrwDtb3MGK5EFOPPP8NnJZLaMKvAViWtzjwNDHKwAU="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.0.2_1583954674345_0.662976677488524"},"_hasShrinkwrap":false},"9.1.0":{"name":"@nguniversal/express-engine","version":"9.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.1.0","@angular/core":"^9.1.0","@angular/platform-server":"^9.1.0","express":"^4.15.2","tslib":"^1.10.0"},"dependencies":{"@nguniversal/common":"9.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@9.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-uRb8dJD3huk42eY1iOpmr8yfq/LTSOoUfKY4eVREE7nMePyZNSRQHNCEybHDTNh43FvTN38u+cA4dTlmMFD5GQ==","shasum":"ddc1cecb4134a365142a9ba6ebb6ae8f99cb2ad1","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.1.0.tgz","fileCount":59,"unpackedSize":160427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJef7i0CRA9TVsSAnZWagAAyTEQAIER/CnkagmiPi0LQjY0\nHtCpHFFYvEYJwHH3nDEwTglbuWoX183F3nRGSvZwk6ZQYEjOs/u0camhIng7\nlbGa4VwvuvMyI57uaCQW6mzq8ZlzumrOkB2aFOGjFzIzAANUcSOCjr/fhPvT\ntQCnqFXYpgW5cGr7JSNibd4DaUIgpL2s3H9DSoRz3hXx4DstuACONUhkRx6R\nQTv+czc6LWOkmSh4WLtKfYv/mDUKJSODOztqmMuK4SXtymrHm1vbcwVEpCHC\n50VvEMFUkifPUBvWQIbDJqAXfR3iqtKik3KY/FiXexu+b2jN0VLD8Im/066/\nqAktaeEEDM/WTiuuB7a7Fd375ZXZte2rqxuY3HLUfKJP3fmKPLltg4sTxwQO\nrzDiej6QzpZxhuKou2zcvSmMqFOwtUpvNY5Z2Z0FjfaDhLHHdf9c/UVCAWHY\nbNrkKJqVjPxGxwmfCieSeq8VEu0TQuhTRY6WFNzAtf3Ic+3C2MTc/olU8jKV\nJzep3cDL4kkU18AUuA7DQup1JOttyKaOgGEiYMA7JJgcZqsiJt/80BNrrcR/\nKMfVznRLi5xE3JpjsZ7K4qjYBVGncYCyaMN+WT450dqtq7WyTuE0UsUkbuwt\ni1xWIfqQXdKtAvWAUhYE8ljvBz7IPfH/IZd1otmVLh8iVh/h8VSUu4hM/Hrv\njjS7\r\n=8nx0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICC1D6IyauAf3NIDSpzr/vkn7PbXE1Uk6SHLgNpOejbIAiEA+Np8QNnWM/1JPh1yNGZxalI3xzFcPpT4/MoDqRuSgCs="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.1.0_1585428659564_0.8868010904887933"},"_hasShrinkwrap":false},"10.0.0-next.0":{"name":"@nguniversal/express-engine","version":"10.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^10.0.0-next.0","@angular/core":"^10.0.0-next.0","@angular/platform-server":"^10.0.0-next.0","express":"^4.15.2","tslib":"^1.10.0"},"dependencies":{"@nguniversal/common":"10.0.0-next.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@10.0.0-next.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-S0vZ+b8BZY7X6eTg5S0P+T4Rlb22xRI7fCyQlErlYy6OrGHIAAst19p7S8NDk8suYcfM489btgZMpMwzGWeIEg==","shasum":"cc695d93d021803abb04934a401a27eecf22e43d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.0.0-next.0.tgz","fileCount":45,"unpackedSize":119915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuabJCRA9TVsSAnZWagAAwqcP/AjX+gXpFrNAge5R+IAp\nFW6iSD5nkL1OsBGK2OzZi63ldZNTpo8P4ylQZcAjvRX5ikf/Z7mIF5uwWPot\n80/tnFXaqEYRHa/qr/lu2PDzgC5Oc2jZv9dDQtbOkWhT8LIKFjPCxEGWmi5J\nVXGaDPjaDrDWHMh0CNQTOLOoQk2bzq5GTO0WyIg1IXBP0TsstcNKLKeAb8GO\n+1b8WfVKxquRPC1H4uc3ks81GtubVeE+nIHLVo9wmIFCVGo258Cye6NO5DrW\nfo3UIBFFFgiMIh5RXbmUuN/4gQ0t78YfLgKxEH+C9fZ8DfcggR92t/lI8b6H\nl3MvmWadK6Qyr+gEoxzki4boJvz7+D4SnOfh7T78iK2UhXhu9j5sebDvc5oX\nGlc+6ebyBJWTbecPakMJmS9sWbMrpMcmIPxpVtRl0BML+szg0KHLuooyOpTZ\n2mjnQcIi63wOgI62CcoM8xysEr3SCwkkMPppnGJgTeU9otZZ3o30hEFgA1SU\n1wwoHqTXV6ZQfVzyPigMmvLzWbcqVrlFaln0QE2f41woTkl9RbsUGng9bpLm\ndQb6r3rg8UBdBMbw8K0t0MW+Zqf3dd0P2kaehYm32QBEh/3S+ug39DbSDEwS\n7ytN/l3Pza6cGIgdu6f3RDhO+vGTb8YkylLuPyiVIjYXpMYOgclI0tJ10MzD\nx5rY\r\n=tON0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbVUfbyQJ0oOgqHSAN632+ftL4KTnUteNc2RAAclJPvgIgf4W1yL1sAp4xOVQC0iYuLN5sGGninSELbib1hEq8od4="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.0.0-next.0_1589225161210_0.6883112823968736"},"_hasShrinkwrap":false},"9.1.1":{"name":"@nguniversal/express-engine","version":"9.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0 <13.0.0"},"peerDependencies":{"@angular/common":"^9.1.0","@angular/core":"^9.1.0","@angular/platform-server":"^9.1.0","express":"^4.15.2","tslib":"^1.10.0"},"dependencies":{"@nguniversal/common":"9.1.1"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm5":"./fesm5/express-engine.js","fesm2015":"./fesm2015/express-engine.js","esm5":"./esm5/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm5/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@9.1.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-K/4cY+mJgJu65HYyFz5L4wrUqtkYqsg/itXOWhPCeuzhBCVpJQntXq2z07sxM+Jl5EIbCi3jGa5wnm/17uti4w==","shasum":"63444e7e13a136a76a73bffa8d746361155c749f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.1.1.tgz","fileCount":59,"unpackedSize":160427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuagnCRA9TVsSAnZWagAAsH4P/2beY9J8Ztdh2HeJumJ8\nuOPp+w+wM0LMThaxS7LCyizGrLyDe7sYhKxnGAgkkC+jcy9VSN5GOlt/OEsI\nkTMhw2nTYhX9BrgApmfzy5FF3ibh3eonuYH4wnqwntdLyimzRn5gmESlkWuT\nwLgQNatZ80NzqLZsO/PF30ngY8VN21qV+QbP2uT99rHyzEf9PCgj4N2u8IsB\n8bg15nakUJ/ImSv9tog33kYPiA739d/mDXDZSgJVrqy6IhaV+S+DH+NauIx/\nPa+xZE4tl0qJA5tJ/ablBaML/GSoxgXAVH0xjKMqc4hP18kWGo/lZBQ2KFCZ\n1aItWBs2/ds1FAYgtm4ki6Bs3xxOrsgWapupSigmaJHnWllOfxvgmKg3ETny\nALZdPQ1FyFiA8XYtddK9EKRewK4zePSPPzeI8GpURerfh9YIxzZNp8imZPMP\nzov/PQq9gmlGmsJ2bv29AsfQgkXra698quqSYU7yT2MgvCzRC3qrQDtSJ+gK\njVP8YVPiAwpv1cT80oetvZg3iumtNlGwdxYS31B9awUNGwh4jfCrdXHcusrE\nsYGg2Qp+kMzHGgAm6NTr/lIUOqZ5dySLFia7B+AuWQZbKyofa5KwYMNAW+xf\nLjMgmcGeb4jzj2pQrY6sDEdHiCh+bsn07076uDI6gNRoEzc1Fc9CnQlxIutB\nZi5l\r\n=eJY0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg5jZGt7eLvJH4IaSO68arv79LG2MsItTG44Y46XRLBgIhAKAmI3fjCQyJZbwlnZXJ+E8FEtASHlqa3OxVhA0C7vmi"}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_9.1.1_1589225510631_0.5692587119777639"},"_hasShrinkwrap":false},"10.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"10.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.0.0-rc.0","@angular/core":"^10.0.0-rc.0","@angular/platform-server":"^10.0.0-rc.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.0.0-rc.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@10.0.0-rc.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-uzMl9fRLbJJO8ciAFtkQm7sWNhGNgE4YzShhqL2FKsuqJA1izA/li9iCaZ42rzxLVyywtMrGFzODTrpdSbssRA==","shasum":"260324d896e0146c7116f1dbd588c35a66857fb0","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.0.0-rc.0.tgz","fileCount":45,"unpackedSize":115158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeztUjCRA9TVsSAnZWagAAmnUQAIogy5mZF8OnFb8rLVW/\nZ3dFFUxrBbkKi/SZ4hv82NbCS7HphyestHt1cLh1sWvZ51coFc1eD8Tu8fgJ\nlVFjKOh5kPKEFUBued51WO8WarrMHo4Ny9JApnj9vT3Rh2hHHaga/3VUzpo+\nfl+gUamR6m/5zdjpX9kYuEZRvXWodfCPaIpoHVXKzIYG9emAfPenyrmUoxU/\nWoX0nVZBSm9nm4mBZTAAhpBHAnVvwsXlFRnfLpAIsnMLcvRVPXDMVYbqxPSy\nir5/poCvffHEk4kGvCkDmj+drERys3Md+LDt8lVdil3AZzh78ookl/XvHeBU\no9V/mps4fUAcQNIEMSBxHNYt5wihi8wb84PQAKOs2FjvzI/4w1K0Kjtui36m\niH5Tcw2eEqtBCBf1i+1ub+1AZkrWr40vQpyqcFcicJ1pAuSZxib8sZx8+aNl\nyesFTiLIzo5F5qTpvnGxufEgS/FqL4duE4UtYTyRLigXko0rx6Hv7WjSM5Ec\nhFJt9K8TD59K1jfaayL2mgtSJsC02LXc2L/0GShHXa9Q+vQlh+uoJaT6jJdX\nNM33le++YVwbIwY56W2pxkykuFUmNbLiQ6HFhdZaTK6j77DU7/owwM4s5fkr\nclMmOyGmgb05Pnag9D66U2xHzsaRXaxTyERfE9OWOhDebXZfA26m4nkfJ2H+\nvZTv\r\n=K8Sn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsuGvrLEDASQrWABggfELbYs5WT9I89ZWUfeZkLOIxQAiEAnmRdOwDLj5LqIYwdmFIiyoV8mBLhS/AbaanvhBzlnuo="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.0.0-rc.0_1590613283513_0.2001882573031959"},"_hasShrinkwrap":false},"10.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"10.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.0.0-rc.6","@angular/core":"^10.0.0-rc.6","@angular/platform-server":"^10.0.0-rc.6","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.0.0-rc.1","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@10.0.0-rc.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-PQIucy80FbsJibd6oKN5g8JskFASTSq1W+MGwIbUb45wFzPARRoVUAqZCV0cu9U6pYtFfWAAqfczw9GZiMCX3A==","shasum":"d133aa4b501ed1913c3de8140e8a45ac3ecbc02c","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.0.0-rc.1.tgz","fileCount":45,"unpackedSize":115252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6UDXCRA9TVsSAnZWagAAEgoP+QBKVHolDQS9pNMdX1Wd\nvv8GqEDX/fXQzzvAeDIlnDigzcoarmmloxH7D9F7WenR6YweXjJKrHNSUyi+\nxBMD/KxCV/IVCHNksYDd5XOHcp2bvdX0/8nd8Lq3xC2R6TNiBNDZB0SUZPjV\nfKdOrrW2wIURQRLyAKTZGLlsGKYQk0TSXa7GtNfBzCVzLkEQDugqWJW22+61\ncPlvk5/6IGteGXVIMIW84mXX4BfgNE2Wcla+O5NzE7yDMYaODFdxORHrrcid\nnfuiy/xbUxb0VlAQhMrEM/PIkvogILUL9WQQ+5pRxwfncO5bKt3jXmD2Z3bY\nlQgwtZAHaIZXGTDljFrHvSoD6lsc7/xSLIJFzvxee12bkgJ6BL3hn9HSm+8h\n/OpdK3jEx1HkIprq2bEtn7UPCsfP89+qznzNOHyZcTPUPIGOXKPfEQu9CLvM\n+hNrXwB9zD8bUYXNZLzHnW1STxnwv4tg+Q33ZKN98nh/F1wMBORn24X6fkKH\nXc8Z4GtWrjq532Er2E8tmKEm6kbO0rqDgm7wBFDW/CsO32lQsbESIj/7aVvw\nt5CX0g1j99xswfL4Zl840PpRjtPAm8bmr+RleNPzSgU6NG2E+YLFhgRBko+3\nGnWX4irIn9q/p3CE952kR9sg9+PI1e9cCXU8bqbMBlem9cnWTqIaryTzvCcv\nGasP\r\n=t+YO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcFwx4/AhHvWuBVUrk5fOYWB3x0HaXiTeJ4dcAFiub8AiEA4pPNK6T124vlIScvTUWvwpN5h/MuoJly3WNazy7F34E="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.0.0-rc.1_1592344790775_0.06823821735989277"},"_hasShrinkwrap":false},"10.0.0":{"name":"@nguniversal/express-engine","version":"10.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.0.0","@angular/core":"^10.0.0","@angular/platform-server":"^10.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.0.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@10.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-qI6eMcfPHlZJmE+opTMZ3LMCFR7ngkioZcTSIT2OCGKlI70cre6Flxa67jfpWPulpqw4Bga7U7Tzq0m6RL3xTg==","shasum":"4bc6e5e90650a809d96ec0bbffad948b11ee3cdd","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.0.0.tgz","fileCount":45,"unpackedSize":115217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe898cCRA9TVsSAnZWagAA2DIP/jqJg5/5RbcsU8/S/xtF\nrKhuWWdx/xMjeyfmGbb0M7mfGTMXIMd1Ca/lIsaSGj2iRZvkpPlFSdPCeq9h\nf3hUPngYH2PA5xdXze4pf4bSsZay4h73f0glE3JE+J881Jvoqox/I1+99avM\nhdCEugjq13LdHfJiM2Iez84zGnXFj1T2wbw01NTafdtXwo2gvh283lDKRoRi\nyGj6tJzshdjUCVI2F08Pmbati00ybEoJaO0HoJkhHw4+YpJKGns/JhS4IZr1\n+VvSV2mT4fUXxmr8wmJkjCGePflNohHqSrsfXJCd7FU401+cE2wGcyC44uuR\nPcW831VRQww+EuT1vAAIyfMYl28Ge+jwYTOisVRyaNqD7VM34fBJS1TnnEcW\nRaXQ+uLey9i/ET3tU6nn26oxQfVgr4Il+J2Cxujv3p1s2BcuC3h7ce4IQbJN\nMsnPBRo0CUbt2pkyFeTd/Vr4uq7DiNb+mCF3R7TzXG8SRHR2dD7BPzaq9Qsr\n1ma435OOIJ0YNlz+ZQhb0qVZYZLwbN5b/VNsT7jLNJD+hO4ee0uQSZbrxS8c\nr1uvtKCzk9fhLGDANpwTI1oNWwTKRETJHzyUPXiY9r1m5cpqrL3EPmn8c8RP\nGA7/BRXUkVjzOPnJNUIu5j7JjqIgskJ0pPDx84q7lkJ81iQEvDpvTwxxw3bw\n3GPH\r\n=qtQe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoMkl6XliesKmK+RzuprbdIq3Q/IGPG+eXKbBxfU9tCAIgekZbQp0s1ocQYkJiEI0MFA6SZpbAzCyg0q60OsxsRms="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.0.0_1593040668473_0.8183957768345747"},"_hasShrinkwrap":false},"10.0.1":{"name":"@nguniversal/express-engine","version":"10.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.0.2","@angular/core":"^10.0.2","@angular/platform-server":"^10.0.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.0.1","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@10.0.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Ie4q6WTMTV6iMaEofG1UO8xagCPUNTfIgAwuR+dcPCc5c8MYOKRi6EQ2X9fltUv0X92PFjI4dxi/DPa6f6AIeg==","shasum":"ed2a37a382598b1f798470c2ed96b9f48d354806","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.0.1.tgz","fileCount":45,"unpackedSize":115312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+6g+CRA9TVsSAnZWagAA3uAQAJ4CogSp+zdvePxcHRz9\nZ1gf/IFUQxog9eiOsc3DHOzFYSX1jQlJX02n/iqXDrzKPjiqa29TZuScjIUn\nDIE4vlg/Dls2Lq9b+kA0W3WGxm69PpMLHK8fiXJKGOVgPPkr97f3IMqMFDSJ\nCY+NQMQmgfM77VRuVv2BvQST5emF3aoTPbfHQhhi90HxrEMth2imeSegc9HO\n4A05Yviz1AfRd0Z9Mk9GxgHG2zb6xIKhoyHlkOx6unwJVdgnDJmKwSPElu7d\ngmba0DseEfnkr2pHtJ3U00efur0nrl6sl9J7uooEXeJ3ArSHeJk+lKiUmCyO\nwGWS33OUetyBMHvFAg2+2hS7gTkuZAfhatxQ0BpBrSPe2FX+mRYuTemABqw3\nDzicCGwj0Y+K7V+I1EDUBjxl5TgWxJvoGlOXakL+OuT8Jd5+tFnczDVhhJEr\ntevP8g2OzmlUmTsFbSStydg2MmAOneJlOS42twTdjrqiLNx95y9MBUP+Tyde\nBpN6RtzxFsTuF7Aiwiqn36g7AAcW9ovigmg/W0AZzvKCNg2CHCsOjhAvIt+B\nEdBuL+QTd0ztakeecM1Fm07Vf8nQyHAiNgkK6QD7I+5SuOBDDMSxLza+5cMJ\nUAQerwo9XrT5dXLcKX+zKkp9q7PPHILMr/V+Ad1/D1JMPNI+1Rq2WqohyBUo\n3KLc\r\n=B8LG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDuYA9ymPcUhZiMFowz9bjN8r7ZJ2X5ZblL3qfENltQIAiAucD5CEw93fQ9GJoT25lRUi/dn6E47MlVqFNJTJVR4fQ=="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.0.1_1593550910260_0.8313753052205435"},"_hasShrinkwrap":false},"10.0.2":{"name":"@nguniversal/express-engine","version":"10.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.0.8","@angular/core":"^10.0.8","@angular/platform-server":"^10.0.8","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.0.2","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@10.0.2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Ft7a+t/+huPF55UspcKy8wNnh/2G4kjVINLzsbCGnMtjs9WrFjm4VKX0D1qn77Sy/2l1Cun+J//2G7ZQBfsoKw==","shasum":"78e26fd5c084dfe94d2fa653fadecfb094ca7b9a","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.0.2.tgz","fileCount":45,"unpackedSize":173684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMwu5CRA9TVsSAnZWagAA6bIP/RmiZTrFkgj090VPj11o\n3Li3BzMSV1l1O/78SPxymjb+IdR7lfIQO7wA1kdE8RLZCrxZ9ybLOY7bEJCg\nPP6yQB3FrLTPdnqX0kOLAQD0HDk7G15sCj1L6P3za8eXPJoYp2J5iQD7S78h\nMwtkHJg3tYzQjom9TEEcTk1qloGVc43H7hSn0acjsDaM7lt9l88idLgHPFzL\ny7jbeEV7HQtmWNxLUGic8XlCcqGALhQEDaG71+nun2LF4LNlKT8vJDS103m8\njh83vIbdYy+AsD7bSpssPaNpzVSVPK18JMwYOw0fQF5xzoDMUDPAnz9g6Zgx\nmULl3X14Qm2/+Mxv1IPWzl7r4cTHjwJs6uu38brnU/E95ZC1pmAaV5BN8sAx\neLvniKOY4o8flTxqi02wGzzgA4mDGG1tunukK3YdIqiEBHnEPPLH7LRmpm/C\ntI5nqm27dZ3SQwG4kVi/PiCAIfIhUcPC/4d0KvElJpJsfx4mk9U7Ygd+ChZr\nRqofOWbvqTHMZa0bLS3NkAgZG5rWCksb7ojIZZwoelPt1Z613dauNFH9wkHH\n4MJJo0wBKannQXWrKGsjluoaD5sLssDiIg6TWAgI+eEslWH7TZXdiVDMjKUS\nECuUCEDdL7VAiKwmf8yc0wX+J+T4EpFb7NGIaCOUncN2S7VoCR5XNc4N68yp\n69Dg\r\n=2umw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+ex/4dxBGlBRnMhwIrmTR9jdjHBy2J5ZGi9DDl5ZEaAiAwZlRwQsp02BMPPk1+pTILgF40ONo8DtOIP95OCCF2kg=="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.0.2_1597180857033_0.671821371048434"},"_hasShrinkwrap":false},"10.1.0-rc.0":{"name":"@nguniversal/express-engine","version":"10.1.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.1.0-rc.0","@angular/core":"^10.1.0-rc.0","@angular/platform-server":"^10.1.0-rc.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.1.0-rc.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@10.1.0-rc.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-LjLYB/t16XDpz0z8pHJrqF7lCZRp1MGDTzfCMnKuxlZhsB5Zom5yUdFdeYYOZqY6Akcz6fA4BgsUoOJ/htkcjQ==","shasum":"8bd3145d3219b224ba006c18aa0d065e3700de65","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.1.0-rc.0.tgz","fileCount":45,"unpackedSize":173719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR/EGCRA9TVsSAnZWagAAKv4QAI6HATjBcysqXwZj8kdI\npjrVjHZOedHbqJlGzioTBS0TQyl0exk44snYM00HFaPGBUcR5sMwATzbZLav\nB90RzFtdt+ikcDUd2DinS9DH7wmWUOciB+wuSa5CyLD9D3Q5/ebtojS0RqHi\nv8Ep6SkSEu8bO2MFtg5fGoWtOSRQdUT88SMq8iSDI9L9eD7cMp5/Dn60gXP3\n9PHhS82DohI7RK77TESEJx2VGjfxS4Dove00hQDYnZTmTHAIlw8mGxCgTZaK\nNhpib8UE3789gndaYYLgdQ7VQKuP4qBdlVzRiAWenVCSVjrEKj6h7h42s6PA\nrL1anVMTukdJR6BTKnp/WGISeX84G7bf+MYHwAa5QJGzYbvmPZn3a+VSi9gm\nG8jv5lyJTjSZiwpuN/Hs7nm972dEUZXlOTmyZ5evRTUM6YWq+LywuZHuRhB4\nhox9SBSiIsn6Xka6IG47OpO3Uhe29M36s8RxGzCSYfQvu6EsNX2KcmZhkMhq\njNfIFaFP4mdIeoRG8y4yQ6TAvaUiDi+H+V7clDnSD2N/hb5K+5w9BoPFUcuv\nJm3vNYg1szhxi0HQh6QaCmhVrU3Ln4etaOLCQJkWmHYOpOUbYbVtPy8gnkd7\nf2p3u+5Qlh4BjIt7olYddPrLozpm1Ju5UNqAAs2Gj0LrANocow5H0jZIwarZ\n9pia\r\n=mS80\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhk58pdzq/JrldUV0mdTa5NbiEDqE2a96OOIHTJaeVZgIhAIFvtBcUCSnb9rTRYbw8guHkVj1zIFb3x2f8TFt3PGY4"}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.1.0-rc.0_1598550278215_0.36941153984872743"},"_hasShrinkwrap":false},"10.1.0":{"name":"@nguniversal/express-engine","version":"10.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^10.1.0","@angular/core":"^10.1.0","@angular/platform-server":"^10.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"10.1.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@10.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-UYQB8662Qnx9Y2TblZmC8QbfAZtiCE6OeLNdwWIz8rVY9jhWi4P5SFb0slvcPMyPL5JAb+FHHOKjsH1NJztsCQ==","shasum":"b1595751eb6acfa02b65e25e9c9ffbe66baab2f5","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-10.1.0.tgz","fileCount":45,"unpackedSize":173684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUG7lCRA9TVsSAnZWagAAelYP+wTOtDvVWL9qaN5EAvQB\nY/fNjhs4ddAfx3m1hioJHttIGpPdHAa221JTqixYaZratpR7c0h9Vkqg6qTH\nEMRORwvJsvP5L/53fJnJ7tboc4hEGeJN/ARutt88iS4JtulOJocIPCNhy9TU\no1FzXCIAGnHRCVrdIMy9iEJOk/g5pO5Ou4I0Y29c5bDyUXoMD0RhwT12WnOD\nJ0QU8zRtPjr5xKbBx3g6DvYMuNJ3V15r23LSbKgySqUHh4zbumvwBTS2LjPI\n9hWRbiBl0LTTkR15MntWnF2paFUx7RwMBAw7t8X8Yk+YkjSuEDJPJar0OCyK\npx5/dHPBV7u1RRBSUnUNJ3oP8xOqIVHl+qXV5wqnHlf6QE8ykFaVrenezbVU\nt8gBo+q4YA8Ktyw2E+0+b6r0jcOYjFIIxnEZiPtaRgR2XSIuXaIlwL7oczV1\nBruMkR+BPqxFmma8jKebMUqGU6krMZo346JBa6QPIPLOdwhPU2jJoEB31d1G\nqQ+ob9znq4CG9F/Pl8wRRdwo7ZRtUMp3kT+7UQZqmGsMC8lZHnw0/xmaqRwB\nF7MdhKD3nMq1TJi2Gi6FrfGTWewnRHrDm7MzqJJYM1W9m5/fnAg0CIN9jd4x\nQfR4/csaeha2zqEhUuNgzJZRCFrd9FYfaxG9zrx13wGsz6j7D52F5SbYXFEX\nZWoX\r\n=OlRW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdKdasY+2HjidUFbdgOLSpBm33s2vFgcNrQlob6ulf+QIgOE8ldVK2N1M5UHBRiAlVeN1dQPMxhnuvmU2YLwNh+w4="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_10.1.0_1599106788748_0.7262607468441136"},"_hasShrinkwrap":false},"11.0.0-next.0":{"name":"@nguniversal/express-engine","version":"11.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.0.0-next.0","@angular/core":"^11.0.0-next.0","@angular/platform-server":"^11.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.0.0-next.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@11.0.0-next.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-jbnBH+NjItNpA4gOhfXVrOVUX4VtDVCezrGuYNBoHXdcj2AlPKoZ+BubvyqoT4UvPw7UyTuUB5yNVkcA1NUeDg==","shasum":"08f4ab6aab497b4e37291996da2365c03f7804c1","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.0.0-next.0.tgz","fileCount":45,"unpackedSize":173733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfURbLCRA9TVsSAnZWagAAjLQP/RJi0TvcP2nqiSPTWlN+\ncJ0JqEoL8mv0lmtueHlbeVNDlOop5fuzpV/9+upyD96oX7TpazHnY2hxggHv\nRqrs3n/5DpUgKVSgG+9Zn3EGz1r8Cz/o3Zam5T02NZ/b5Mik+dkXtqTgVyor\nUsv+SyAhvUU/E/3ik2p2YSkGF38B8/flhmpm6/1JvVfcszD4Nwbtj7/XHWtF\ncVgNHakf5HNEnXWvsRmZG+/1joM0P3WJw2G0uze75eDLmAEwL9IbAD/QKU36\nKuH+fxttn2PS0xqb2oHvgekLEcgZry8Vfq0KySvxoX8+j4HyxdlhqdD+yqu4\nKyKGNcOQEPdINsquK1iH22XzSqPJcHCURZZWrJ4ECJu1BvrTJNxqVCFKL+Lb\nx4rg3yBqfV1wpEMgxsbDsch1QIhZcVw0obz8DmldLVTTVA0Ra9ZgkdPh6MH8\nM0Unj775+GVT0KrBFCqRvZ9ttV1xmmVr9DzXduKhsDF367YpMnX7ZSpz9uVz\nVDe/N8Gmif6VvHnQrYIyGZcsV8ueCIwjRDG+YHWWnpiTdgOogZZtSpGFmsnq\nqdhQ9SPrWggXHlSKND7dLhpfCdw4uSjdv2vkFpheEdh3XXifUMFat1dnVXnR\nNzERAM//2CBqb/4qWeuugfPqMAHw0ONxfGYTZU2CYFh7ZXqnZHaVl2bzjvWa\nqxcp\r\n=ix4d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgdU6SPe6Sh2d5bQmkEev2he1/BSsTvUYKWn/O0/+RcQIgNMU9NpyTxursQcyIxt7BNberUsqLpvp3zPTAlGyKK3c="}]},"maintainers":[{"email":"devops+npm@angular.io","name":"angular"},{"email":"node-team-npm+wombot@google.com","name":"google-wombot"},{"email":"viks@google.com","name":"nguniversal"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.0.0-next.0_1599149768557_0.6101456869422446"},"_hasShrinkwrap":false},"11.0.0-next.1":{"name":"@nguniversal/express-engine","version":"11.0.0-next.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.0.0-next.3","@angular/core":"^11.0.0-next.3","@angular/platform-server":"^11.0.0-next.3","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.0.0-next.1","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@11.0.0-next.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Jon2IoHl+f3FAWb1B4GbahBxvdpHo2DrrIJWOJWoEE+P0mfbZkMDQjnTfmqD7o95aQpDUdtNxzbJeYvQh+pZUA==","shasum":"f55cd81457fd305a319abd621e3c899464e424e7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.0.0-next.1.tgz","fileCount":45,"unpackedSize":173993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbMBPCRA9TVsSAnZWagAANLIP/j9E2BXGnskjAx/wnbzo\nhCsOS+HvlL5xrtnueu9Q/TuRFdo1i42zVwmYpm3wPoN/9JTdvY9PF7lYWeR4\nOlPIDYNgHqrxCb2gnEKzFtUHE6IRVpr9iMFgWT/vMESx/PsxM+jOU+AfRwh4\nsg8yCaBAUZXXLHIMVOW0SKCWpnYRX9BO5AgqJKCuwm4mo5SMtflJ86XlZdL8\nD8CKjzs7k/g9BxubY9va7g8mc7NjNfwz3qwpZ/GbeuaTj4jkj+3ruqhqChGw\nnqD6JP9XJ148OPfuJjYCW6pfE7oE5xp3DIyjruZZEpzMt8EbCdIaxPo2XK9g\nZDJU0nRGg5DmcOjRmeFU+130UZiGZH2MVxBontPCBelQONkIO5iPrSPquaa9\n4CgeUzD8D3+nkhzhl7wGyOuYrzQ24FHgzxFAxVHYrgDx9hmEa3qSqNJ8ICSU\nSI4eiV2pP1WrDA8ywD+vZ8apOEHskLyspIhRSs7onLpemblhFkHQMUy+Yko8\ngAduW+jPiY2AmFpSpapGObgQQRnLMIQHsGA6M0cB8pXZZ73jpcudRgVH2nrp\nGgRLexLBbPYhR5b3qK0+NteMH7jDxFH0kWPBq6fxQm2mZ0bA2qYA2immdQcr\nrTde8ifdbGHZrFoKm3v8QbG42F7DmNytMZmDlDSNQ+tydKDA9K/NZG3bQ5O+\ny0IT\r\n=wzNU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJITDkKqxTVxfxpJtk+QEGxkczON0PGJPSrRwg1X/WVwIgIKuU+8lBy9gEkPQfzW/eOgmPF4X0FLuS238S/76pal0="}]},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.0.0-next.1_1600962639337_0.6703387195825454"},"_hasShrinkwrap":false},"11.0.0-next.2":{"name":"@nguniversal/express-engine","version":"11.0.0-next.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.0.0-rc.2","@angular/core":"^11.0.0-rc.2","@angular/platform-server":"^11.0.0-rc.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.0.0-next.2","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@11.0.0-next.2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-9x/qc0Gzua8lKdAkVTt5b0lN/k6X+QsqT9/3zGiO4XJlBOnAi534b9XlGvSOhkrdItiCEv1rwmbIeGH8L1QRRw==","shasum":"06b768ebc178b01e2404e498908dbd3cb2361dfe","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.0.0-next.2.tgz","fileCount":44,"unpackedSize":128283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpMyyCRA9TVsSAnZWagAASUsQAKEsZ+UP+SPO5q7WREt3\nMGxQMqdsA+xqF4SusGHx0pL0kgy0ltAUdFbY6EliPXPxo0Drff70+jhkrguc\nYcAHCBzXXKa+REj/xJ15yY4zUzLVbHvBcKIXgedaXiY9J2lJs3IW2HxeqYPe\nJoTKtVC1Ui13E9pBAahMNXEyqoTbUOWVuu6iczSh0Xj/ryEKUpwbiJP12LAi\n8LPk2OLb3kpMKE78wNQbFQ36F4EZNUDF/Vkv1Jouqcu6aVUn5PCHhOj0BSKH\nQN7f0OYPiOKMGpIRAszfK2KmGyGwUgjWeK4lyVJ3eMzkYZPqqQtFb6bEZSPI\n+NxOJiXuP3wtjNBCq5nKJqJ/pphqwTaXJwRc7w4cluKsTHJNq1IkDi2tfifw\nLOcEzeG3RTaxe9YJmJvLp/M7QPLEH3Z7tyDMz2IoRODpty33YpG8GQxuvrb4\n6uv6Fj0E3VX/eK03+hTA2i51X62iuk5L0o8m8olhLaj7TO5tIqHTpT1qSqIU\nOpEcXbt2VEjMLBrJQ52QTLvYyWvw/NhF9ShGStu59e0amxAz0eJDbi7T/9+G\nJHFP33ESmDtjAFh3WW+rcw0jK5AOvQ/XgxWBeUI1I8Mf6JJ7+F6t3ShQAXbp\n9ZnVZq1yKpgA6duEjSk4Wr7FmI4gzGi5WiIk0kAUuegLfV9wgYCM+jYt4U7o\nt3aD\r\n=CpII\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDq8gkVGl3SbzeFogn2aYIokNycQ3mQwomiAYdj9kOopAiEA3UXWDEp5BeaejxIs20qt/TmORrcJ/uAvnKZMYi5pzpY="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.0.0-next.2_1604635825918_0.03357614830620448"},"_hasShrinkwrap":false},"11.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"11.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.0.0-rc.3","@angular/core":"^11.0.0-rc.3","@angular/platform-server":"^11.0.0-rc.3","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.0.0-rc.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@11.0.0-rc.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-1hRPyP+jqjQd2sDjm5rfXdQg/hfEIgIDV/AU4NuWSsnQm3DgG4jMs6JA7wIatOOytP6aa5eaYsjKJAn+7o38HQ==","shasum":"fb202c3850964ac6185b26b0bf448df586a7197d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.0.0-rc.0.tgz","fileCount":44,"unpackedSize":128275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqhaaCRA9TVsSAnZWagAARI4P/A1KTtUZBp1IQyyeqACo\nXLi4Qa8VNHA23dlMKOgLvdwHr8oWe4jONCTCfPJ1cKBVJ+9lqXUlt3EsxKPw\nPNUbK05jKZi3VtaASfVdL2csCi5nFFtNOtbU/5kopnOvgzeAApOKGggIXpRu\nyhlluuxUu4IKf9JeBLbIY5FpEH3QiTL7ukUbeEFzAR/MXVGzp1qt6xyjWf47\ntoDwzZyiuJ0y0R9jGApOzUaLa8Yy3h0A6WHkXLuVo24OMCutOxw3TKExYBnu\nzx8n32+rNGRg1AcHBriajV3Gjtvcen5trmEJF4gcJTKvj8K+mAdhUD09Av9o\nxhQ5BGx3fENO9vhDwEo9biKRQ1jp5hhfv4cYvooHx9OR252wBu+Wht9rnzCU\nWBYptupKaH4F+qSDk9mlf1IwhMpFyLQMuXmRhEizTOFO7yWnZZGMrKzUJLNf\nU5Bud6ayuLc5g2NNJUkSzg7MhJtDX+fa/HdxA4lyZlRwTwPVezVcF6Kko3oD\niZfj7cv+ZuRrj8TMkuzVCzMgFpusgt5eh6B1rfjAbIFtFoodSPN3zCZcI715\n5G/mtjtBVwE3HH7JwDsGGea61danuA1OeHHCmoKH5HRFDKDB9FjwuvfqXe6/\nuBXXJa0PFu68xOn5usMYWxMVAWA1WbB6ebYrdwN9wDfX0y1zuA8lUBIYIty8\n1/oQ\r\n=a0U9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDq4GyoLUr/S+gsV/JwbAaxLfAEWaipGDAgIKRvC0lngwIgOkcOa49IdyDRcC2jDij+HOpEXXtA7ACY1rmfA8Ij2e8="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.0.0-rc.0_1604982425621_0.5064656580298377"},"_hasShrinkwrap":false},"11.0.0":{"name":"@nguniversal/express-engine","version":"11.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.0.0","@angular/core":"^11.0.0","@angular/platform-server":"^11.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.0.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-CUsXnFK/BIeyY/sKY8G03R0QyTxPWbilMcR9aX2TPguL7hPtLqz4Jq8kuL2qN1xBwChV5XvdEQ4xKSl+jTKfAQ==","shasum":"48450e199695faab79078a397e6bc9936a986fb4","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.0.0.tgz","fileCount":44,"unpackedSize":128240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrHYrCRA9TVsSAnZWagAAnYUP/RGKTtJ/qN5u/ozt4vL0\n8INJ7F1xLroE/Hel4c37HK5+AsbPsZLcqBj7+69Se7kdO4v8lW97qsE3tFNR\n3Kqu7TMjIJZQ/cChwYwHqzkpZT8tuQOfPtjRi3dPI1hQuc62T+m5LKtqLpQv\nL7W6mrwDnq7aBHTn4aVOnl54Pu46o4lHBSWIsQVfNVl5B5VBr1TZlAKognFe\n8EOoxV0ZjosvJ+DOE1kEc9e6cIitgb5zxk7u52mxcl85Lgrur40vGezVGKFE\neFGkU/iwmLQg5bLaGzlSiI876+30rgx2hWsuU4amq9XJvPsX0fLSx3CLKGEb\nmm69JsLMmRUMgjojFUg5sv3p7D3SbtJZxTUQN9e2SBSpS+2KSs/Vb2vNcpVz\n0gqaJ/Jqfnbo+4b7PfobfcX44UIM++EssVc9ngOJlP8k+t5elAQWcXLGZN2V\n2ut7naGRsXoh1pCHEg3Hgu/rfhijBhBoYxdf3fJhf4Ct098YcYkOr3M/Ov9k\nTaym8sY3ZAQr0ZPg4jz/rRc9hzZwztzror8sOrsixv7wtfrKzycSJ9N23i5O\nxVFiyFM/THPpvhTrSA+wzGHU+XsaCya7tS1Fmeh6jR5MMjpjp/S9zHU5yig7\nSj6Mop254a7hx17ACqvbsPIrgNofQS1syMGg0TJZrr61jjfAb/ieCWS2qFWE\nrMfn\r\n=CoRR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICcy4MM4oYuAWAtwivTArTHBSHz/sASwM/BCmxNmGtFjAiAbo77p5xQndcLHFvEtpHMiNggn1AWZToYsqakxRZ4tLA=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.0.0_1605137963056_0.5745596749399089"},"_hasShrinkwrap":false},"11.0.1":{"name":"@nguniversal/express-engine","version":"11.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.0.3","@angular/core":"^11.0.3","@angular/platform-server":"^11.0.3","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.0.1","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.0.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-foctmYXdu/hcmx4ivbg9Zy46f02PGMMdtXnmVGdopwjRkLtA6/QdavBGlkJRS3zvYHyPdmIOANlQGjfFtFOmgQ==","shasum":"ab31e3ec1f264d759d7043f8224ff7d00d080697","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.0.1.tgz","fileCount":44,"unpackedSize":128240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyYeCCRA9TVsSAnZWagAAzZcP/2VPSH77aBEzGiU8QDKU\nEjrVCBdoMmz3eNvOFpiXt73CeshtOEQxC6401m//guEDhUv+C8vmQKAQBgYU\nTL2G/QOK0uyr95Wo0wfaEvbYG4JtFTjbmEKnicPfqtJly77F4aWEV+HHqP9a\nxEYVR9XpfuxIrxNxVS6zSz/wVAKW32ojhKRbavP8ss011AfVA98XNQjYwzIV\nxG0FOkNXfmPWJOU2eanu56u7tvod5zJDPSR5iOIbgJpBxdQ92R5787j+gqUM\ndn8X+OXWD42eF4O8PBelSQm8xl43l58B8O45+ahcq1XePS+QnAO57mvjNRpb\nE2ceHYiewkoYF5cep8V55WXDjwqRVI/KyTPy6PL4363qr9mbS35DahRiNTu2\nLRYTwhBVn3kK6UruMG22oTqZ8H5lflInH+soYxz+wswhEMDMNtr6kbh6IdJf\nKheVL82g9QiGVFB6fgPBmA/dxc7P2VD7hE5jiMXjJ9FVOX8SVSGw5Vi6nb6O\nfldmnik2Mfr5YneWWy9CXTb4XAgMDPFnWsjDHj1a5PyKQV0D1XSk8cIK6pNp\nZHG/7Dpk6TOFMwujAf0If8HXqugOxLV4A3Jea/PLKLzhiWJ5/KqRNc8wwXUc\nLo/olj19zXglpp6vdtvjMYZXpDtHMBhenLZ00bw5aCXCZ51jcV+djpBzjacu\nX9aH\r\n=yya0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA91ZBXKPKwnDtF+Qi6b9LCBVIAGCzru8yk2y4uza887AiByrdOWmyRZcH9wuZgbbYvug+r0S/Ntb9PFZqqqOmGdBQ=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.0.1_1607042945955_0.2479711566576479"},"_hasShrinkwrap":false},"11.1.0-next.0":{"name":"@nguniversal/express-engine","version":"11.1.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.1.0-next.2","@angular/core":"^11.1.0-next.2","@angular/platform-server":"^11.1.0-next.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.1.0-next.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@11.1.0-next.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Pvq4iUinB86HLasvZ6ozUUygMpg1KePjZlBwXjGYKWKZQb/vXQZzPAtrjBj9QTzcCCyiOcuhUufqPr2WCjLPRA==","shasum":"8e3be17345715162d0655b1cd85184b6db831dc7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.1.0-next.0.tgz","fileCount":44,"unpackedSize":131704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf06XaCRA9TVsSAnZWagAA21AP/A5hHhA+S0rA+A0vtTXD\nwfe9Su9ll5v2TBKCZi3X172Q0rWooTxaAPunpzeKgMcm9vl3A3kjYvP9CyBX\nRU0G1r3t5cWGq6Y6zEpv91/pdWGWlKhasUXtPIO662najWEhdl2Bz7Trkhb2\nckWDMGGT99phGK2Z1o9+cDmVVJ241303lrgOKhMFm3GSpi3mX6dTfQIhSLdB\nqKZ139gji91waywrqx/TKGArzbthVv0Br/BiDp3Zg6+gWP08wbY8UJzT9oLD\nA8ACtiOQuR76Tu2YNAwKh0iRXQh2tJQxDyfKqNY0KLhIukhLOXaQ8gWT6CCP\n3Cau/S3cwAEh0aQSDTqc/SvRifVoAzgNQc+pMM9ZL4d1X3CIqi6n3f49FuTF\nwkKrs5ZsBJIiEeT1UIEzUf1c4PonuIqjMjwgwRdXTLSdnLluWxXFYCWOM7HS\nlpKS1nnNnHY+IJ5NY2ldN21ednm6w0ZNM88uR1nkUcnbZ9MX4mQT+xlIjAir\n4Mq//UmtFWTLfuAy+WvBM2BrpuQyKjj0f1RD41Vs8cle3WbCzB6+GvRiIlxb\nBke1Cba1FH0dgk3NbSu5DCPwqTCKZcpFeVYzjlPGvFg/UJ7knvII/S4lNKNK\nam+ufZZXMfcyLyH3LIvytdiz4LY6Dc98pPA2wArDlXPMmfAeG0s3O5UnlncD\nr3qH\r\n=Q912\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmmBZxAakCbS/8VfC8/eR3w74kPZig007Bk1BNVQlDUgIgSoM6iFdg7vHEBXqYqgq0HdGwGbM0fkHc4sce/tb4ptY="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.1.0-next.0_1607706074393_0.11547311592812126"},"_hasShrinkwrap":false},"11.1.0":{"name":"@nguniversal/express-engine","version":"11.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.1.0","@angular/core":"^11.1.0","@angular/platform-server":"^11.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.1.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-7VQgnDD0GB7cgsdhALuQ9wAXdCp234plosRu+eLVw/tsGKyqDhTOvMkCI5YAWNgT69m4Bopns4/NNT1j3cdfHQ==","shasum":"b914c658f0889426c903202892afe6ce2737c962","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.1.0.tgz","fileCount":44,"unpackedSize":133159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCLv7CRA9TVsSAnZWagAAqC8QAITTzQSQLpW+SeMQ/R9p\nPggT53/WbwE/hkA6biPg2Uev9e0cGxK6/QlusaTNlwuQDIm57bU1Vi/234bN\nVkD/OHA5xWcWxmRvcVXmcL6zOX6cIcuIHI6D4JetbfFHSaXe+3HvWbh1O6vx\ngCoG85hI5iJGjEclp6Omm2X/J9P9ZdKuOfiT5W/mJAZ5DzckzqVduFVhi2XR\nbBk08MBRX79OooABdNGjJxPuXLEqmTBKiqloXmI+2ApLuI4v+yZ/JnA+XjF8\nz5QMx8J9QoX3borAyHByivtkRLbaIwoD7dhklTSMcOzeteuZVMdWPF4bqP4a\nzBzO44N6uWzvPNN64qPx+ZyxFeZoHF8Qbp0BVKorDQDHxNUi2CRiiVwB9YxZ\nWDnNmd1+K6+k2n+rh1nLVqQXj0YiKAKp8DM0MkKJJ0uhsXRiLEcUUjoAh9di\nkb4r9dbDd88AWBo20/mTNwUeXSG8Mc1OGexkVfPx8wOHwJBFFyiVUcwupXHY\n9m+jtc7hLqwIkGeC9KNUbhuq0fskpg2b5cHG80nFxktXlFiJI6pbh9Uxcyfe\nTApq04/BNWQiHKMfPsTMMfulldmknjZ8YkbpDCLdHVCqmdjwPcs8w3mdfgYv\nQtwAubdP9+CWucP7x6wWqFNivbNy6VonoUDiPFjPMHoBo/pfuPjPXWsE5hGZ\n7o2Z\r\n=P4hJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVIjWEwcXCXQBBZS0xTDnQ2j4hHJqO0a/wYCT/UgSDoAiEA3BOyQ2bGF/j/U/leuLeilrvrgslMU3Ri3Tv/FTUH9eA="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.1.0_1611185147070_0.9377225054552649"},"_hasShrinkwrap":false},"11.1.1":{"name":"@nguniversal/express-engine","version":"11.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.1.1","@angular/core":"^11.1.1","@angular/platform-server":"^11.1.1","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.1.1","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.1.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-e/QAjGVuiHugTfRSIWntc2Zr61iMz8yy3WcrmbMr6I90faULuUpeImHmoO+cLOic5a6laYXmdxZh838hdWiugQ==","shasum":"3fa52703897b78b121e8515b435d1fbf417dbebf","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.1.1.tgz","fileCount":44,"unpackedSize":133159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgExIvCRA9TVsSAnZWagAA+MUQAKQAQI1Ssyp9WOppOd1k\nQQiWEXq/mEsh4c1u9UwoLngAGBiJx/3csyTXtNxeln8NBDJJpp/2WIfPqlIn\nSN0rRtCF1oMZaf2wruxCXhUJjV9bf6Ih+/xF+cAqs4nRueH7TqAHRk5ZHRoQ\nhnD0y0FoRwF8cIA28UMSs0H/BSgixnHGo/Fcb2eCoPCIiNml7Fu81Ni/EXti\nxYmcsma131tS1y6q410Bar5Glw7sA6uXxFf3X/+70LtpjUdokcLRPE9XwtQF\n3RrIsKUF0TjCdMI8SyFCM07oYLpN6pXa5Z/gwEgPcSvj8HmQPBzMnMPIrIzZ\n7tTjd0cnJyM65Q8jkdc+RjNTR1lv6CObxZAMq6cp8mpLr71VW5MltqTgpav0\nauDHy8UAgwdv5hVCojNZpHfoB9bVHlBKkldkzU8Tf/ITd7c4IsWS/CdGRhDh\ndGEaHMdGyUFGR++WDdNuN3cON3WN+qUzsZCfWymattlt7t9ZlorzsFtCNcR5\nY/0YIByCDydd1GAABckgHc23NdxbyigxHJzNxFtwc6pRvMe3B87OyMNNoutH\nmbtCqCV8VyjwkJyqK7l+Q0I52dS2Xi5qPneGMR9q81Pw1sGcaco9c+gNjfBt\nQHJfr2w081J9jks8w6aMSy3CnzF9lR1YnX0THi+zYBEd5wMlGcOX9b9/X7PX\ndmdm\r\n=Tbq1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrs1nT8qhG+2El4KlW+nZDkkftoBX97cTp6zaKrEdEQQIgS7tzFo+0ZD29MuoXKW80YjW/o8zLiSBwYl/NPRGBXvk="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.1.1_1611862575296_0.10373173480749132"},"_hasShrinkwrap":false},"11.1.2":{"name":"@nguniversal/express-engine","version":"11.1.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.1.2","@angular/core":"^11.1.2","@angular/platform-server":"^11.1.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.1.2","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.1.2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-3ldtjjLu6ltLtemWkZmqqiH70Ol9XsB/sjQcwoKtALbdbi3xfgqVwurqi+IS/xeRoMRgXDv8uxfEVqO+X76tRQ==","shasum":"ce4f35febe441494252c4c44b5c1766869072ba9","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.1.2.tgz","fileCount":44,"unpackedSize":133159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHX3TCRA9TVsSAnZWagAAvEUP/0Lb2OscELz6ulGZI1Xs\ndzBbSu6PVG1OcidvBvnKYHCTfoGVWwipTpdGNp6OpTdtreAG3tnBDB2m7R+W\nveufbPRXoKRG2lPQYVXevkQMxaF/MREeTHq+R3WnS3bKqrLsN0YLmMEAJtiN\nqh+I+M6cRf/QIizDNVhPgL6Du9d+uySmyAPrUgTdj1ryKBxzWR0vAP3SxTeg\nKtaysyLeIfCRByJ+Zf/GBm014AKHsWnQxdjnXBlpZFifZeq5UL3gasOAurbf\nAu383z2lCASnuysMY+RORTx/f/2nHPDtBu06uIHkC/56OCV9GC8IrSorXOrw\nm9iLFv+K0/lRTUm6FGcHmU/I8H8cRQqKTZ1K2euU6RWWhd+CGIF9rUxv3pWM\nhrJqrK0aQD2QyGiaa1kMNZkgWNkiITIabNcXhExocfqyP0ARpWEHgxY97snt\nWWR2pcV3DOkaCo36I0ssjuFX8Yrjyupk6+SC/4WTU4wPT9v3opRrlE1kq/JE\nLwEo2ycZy6JnplEEOmbhcby2mSkwQZ//c1+OQvf0jOYMEOQQ5WunSC8dkMlu\nhR+UzxiMeN5WqpJvEAciSZsZMiddYr+Ioqs39v+VQVZOrvFMltlFsDeONk4G\nKF3ux8UE+P/7ZiahpcNr9riuihawuZ8VC4EN36HgM/U9ug/m5yrdQ69gsVcP\nFPml\r\n=z1JJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCy4gWhOqcu+QXjn7c1JdKfNuxR5zKEW0HDff/V5HylDwIhAPRHfj5KfPWhY7IT/zXHe6w39aeXU1TchUF389Dh/nyc"}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.1.2_1612545490737_0.4746973298783792"},"_hasShrinkwrap":false},"11.2.0":{"name":"@nguniversal/express-engine","version":"11.2.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.2.0","@angular/core":"^11.2.0","@angular/platform-server":"^11.2.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.2.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.2.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-cCV9nW/hPyG39qpZetwTB908hXiKYhBEjrb+GiXMyzCeya5IGWK1Ql29BSRH1/5+gVujLdeQt4wqytnkO7wJMg==","shasum":"93d65569074d27e67e75bc212151ea79a21db198","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.2.0.tgz","fileCount":44,"unpackedSize":133159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLBZ7CRA9TVsSAnZWagAA1EoQAJecgd5k+3UV4V/jS2d6\nogGcXQqwpb+oyNYhbZFH4RE1v2jHIhifI40nbV9tcxmSOf6jH/3mw+gs2vrR\nE87w6SQXZcu+RZxpVv8B/99jSinv9WtaHkxelT3MaGeKo6wiTitoDf1cYTMU\nKGLLsYo5HpGFLoP0BG5qFoE/wUsm4TTTg8qjY0MpKlP7z2Ec1tB8zz8HPXdA\nkdE2pVKmmhX9oDz5DnwQP/WNcOagEotMv6PmOLxxM/RgTAT5mk+NGeII9DWz\nZ60JXp0wF4v5w5zmrtmUYIcWjKyV69SdpdJQc5eSJROtcTo6as3g66Swh2+s\nKFrtASfwZ6swU5hnDi+jYMp2RmmsUaCZJrikFo7JJZFXoCW0oym/FzDR0fcH\nAnYOAEf9jremHy7fjtT7t3WpUuCeDku1iFOlfcNkLcsFA9Op6K3IE1/cVCnU\n8LO+F0tDD4CxhSPxo9spJOp/5VWEUmlLESZrnbsYsbzgwoLgCAD2A5Ws8181\nBSNdSxz8EtFqnsPbvcXuprDZdi4tUSasVOvd+VUgHy0p7m132fDIDJ4TqPUi\nSqwrYoTsuRTMDUG0kRnk+20ZgOB6X8uDyZXRd5in5NMerVYP6wobwI+Xhc91\nBkpHzO2hRCWV0JQLWMhe7A3bOs3d30NcAzLDMq1cvmlTgzUnafPwnAJor5CM\nAiAH\r\n=mQEX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7ullyUgxZPgzuLXyXgrW3vtIuK5FCQLAhwvsa70ctaAIgdxHHzmVCI02rpXuu2uBQ22oyR9qYOFADE+4bOL/T7Fk="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.2.0_1613502074863_0.7749132093336522"},"_hasShrinkwrap":false},"11.2.1":{"name":"@nguniversal/express-engine","version":"11.2.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=10.13.0"},"peerDependencies":{"@angular/common":"^11.2.4","@angular/core":"^11.2.4","@angular/platform-server":"^11.2.4","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"11.2.1","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@11.2.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Y2t4qkyeI5xaegZeI1fJDcMUvQ4AZbKxvEibahapEX5ixN7dxq+iB6xKnSIOG+WYaP3l4c6sExhlKo/oxNXMqA==","shasum":"015b2bc0b87b947195ee880221fb9789b5674f76","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-11.2.1.tgz","fileCount":44,"unpackedSize":133159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQB8ZCRA9TVsSAnZWagAAmsYP/1bCOvLf2pxm/ZBDRAbk\nyK6Vy5cAg3yWZjTJjvDJezjpacaqwgODfgbbHG9jwOlk26tkWNC6IMcXmC8u\ngNIsad5dWiiX/F3pIediuO2kRZInibnRNZwID36ZEbORUc3wDR/6OHk6zQ2R\npHQWWA6jpW6s9RDdaoSH+8gC9jKVNmg6lpo8t88SzIDvAoruav6OPkNjhbOV\nKd5EFkMbCk78qVw+aPegbFH27yqv3OHvqjghppWDos+thDsZguAf0pecXy47\ndQkVoo0+CJ0qd09hCx2nexRAVv3l2bhKAilDOtLr0jyaEYdFOohxFkvkCfMc\nnpRgja9wlspIhEgrkBJKsfnlnfHJC01PmcDccMIAExyWbPteEUNtxfJTm10J\n6nByszezlt/yERUuJHjuQOH+ctNzTQLKmp2IaCXdfKyRRCSuzce0/trKIreI\nm+P75ul9Dy3B7x49ub6wUpgnG4vskUkSpN2bg7pOrd6bynQnh5m0n6/wcQkU\nRhLs2MHQt657AmSjui+Re3utUz6U3Yw2AMEWGlcu22GavhTS+CH9B+n0Dg6F\nQK8nwq2Zs2Jj/KXcLTqkMjCI7M1zEMXD7wcjsnhJJYkhabno6XTA8u81eNSi\nf9gNkhWE2hCVJUF2BY08IHeAgDv0yATpgTofQLnMmBLZ/dLlMGjzq21v2CpD\niB1K\r\n=o8cH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENRk6bON2eOiHYttREraygPBp32CFL8qQtCX1+u5dQJAiBpgOZuQPDjotqeEdClTVjoV6t9ZtCO3Ikwd0IZzFrM0Q=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_11.2.1_1614815000602_0.954033932214164"},"_hasShrinkwrap":false},"12.0.0-next.0":{"name":"@nguniversal/express-engine","version":"12.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.0-next.3","@angular/core":"^12.0.0-next.3","@angular/platform-server":"^12.0.0-next.3","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.0-next.0","tslib":"^2.0.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@12.0.0-next.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-M3scsudpzeJVmtwQNVBOk/vAJJmVRfopq/I4TONF9tSm9l+NAd4wJIzDtyrlOvj+HcXNrO82gp20Nr4CQwQM3Q==","shasum":"a658c11b41abe3c91851e97ea6b14a98d57c1f74","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.0-next.0.tgz","fileCount":44,"unpackedSize":133208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQCDECRA9TVsSAnZWagAAQEYP/3vu5CkVdE4mDnzO1ibj\nAh5ID1PTOqipO+wCeiqHP0p9j9L4pIWrHTTu++KgYdxwDLW9VgGoiHMjphBy\nvXTZMO+OJuuuHZN83iNy3HTX5b6NqTCK+pJHq74tRzH2u9y1WO7+rC/U/j7A\ne+SCkM2+P/PhoDDqunvqwnjTodzV0cEXtVU+JItlXnmnNafps9FZHDtt49db\nbizratP4WzibAqOiyD6jvnHHktrX9cqpN4GBrLb4u5wu6Tv5fwqluiK9jTqR\nrnNNSDzB/gMzj0r8nNEY2Z2NKBu+mjFHLbUFqNKR5GCsiuOUuR8BOFVdX61S\n5eIlO5a9L8+S/qpzGyL+Kap0WIjGwaerulQjUKwdt7uJwWNz8WoAD+gFASq2\nFxTu8Y48Rme8D4XKhQ7Do7dPBOAiVPBXxwcK7n5vgk+HeLoML/b0DoH2jj2g\nD2Oki84DefZ5bSk71BPF0TUd0Pc3GHB/rDp4q6z8g9RZW1AswmQAuthQbMWH\nQsrhLatqbjhwOZFgcJQXxvVXFlYe1GZ9pxsDVErNeoznJsbTgvgiNdfVfIpm\nFeuYUbncH1YNwtMIKFRb8uEkzTF5vWabCPSjQUcLO7LINEhOrZfd+ViPMlnY\ntHE5/nhoyej1LYHwkx4A8BKrJdX27VnRAJ5CbZ3c8L2l0MRMmrkEuv97OOjt\n8cKk\r\n=GPaF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAz5uRlwOg45QUTbxCb0rGYzWSjpmOeZR7obFYs0p9zKAiEA1pOkQ9CgUOuMb5arbFCn+GgdMZ0Nu/iirdcuivUgPKA="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.0-next.0_1614815427831_0.47653062738774765"},"_hasShrinkwrap":false},"12.0.0-next.1":{"name":"@nguniversal/express-engine","version":"12.0.0-next.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.0-next.5","@angular/core":"^12.0.0-next.5","@angular/platform-server":"^12.0.0-next.5","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.0-next.1","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule // Give it a module to bootstrap\n}));\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine('html', ngExpressEngine({\n  bootstrap: ServerAppModule,\n  providers: [\n    ServerService\n  ]\n}));\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [\n      OtherServerService\n    ]\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res\n  }, (err: Error, html: string) => {\n    res.status(html ? 200 : 500).send(html || err.message);\n  });\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@12.0.0-next.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-+0lX/bLS0AR71VSobtwlRaa2rHS07f7djZdFtZTxJLi9Z6TazoZZ3ENeF+VcDzYAoH0TuLNVxpTDzL1lI9VTVg==","shasum":"2b567e9de06f922a0f3f846f66ccce1818cd34b8","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.0-next.1.tgz","fileCount":44,"unpackedSize":134007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWP+aCRA9TVsSAnZWagAAjwUP/1gk7IBSszv+nia6gLbz\nPQwjtXiEspw7fLBtY8IQzycF7ojnVcOIhiRiCUODwFSijGrH1w74n7PPIsWV\nfJt8w46knipizEM1bxkvyHcSjI79CLvwXRzSvPoRKdGfqqFvZi1VLsAXxZ5A\nahmgOemiDOHNkKfY8fFzaddfHcDigknqzVltIhDyiRX0hgxM5r1ddh0b4OMM\nxue7bDvi5GS22cbBwO2Vm7p+CMAXKzxPRIKV7Mr1G55ls9AqzZZAG5wZG7u6\njiW3Ukge5EeUF06xT3ut5IgAelO5VHi57uH3ssixOWaqCGP3/No7Aw7fMVNP\nbxLAMLN62owgOOdvbhV6KWU7UbAo0Lm9T63eM8RnQ4e6q+oVGfO8ZnIVlCiz\nD+ChsAiURCfiQnl1/kbnuVxahvQk6YrpoqqRNwubvZ2yPRm18t6SWnjeJdMW\nvaZ4PhJ6F91KIvzabM4A6yGX52zt7595Bm+4tasd5mImJAi1yPXJoQreHAOO\n8PwcbYjOctSKbSmX5HKQ4syU6I1QvjWJhHyCpTWwAnXr7jvqOcBkFBa0LwnV\ngZGrDsp4yIu6IV/PG2UgBt+lHa8KEZ8AigfPrfCZG69+C5vMmP95sTxKzL3p\nTKXRzAF7gIn19/tTsoBkyrvu9GHoRiHhdHd/vRXb6YTzB5j7fO/MiYH892YR\nOkfl\r\n=SToE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgaWJ3AOaf1n2wPlCfypIpU+yzRqCna4RDdt1Lyxw2OgIgU/Z0FClWdxG6vyYSbhnBSmeb/YjNFx7JSNVZSkEkNyI="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.0-next.1_1616445337632_0.28876310634325075"},"_hasShrinkwrap":false},"0.0.0-PLACEHOLDER":{"name":"@nguniversal/express-engine","version":"0.0.0-PLACEHOLDER","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.0-rc.1","@angular/core":"^12.0.0-rc.1","@angular/platform-server":"^12.0.0-rc.1","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"0.0.0-PLACEHOLDER","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@0.0.0-PLACEHOLDER","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-CB8Pyr+aQnZRy9AqVQ1FCiSWZy/bR6mwT3av4wqAQo79ot0dsx1pjFPaS0YqM1ZejCg3xPhzLkgBDCBMDBrPPw==","shasum":"ab14dcc45e13a52c68107fccbdeb8eceeb2c61e7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-0.0.0-PLACEHOLDER.tgz","fileCount":41,"unpackedSize":154559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkCmQCRA9TVsSAnZWagAAwfIP/1y9MENw6cgByzY4iqQ3\nMSbC6VFckABLJH2QkwNmRvt7QHxfvyqSVqYsYEMv8IA+C7m/SONkUT7Uibom\no7RXheePtPsu+ePdldOgbe6TAR/w/r+JuthguAdhCDInJ8+P0ncBDKma2xpm\njkaj0Gg8vl8jEaHyeV2mCj+a3S9yRISPE90fLaDTKS+opOfd8VftMy0h6UzB\n2CNk+2iNVf5KhaVkdZOelN7fmHwvXN+dBv9k2MdaRtT2Mt6mvBigKTKHGKM1\nhq2HEqwUj0NFio2t3NLimHq9YjpwoKjC4aDZRJqEsA/7O1ceJY0Erxq+g6iw\n1JKgktrg8qBmQ2ypPoFMZMkRKDkid0K36/EPTOaimYp8ok3hCu/T94jOSuur\nkv1th6HB0eo9kzWRcfO8BcuPkwrj18CMkN6AtaW6em8MvT8x8WGcs6I53daM\nPJAbObVCbHwSipKNTsiYDne063GE9L8zj7cIaBCGdHQgva6rOHm7PU0yNhCf\nEMfgaA8KxrgtVoD37s227GkvaUYboN/+pAXBpU1RAm4gv5/gWFmrAZOtkdfd\nJVNa8jtN0he6l1H3BdGYlPPZ+1fskyEOjX+lKzXM+YHwbEuHeendhH8sSBaq\nz/QkCzmQVaBECzq7OI5G9TABcqHHX587kJQd1rHspipyjvRQMu6qxJyCjJZJ\nHoC1\r\n=NObP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxaqPkWIMuWya4pgwzW78aTzGLmr2dGkvRDijpt0amEQIgORTGoT7jJq9HA3LHLGJsAUuaJHX+5SGFcu8qXWf29eQ="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_0.0.0-PLACEHOLDER_1620060560266_0.755460366965911"},"_hasShrinkwrap":false},"12.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"12.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.0-rc.1","@angular/core":"^12.0.0-rc.1","@angular/platform-server":"^12.0.0-rc.1","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.0-rc.0","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@12.0.0-rc.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-OewqtGb/Ev6aI5K/+mLmIdcZWaXd6biM3fsRUVNkgqC+O9JZLzUXPfq0jpSEc4F3zXp3vMYoHsb+6lnOon7QeA==","shasum":"f7fba8a7644792c8f6e4437dfea2561e50877bd8","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.0-rc.0.tgz","fileCount":41,"unpackedSize":154529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkFd7CRA9TVsSAnZWagAAjZ8P/0BPki2PKQtJG7xjnl9z\nuRIpzClXNVGA21nwGeuYdS2Ci+/JvGhPF6q45yBjVUWXDq5Qay90hGzCzgRD\notmVoQ9PY4f8HNcjRtlP1cfR6KuYpKf+tEwBIPNZSQWd2/N+45o2hSzJZ4t8\n+R98s/oKoytvC88SMjd5auJhCKtgtdZr13rkIHvwUZuhi8JICfc19v1xkz0j\nV0m/lXCiKINzcPoaP+R78dwTFvYdWVaNb3H2ponx4QXWKZGpZ1tH1bgSDGXH\nmzSe9fkfSS+/SHaz152XiMo/EOIrrda3pxyFal7PR2J0vBNkt4uVPwrePbr6\nuNXUZY9fRP0khWX5ZbmuQiFGhivjPxdAJHtGYft+90Y+ZLG9tfZ4i7C0/Sbp\nJv/JEgwH8ObXDdQQaddRawXubJke310oHwCaq0a8JTo3EiWz7yUgd2Fk6gf6\nnzJAtbpBo8ZEWT5pQ/aPqgf9SzH18dXsKitqv6xWxjr7RpHDuS1c/1AeEZNs\nzij+K2cbvKdQ6fvf81kvwwXpYXh30c1OJqyEqOX8vbhTOpgaTXcTO814Ko3d\nAbyOnhYOO5xTneKv487olmcBSJDF2JwEAtgYAKTBe8AaYsZ6eMyLDPydy9vX\nGxN78LtWfceteob3+OIF0vCn1tBoAz9DFROVO04n7/2jY0Uxt+FepJ23JeRj\nfB+Z\r\n=4YxF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCi+cB4e403Gbq/TO2rfYsPXNVwg8wPlz1Wk8TF4i53EwIhAO0HniwBHfnXO6hL1TLHvgI7pjv5hbSA8CQ4pu1udun7"}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.0-rc.0_1620072315257_0.4446831172384791"},"_hasShrinkwrap":false},"12.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"12.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.0-rc.2","@angular/core":"^12.0.0-rc.2","@angular/platform-server":"^12.0.0-rc.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.0-rc.1","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@12.0.0-rc.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-nbA40TzJ8hJeXGtjh5x0z07tsTLleXUPLOZazyFA7pShDLMZJnyYaK/rB5h0dH92u+EcoNbrEAu2hRrnhUYxqg==","shasum":"d33cab740eacce3815e38a98800fc6ac587e8f81","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.0-rc.1.tgz","fileCount":41,"unpackedSize":154220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglAA3CRA9TVsSAnZWagAAMmoP/AnzAwKP1yxRXllZllHh\nN2Rc8k8gNAN5JFCZsI6mGKFe4iYa0qbkf8lgR7ud5aMZn8GFDg6q3FeIUcIt\nG2VXZPdNQ1zXWcEo9kOaChV+dZ4iSn5kX7ukRjbcfikUJGZuexxiCKaGgwnq\nU8hss0M45RNsMNNJI7wz7V5hsU4iiWclD5g2jR0IzFp7yE9ScWl5oG1soOwr\nCpVw/Hdq7m1NnoQrpLikQCE72miZgtoVuOhvzjzguxQMl3AxYX0ZtRVYTctM\n4FCFs7lWrQcZWNADxWLkqbCKD3LSu8PXqbCGI5LsfxWjD4OL5uA6Q7UhV9XQ\nBwz2wgOXGHTCGFibUkjVJ3lSKQUgvUNBmxXRP3ArucOjgF37BStkosdw5KbG\nTYUNSM/6JzW1JadQZS4FX26+pZnRsopyADw6mh/UBtx+Ppu9fXkKfomENb71\nhdO3V9tSl3leHR2NqG0CCMV2YhWCV7yq9eDsdk5VRaQa7seg/tOZxH92GpKh\n/OT6TDvG/NPGHzyTuBmm7uQAusB1Li5HVifkeGX9pRE9pYVhKfcTA7dBGIQS\ndxKoNkcjprbaXUzEeWGBuzU9y93MbCRlEpFK1dQytH9XNh7yc6+2KvrMNH6e\n8jyI3FH94ls0angoevnfrvp2cRj+inXJTiwxxafomqOPyteEZwiVI6GzmVOo\nE2E6\r\n=XX0z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3l+CM3IpE+Eque/EDXjHDpIrfjWJlgz7lfB61dQeo8AiEAw/cekUWT7FPTiedHyzBXYWRlsk1WoEobvfuOfPGtuAQ="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.0-rc.1_1620312118790_0.28651523202123186"},"_hasShrinkwrap":false},"12.0.0":{"name":"@nguniversal/express-engine","version":"12.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.0","@angular/core":"^12.0.0","@angular/platform-server":"^12.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.0","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.0.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-J7CFKVXPkgB7iIefh0ndR7illRxEYiDyprE7x2uzP2wJuQMpyeGu2Uovfn3VSKch3Zm4QJ/U/b7B8yHnX4tpYA==","shasum":"745e2e4e71799fc1d4a35baf4a9705bd797f1119","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.0.tgz","fileCount":41,"unpackedSize":154180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnFzSCRA9TVsSAnZWagAA2YUQAKH4mtjRokJQ1Gaf3c5p\nTIQH3Mhz2+BZ/5iQuAMUmZ8cbTMlX+LU5KQ9mtkIFIXr0GBSavk6pOYfUVfc\nbBui4Uojb65NK2bfnGVNTjnuM4zlS9/2KxS/UY+Gyr6ryBq3O+6kXFxPnQZO\nwNo/meH9PpT+N8lGOzPuOoEFZAnjf0zxqh+CMqV7f6YM9+geyPTp37MazLeY\nF+t6GNWVzWYSPhQiGdQrnmaKmSetAijoLWjkwb6b5h6wUDkygJ3aVHH+ReJA\nolxAVNplm+vGCmXEitjQQ+4sm3pI35NgtaW2vujxB2/z/OC46tccQ8wJ8+U+\nREdn3WOqQMKGD3Vu8ADUfTZf2ho2rn1k3UdsM6o+P/P4RJyHGLcHcfxvFouI\nnB9vFp3BqBd/TU0UcpCtHdGi7pSDTxOwGe6DYWnPEESKWFDXMnZNs3N/wraE\n1UdzrGmOzxN7NfjKHfz+fDzW9OKG8IZDeErP/M/vo+qK1XtoA/+vUSiKh+XB\noD56welyZgCI30KNNOQN+mAyE12x++pJTMAEE7eURZH/+bB8moSVa42GndfG\n7bvU6zKrRsIarHNlrH1mOyl/f6doC6jaAwMoUyaZ5R2P7rqaiv1xMikgV6Ph\nQZb4++KDVljfbmouUUzPfNOqj1JY/Y2wNl7kKVJ5RLH70PjXF8QOY0Myabox\neRiM\r\n=rsdw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEWOs7b+UTzUowQ+9RbRCkKkL4xDxJQ6uCKPm0gHuRdgAiBORbcvuAetq3KH4mBKDBWTKGWm2BgoJEg35/ZZa4O5tw=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.0_1620860114282_0.38989652052753243"},"_hasShrinkwrap":false},"12.0.1":{"name":"@nguniversal/express-engine","version":"12.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.2","@angular/core":"^12.0.2","@angular/platform-server":"^12.0.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.1","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"migrations":"./schematics/migrations/migration-collection.json","packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.0.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-EiMbWFt8Eywzqx/lO7L/yVM+GEniUtxxGGGMUzyQOFDa6KKDwp0z/2lK5RR6T0IVeQfT+GbNaFJSRmIMNQCBZg==","shasum":"407960c4d281a801a0368346000091a5b7a3a59e","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.1.tgz","fileCount":41,"unpackedSize":154549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsBKvCRA9TVsSAnZWagAABUEP/RBDBxxWBcvEFdgcSF8m\nV2x5s0cUP82F+SDzfOlfr2unxOSIsGLgAR6tIV7XRHbh/mHAcC4oFpivNPv8\nfTDmdFaP2JQeWzVOtKIu9dnVucouxirNP86FCwHM4v62l2tmtq8BQbdtQCLz\nT5L72QxDMB+AyVJVsYyJQ9lv1SGRGDL+LuBpwN6KVulIDIMNBUtRdGZ1T84X\ngKIAySUQ8Um/SMPc9+t6ITsmFh7z0L7ZB04ePcjs37JH9NU8+S5ccU1uwWRC\nAKWf7/oWIKKbiD4GyOj1kX6pNq9S5gIC76aiviY5/h1C5VDKsP3bemy23hC/\nqmmqqsql+gaNj4zgvhXhyYRptuClp4zxG+BnMvUxZu9sEFfufrUZG4VeR3QG\nPvD3UMbhaWZTXoHTeeSgzutGFkccJuPJMotDRH2ckGB5fgdaYC3gYZ0gwBda\nPi4XYx0vlm2dh4If8hCkToocctG5a2w2ZC60eSxdXtiDMPNYlulmitP6RuIe\nb3BjnUujOunLqwF+1n4F0uFj8NSjlHmzMeAK6dMOPkjH5LafODPEl+IbGo01\n3IHmzVQ+FpENoSIOijoluxW/iODFfpAIjUgyF7hOfl20o6LIPYwcwd8O/Wbj\ny6kGAf5B45YMQ910l5vxEbOm0pO/1HASXOBKFx5cvCL9/eqW1fATm2jmeuzU\ncB3q\r\n=C0Cs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSmYnu/r9kBIBZOMr7UQ6QA75btUIVyOPFYoV3JAzc2QIgZ09JZsAr0NprzoUWR6+V0/oszMzcxsh4RX2ZoIjPJCg="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.1_1622151855002_0.8346644436016197"},"_hasShrinkwrap":false},"12.1.0-next.0":{"name":"@nguniversal/express-engine","version":"12.1.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.1.0-next.5","@angular/core":"^12.1.0-next.5","@angular/platform-server":"^12.1.0-next.5","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.1.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport * as express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@12.1.0-next.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-ZddvxD6wJ/FU9+Ry07f3ni3QukuXmCHbXvSvBLHBycvyw/Glqosxil3J4xBYC376+xwmbwkC9h9f52NOjSidvg==","shasum":"1e2930e116fca0d170f274ee05c5dcdf7de1ca1e","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.1.0-next.0.tgz","fileCount":46,"unpackedSize":211732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx4J3CRA9TVsSAnZWagAA/mgP/jOJTPakdDz5uWFOUEiy\nOF/QsSit9YhTdWjRIFak3hBNG5nTKiJcghmFuZUGvzj5cGCVkNIGxyzTLr/+\nghyd4lZ4Z+cguCvwA4W31GiRkrmF4TLoEXuiUkw4D6Eauu4zoaUfJoaMmbRM\nI1kVR1svyCFW+pJZVUlHMN0aoPrQQvD2STAYnkVZJiVSIEKO+y0mSRN9zmCY\n5w+EHcxrj0rU9weMr0f7oxXpGWhf6h4XizTk3nu5zhwaPx5IdQBkEuWjNsf7\nUulPXfTxytqYrE37zyC2cady49ZRAEgyeWDYJwqelwoTG3fssSQzTMfOapik\nzfyZp7dURIa3n0cCxtXGVd0IqkghAp4H7tw2dtMh2Ft5sBhqssEHTVM353BL\ntYOEjNzJm/N1bZJ5Llt5NHY/4R2Y4YrXAn70jMDHsSidRGea1hLHzA1MpWzj\nEKvATWiIWN1zV+3OOctxxAQ7g9vuUTtsxg4VZh3JnfzN2R6iH58OFh5gxvJN\nlTVpbopzXzRflfoAcswfDXdfKLl7aeUtbYm4+DKxSqB0kkVh4gmq+56Cv6z/\nqN0tnDh5m36Usa98JsP/Fz+/j3BrjMJGQz29SgR+ah5g5TB5FAO02kIVf1Jw\nfOmMHJ3YrYC/Px3Xha8vcdZnk83cqJs2g76uiGySjK7Bssc0hlYoqVM1GW4f\nFR1m\r\n=gOps\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7IJHO0oa4MrPst0YosOOzAHMSlmB19FWKzaXviTsGrQIgJVkvyMNt3mHujAIS4O1nkpm4jt7VtoiuDqSq5RuY2u0="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.1.0-next.0_1623687798869_0.7060329157537923"},"_hasShrinkwrap":false},"12.0.2":{"name":"@nguniversal/express-engine","version":"12.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.0.2","@angular/core":"^12.0.2","@angular/platform-server":"^12.0.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.0.2","tslib":"^2.1.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.0.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-oOw/Uu6ivtn7DO5wVn7WAsqRGYQ0xxgLmMmHXYoOvB9vvWUTjudyMo7XyXAjsVo3wxJ5PW57PEEGEK0lpBzcPQ==","shasum":"3a598c46eab049a834827b0e362084a6e3423ad7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.0.2.tgz","fileCount":41,"unpackedSize":154478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx4TDCRA9TVsSAnZWagAAjiIQAIQWFGWszIft7Z2pSxwn\nIeV4RbuRSz59wQb5NNvP752nRRNxOStkXCBVqoEPIbZirL3smdtaw5CAeteb\n14cwPlyAXN9OtVGtKqUougnXMS9KKJUzAYBKnyb/KgeoD5iBQBxiCmL+kJCk\ne/0aSIOoTF58vlIcfTxTiUX8fHUDVSVi7BjInhTyLCGT/BDdKLZQkXoIH0fX\nUyxOUp//0XYDXmhHTCzGv6kGiv9jFZUjrRqZ60akHycwBLBQy8KeiBOIiFAp\n7CRQul4jFg//kzeOeoG9fTz3IQaeCHuygoPCV8tfbHbsXokiQsIkYeGgIO5V\nzLuHqv7QQhyyBBSfm5ZpG5iLYqnpmkMxRAK9OHgLD30CqiT7xSY4GRqFG3lJ\nD4r2IS93XurEc9bi0Jef4QkDdTvVk630ihs8WwZSQBhQvJczr9ibV+/v9uFA\n4KZejL5d2UqWF8fYNjx1pU5fi3ucpzevi54UUgMAgCnQDHAOVVCxodEK+DJB\nekt8zyEylCeyZJfhf+qnfF/quAkMr6nDFHr6lWl/iV28uNkV3U+wEbSZHc25\nXNlcAMpelT7oaMkuxtxnyMBQ6x7SbGDD4ODhuO4jsR/8aTLoXSyOFymqjhwV\npRiIqmTKxDxbll5iapFOAV5TTOmAlYscyuu94tkgk1CQPHgiz+thvWJKBWhH\ntylO\r\n=V4C6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcg1+8U8/unf282X135BFG72NbRFzr1jRDUtRqwG/CqAiEA/Xw27cLvVd0WJTg7b1XsFClnTZB1l+1pFURS7fuO7qg="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.0.2_1623688387659_0.4931176289510897"},"_hasShrinkwrap":false},"12.1.0":{"name":"@nguniversal/express-engine","version":"12.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.1.0","@angular/core":"^12.1.0","@angular/platform-server":"^12.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.1.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.1.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-rgJ+ZlToX2wC7u8H5kIlT0lL3HNE7Awdazoc0HbeVV9xlCKBye29ndTAON6JZEn+8tIVAN0sZioziBZED/Yrvg==","shasum":"b3457e57b23232541b018cc073454a0c5b944733","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.1.0.tgz","fileCount":46,"unpackedSize":211662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1iAlCRA9TVsSAnZWagAAlzEP/RElFYB3uuYssWTlDeNb\n/4LOHA9o/rVkjkl5uROmQXELLC1YimURbxvWqUCacC5hgAvM1gmG1bSsFQvf\n4o7+MyO+WU5AaSs7MjOkxee4DiokOUTT3oAYIgkeHRQWkQQcqvxzD7avNmCR\nEiLcsipIVA75fItpjV7UMZ4QB8IF688MfJDmJ16c5CpfqQxV9/WZz7TIA4sg\nW0wTb1+KbXmSDMqo/KVmrZ9BtyUrQYHpKFCJT/J3zsW7neZ0yh5CJSBiwcmt\nUfzPa22PCZUm8docsdFWp+XliyFGzpnJJC122fIZcgORcBsgEZ5OHEtMGDdN\nZ/wZi7WSBOoSiftXR1tKDEC71NKm9gNGRteLtmsUZvI9+qUYlLk9YESlwVf2\nl4isfWTdzpfl2HO4mJ8a2FQGYe7xgEXdJ33Fhp5hwiV8EcVao1DGqtemvdvw\ndjFLMDZKYbMJ1vxImJ/js3ZP7Vb2uWStGedXRDzAcCcuo1tI0XB3jlnXnP3u\nQXrOwxSMq8E3A1MdRdiFBkCa2mXYXa82N3lI3jG2Sn+pnCSCG1VXb/RuPirm\nQWYtUQ7+aUdXJ1mEki6b2c/KdX9uOw4HweDJr7c6Wi9egCoBRpp4P3DlzZVq\nzZG18li54eGk4Egv5BMHbzUbLgE/hqoRwhOlXqpkIx7+OWrCTuIKPLb9U46E\nOExm\r\n=tWuL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBry8YYArbdR9liCrISyxzOlfrpOv6/uQfPwkltRec7ZAiEAwDt9tf/QEdsHOZok23QSqdnOlHrxZBOFulBQ6GiyQso="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.1.0_1624645669388_0.4369605126547431"},"_hasShrinkwrap":false},"12.1.1":{"name":"@nguniversal/express-engine","version":"12.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.2.7","@angular/core":"^12.2.7","@angular/platform-server":"^12.2.7","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.1.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.1.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-FsSArF2XLBDLDmC9xDg6QrYusaL8CnA8QMKnI8BrzTbk88rf5ql4zhJZIuJwBqU0mkn5k9VIzNFaZDmG6wry9A==","shasum":"8a96e2bc6a5f3ec357880967f6a423bb7286364d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.1.1.tgz","fileCount":46,"unpackedSize":211724,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICSJCK67gxl4xQXvHsqQRwuUTSjRQ9hPsi6FMQByZkJ0AiBrwaezYTS6eDl9gVeEzmJQVgHtjPuIxfUAcmQSE4xA0w=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.1.1_1633027541411_0.3042887500205391"},"_hasShrinkwrap":false},"13.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"13.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || ^16.10.0"},"peerDependencies":{"@angular/common":"^13.0.0-rc.0","@angular/core":"^13.0.0-rc.0","@angular/platform-server":"^13.0.0-rc.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.0.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@13.0.0-rc.0","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-+OAWpfl5MGV5+wU+/MCqsI4JgTIPhoqVbujMTMRbHZkEINRYaM47hYY2YimRPozbcopJ4oGICrjVbqlMkiUsXg==","shasum":"9f7dd4fec46fdec497e6ef55f13ddb171fccd872","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.0.0-rc.0.tgz","fileCount":40,"unpackedSize":162698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDSsQfHBDBL+kBaABynD8tRR7i/oM09Cpjw8H+9uBFqFAiEAx9Zj9SilKaU9eIoFUrt+TDAOS3/06AqTE8eB2oluxHk="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.0.0-rc.0_1634236348805_0.534792144466099"},"_hasShrinkwrap":false},"13.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"13.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || ^16.10.0"},"peerDependencies":{"@angular/common":"^13.0.0-rc.1","@angular/core":"^13.0.0-rc.1","@angular/platform-server":"^13.0.0-rc.1","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.0.0-rc.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@13.0.0-rc.1","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-T5VGpLCEA1kWWBmAPlEAbf4EeRW3W948S9kWjf0OYgAmiau2L72Z56o1CeWxlHgDpQL5PEkI1Hx+fXWmQ/bskA==","shasum":"9b783078e16e93cb157c59bddd9dd4f02752dd51","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.0.0-rc.1.tgz","fileCount":40,"unpackedSize":162698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDjxqpuA73TupSUCFgbp87ZoFAPeTJVWALAfVphjdNcTAiEAqzRp24UJbFXDzkzyhjU7FIFvCH+I408Ss6MqUaSH1oc="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.0.0-rc.1_1634779952360_0.9226397128888315"},"_hasShrinkwrap":false},"12.1.2":{"name":"@nguniversal/express-engine","version":"12.1.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.2.11","@angular/core":"^12.2.11","@angular/platform-server":"^12.2.11","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.1.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.1.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-CJadc4IL9q1O1JmGSM4+K+ZNarjZOSsyPY6K/V3xCiEyixjflGbMBCYT4rSNUwaSNIW1S1d7Szd1bMe7if7YGw==","shasum":"b0648004cd4038336454ef5a901362dd702bf402","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.1.2.tgz","fileCount":46,"unpackedSize":211727,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiSNfO5nD1SxNVhlte34DZ8cP/FGCWneyCqW6IIgyrCAIhAPfcq3lZ6uqFhHpsFHz2fbwAa6csivMSaynErxoBFlg+"}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.1.2_1634839012685_0.5558819293089639"},"_hasShrinkwrap":false},"13.0.0-rc.2":{"name":"@nguniversal/express-engine","version":"13.0.0-rc.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || ^16.10.0"},"peerDependencies":{"@angular/common":"^13.0.0-rc.2","@angular/core":"^13.0.0-rc.2","@angular/platform-server":"^13.0.0-rc.2","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.0.0-rc.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@13.0.0-rc.2","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-dRUaF1VF1z7Gy9IZQNZD36Qv8+DkWeBARgWR9+FpVnCzKX0HVhYanEgE53XmpWxZ9b6Y6hlO1CAhAUe1bd1syQ==","shasum":"35d1e5317868dd90a6bebbf46800508078805845","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.0.0-rc.2.tgz","fileCount":40,"unpackedSize":162701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFwheqFgDyUPgNtqeKAUBlx+GIKowNYfBGbWBqSazIxMAiAVaZJO2371EBTd9HaQQuQBmjhzg9/0+ZaoXr4vJk0yPw=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.0.0-rc.2_1635386579194_0.9737289778587384"},"_hasShrinkwrap":false},"12.1.3":{"name":"@nguniversal/express-engine","version":"12.1.3","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":">=12.13.0"},"peerDependencies":{"@angular/common":"^12.2.12","@angular/core":"^12.2.12","@angular/platform-server":"^12.2.12","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"12.1.3","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","main":"./bundles/express-engine.umd.js","fesm2015":"./fesm2015/express-engine.js","esm2015":"./esm2015/express-engine.js","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.js","es2015":"./fesm2015/express-engine.js","_id":"@nguniversal/express-engine@12.1.3","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-iu/7Al3NjwdwJw3ALyW9n7MzAQ75/Ca/cd2xWi7rzgvev2pgakZfvn2/EbB8oFI6xOSvA2irA29BeobkR4crlw==","shasum":"c8813e21a43465addc30da2abccc7a8d67138215","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-12.1.3.tgz","fileCount":46,"unpackedSize":211730,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYIUpCgQMBu3F5PP/2IBLoR4meJA5fWoPnUsIAKZ9WKwIgHK13AMmrr0GPJtnXcyYiF7XgD7yNsbMjcJuSoE0a+sY="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_12.1.3_1635386952346_0.8937881790071038"},"_hasShrinkwrap":false},"13.0.0":{"name":"@nguniversal/express-engine","version":"13.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.0.0","@angular/core":"^13.0.0","@angular/platform-server":"^13.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.0.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"_id":"@nguniversal/express-engine@13.0.0","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-Lr/c/RBM8BsjCq7UheT2iBCIpbRh8eBo7ED2mO2Z7SxqxtW1Ml6Emn8PrfcMSGMqLLY01tNyXGxVEO4p8dNgKg==","shasum":"0b051fcf1c432437ff60146b1adef5c44ffdc0c8","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.0.0.tgz","fileCount":40,"unpackedSize":162652,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPSOtsKlFI+4p21DZbf8eW65rlW4ss+ai8J+vV7zszRAIgOGrE1ncfMBbdOAzkVqq+K4rfWUHQyL/kpG/tP6Pqg4Q="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.0.0_1635968371040_0.5312123199850527"},"_hasShrinkwrap":false},"13.1.0-next.0":{"name":"@nguniversal/express-engine","version":"13.1.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.1.0-next.0","@angular/core":"^13.1.0-next.0","@angular/platform-server":"^13.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.1.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@13.1.0-next.0","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-2CrH0mqgds5dNVFkHR5RXGRaYEjzbK4L/UiCItpSFDicTD+yiL0jWYlH9k5hQkKq4nogU2aX5UJ+WyIUvWqzpQ==","shasum":"d4770321f54b91a106c9bc4713981b005ee7d278","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.0-next.0.tgz","fileCount":40,"unpackedSize":162722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxbM9sBpzlRwPhHsCn3sLrt7QCOwI9Sl/XUi3UAUoreQIgfvfsonVPtHymzITd9ekhJXcK9FS1UvfO6b+WM+QFLmo="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.1.0-next.0_1635980966596_0.8608620572369183"},"_hasShrinkwrap":false},"13.0.1":{"name":"@nguniversal/express-engine","version":"13.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.0.1","@angular/core":"^13.0.1","@angular/platform-server":"^13.0.1","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.0.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"_id":"@nguniversal/express-engine@13.0.1","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-af2hzfg+m+VGsXqNFFJ+He2Q8LplsuxvhlSRx04zqoC1jqf15Miz2UW6pHlHya4fDyU8Q6gSNWCqcApNLVkeJA==","shasum":"7ff3d826f38515caba892ce77fb026ec71b417f2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.0.1.tgz","fileCount":40,"unpackedSize":162696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2TPMCRA9TVsSAnZWagAAKrIP+QGEz5Iaww1peAMwoe56\no38F6nEXG+YlREV1dTIXUmxq2PlQZNvjtLOXpsOtL4dYIJ1ammR80LendYW9\nMusk0SelUXExGsHoUkQQm/wkpXSwzWIq7h6ouQli9MQDDpDS9nDnsb3xSnQm\n6eo67KY8C+dAzSxHG6lNhhhDxQfbiEnjEhAXxqWg6IgOt4R9rYOqq5PlDXXl\nragKdLy7MZz4ik+nlUHffFik7z2xsXucVEX4eaNjmMU43edsGo8Xd15GJDgC\n4sNosIFxix0oY2qA8AG0mWoOt2PjZ75rxv8nPTzNYaP7eTKWZlgbtlvZOK/R\nR54mlDm5SA/yfxg3iTnUqs4m2/GiHDYSyE8IcrMhovjQ1Q2z9ejQ4mMSqPUK\nwrob2bZxrCWshuYAqxeNTnC+U1YM9UdBChXuS6jWF0NcjYXUKi9GXXsDIPGf\nuRiLCsXVIZTx1RjndbUHveK98vvcDrw4hnU8xlokIHgoGMsaFBlpbuXWEY+w\n3CCNwVwaQzkyJTv/K1gfkv4zYC8MezFWiYqqEbA7OI6d3EBDYgUgR1Bj/1qQ\nJIWUd207Tb2/4Vw9wLwoaKl1nSW6bh0Sp9h5nxI3MpEYsjQd56+xSdTNTlEo\nRtBbjEpk6zaxx480lzWA1AAF1W71ItY1g3eky6eti47a/iKatwJd06CUM9aA\nxxCf\r\n=EY6m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBb52FIDE5HArIzX/DvIE+M84KuIMmF9Un4QMCkHgcsqAiA8z6FAOvovI4sx3lDxwjl1S4wKhzYQD3ce42e+xPRvXA=="}]},"_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.0.1_1636667414089_0.20633555755292288"},"_hasShrinkwrap":false},"13.0.2":{"name":"@nguniversal/express-engine","version":"13.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.1.0","@angular/core":"^13.1.0","@angular/platform-server":"^13.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.0.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"a437e481647a4d7e0d95bbfecd8a09ec77ab386a","_id":"@nguniversal/express-engine@13.0.2","_nodeVersion":"14.17.6","_npmVersion":"8.1.4","dist":{"integrity":"sha512-4CUBAYeatF8hl01hNdt372ANHjFFuaZ8rAYX64LWJSrlnt5a33NAbbHzMnAESbeo4LOkdG0XFQPB9IGG1MN5qw==","shasum":"cf9483a13fc81380569286af3bab938a9cdc3ce4","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.0.2.tgz","fileCount":41,"unpackedSize":162721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh50G4CRA9TVsSAnZWagAAxJYP/RugKyfjQi2L81weewK8\nlBsr29XHeE6HgNnhDpqCAh5zJw9rDjASW6zHOA9iBYEVKGLPvtwQK0QrbZII\nAxNJm9ki+wEb5drcuzrCSCu9gKDxnNd0PR64pXlr35X51WS2ewSNNtKZqtke\nmywNizLAZA9gY+thsX7gBO4WAlH0oi+6vtzLNkw9aWihdqYGqO/8tVhpDuhu\nmspA+rc62q+ek1rmc/Mx/O9PK7vzy4za3IDY1BSsEIYF5wNmjX9cMNR9IFGS\nV6bRHNTWAiStPZJVJQRMKr37TDdGy2oDMikY6f3n5c4+7NQZqu9dV4IA69yF\nnPXEYhyqNjjwh7yOiH9xMOrazZ2MwJnrO9GcPuDFB13peB9o8+tpy6rmUeDz\ntPZ8pDLjDjLSfLCrcc9X4nQoMOvRlaOLaCu7MTM49Nn3ub190gpkl36E9VSW\n0nd2CoM7+NK8h6tJQkudHKttsxoImOksy1jxfDabjHCEA4xYS88KgohvphWN\neOTw1PCG5smEqGIfLybcOhxmWFzJx90LFnTN4QhRd9OlmE4mg/KSiLE/lNEg\nMxJG7K9WqnBH5VNERiZKZWXuGS2MKihA/Y3etrw1C8as8TtohbD8M2aKu/hC\nNj3lvgQ0TtcH5lEkoq8cVe9UEZB2j+GM7zmZKeGiq6FOwZrYlJfr4PSv+5N7\nx5A4\r\n=S9Iv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRQXCL/yRlEIxlTNI+nUrR1dZp8LDcmOUW5vSwMISq4QIhAOnN0m8gvJfDUSSFkwFxsg5+zvhwgunTkJKDTceFFnoo"}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.0.2_1642545592191_0.7663499855251872"},"_hasShrinkwrap":false},"13.1.0-next.1":{"name":"@nguniversal/express-engine","version":"13.1.0-next.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.1.0","@angular/core":"^13.1.0","@angular/platform-server":"^13.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.1.0-next.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"b104c40f6d3678c42f91862541ffd7995892ca67","_id":"@nguniversal/express-engine@13.1.0-next.1","_nodeVersion":"14.17.6","_npmVersion":"8.1.4","dist":{"integrity":"sha512-L6GpmVEnUtCPlji7Gp6nqBpfWRGrh7ON03tmMH7A8B2AGhnnDscA+ZqdIo3RK11JGbe8V29d2o7AEpuOIWF7dw==","shasum":"9f1dba8eb03c1c66f58cf7c048166308d89c9980","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.0-next.1.tgz","fileCount":41,"unpackedSize":162770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh51VkCRA9TVsSAnZWagAAz6EP/0ZPTZa/nPZtZBVytyrY\niTy+gEWSlq93JkKAB+oMqr8843ISONuhMFtqJEURiruU09E69lPyI4j1Uf5k\nwl4OHzjWzz8s3D8m4P77MABoMjXT3KM9MiYTR8rlHSiqiEmG7QEjpTfCVtqy\niVkJ/gRZOZMImWB2qSI7fjgcwUenkJAs7fIcPRiGx5HIA67s4rBjlIGHYkkM\n+Mr7kdj7ZsSTnYfBBeCpJx+FlTUYQ5L83jYpDRz/7WxxinFLiTlj/RZlhkhx\n6pl3GYIwjIbfOuhgb06FR5DpytLdyO18r01JRRRFsYdqby9lAxFsAxUVlcQU\naF8LeRENx7O61EO0diHa+7Kq83ZEkUu3Fc9RBKVT+Z4B4/gmYA+1cF6Yn66d\nasdWNdCxsR1+Hh/zvvgL0n27qkF+NwlN1jzXTh1ZKue7dIsITcNZhHDusTPl\n6tLuT50qn8H+ec4+xLvoIKWRIRRk7dgna2yJpDDidbKcvG1IREIyHYMTZLdA\n1q4fxYkNHhCLzKw6iYWW+86HKQWqPV+Gw3qpTrRx3L8ZzOLcG9mWWjALckiN\n0PC1kTnvzeig2tB19BvJJTj/7sEQqlL5om2FSeyMAHf43w4sbwrft1VJ28fX\n4PfOnoJhEvk06pLT6I7+q3k8Og0c9Bdy2mearELRwhgTkz/HHDv0cErNGZuS\nAjx9\r\n=wIrj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBORB74NbflqBNbt4GquKb04vv+6dMn+jKaXa15QBW+oAiEAn5+4eSqLTlGM3N6sgmQrdjTCmUjDBycf6kNT3/rdnZo="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.1.0-next.1_1642550628009_0.987419515689048"},"_hasShrinkwrap":false},"13.1.0":{"name":"@nguniversal/express-engine","version":"13.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.3.0","@angular/core":"^13.3.0","@angular/platform-server":"^13.3.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.1.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"554889559da5ccb9a52566caa6d3e8e2e603710b","_id":"@nguniversal/express-engine@13.1.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-rA1Dckp23CauMkdi6/B2ifUjqZlHDvPXPfr3+/Tg9iT9CIFQgblruQ02m0bPf8uAsUBQsFtVdrRZyy90K0BALA==","shasum":"0687a54346baed3211d03cf4067eb1e241f75e5d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.0.tgz","fileCount":41,"unpackedSize":162897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiONvTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUAw/8D8mT1VN+rZVkUZdX8vx7MgcNotIswTrQnzKAB88pNLywmINz\r\nFZfMghM4eYPe78piBkl2dYm8scEaFn+f+JYyK8/+Er13qgRZqGk5GyTwziD0\r\nMkDE3Qja0bfmKkJalUVvW7zuk0qcS/Rk89UN/jDTVy1fnN+1vQiVUKohbwZb\r\nBu7EjyWhAfJGsyaCfCAjpehd8mshYYHLZux8bDi4boZVr/vl1ACvze/Fa1Z6\r\nvOgkuKI+z3Fn2n9aSy9jHvXPsK/d9s4+MWAqheWhJnjeDvf5WGnZYALQHcb9\r\nR9GpJj1o/20i49uI8bo6dstnHcdMQdtbu3cXYPgLemiwmK9EsYvvtcXYYyKN\r\nK0MLIAJ0CLCMbrW/VDWRkl5imABc22cIdvambejbH+fnQSHjd9GdNVqYn+/O\r\nIJOI6GhB9+AlquHL5d82Uf1oR1UX8RTupb0x6BbgUgVPe63dBeSF0TQPE0Oy\r\nmORFLR/kJJVED9/viyl8pIsa28ZFGN5mfqWr0QHNBR9BOIbVb0ADQ63w/KAb\r\nH0zJXQ3K5eDxO9UQv6ptoV/UjPCUhdaOcHrg5W+F44bpvRosOFhyHtfCtRqw\r\nGQk5LXAYXsKK9wx6Z7DFQKmUbtdA1CkpkDXFTonXxKkq4UtZVbjJuw5R4HuL\r\n/6QW+iItcFz/7czj0KoqA8f+P5d1wNmdMjY=\r\n=wgyc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxtAS7gYuO3V9aA+TFegynhWjQp8ajrroyWFJPK/pbdgIhAM22750DyaDb/KpLMoJ/VtSAmYoqfuZLvl2ll5DM7RbH"}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"nguniversal","email":"viks@google.com"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.1.0_1647893459597_0.8172260264278839"},"_hasShrinkwrap":false},"13.1.1":{"name":"@nguniversal/express-engine","version":"13.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^12.20.0 || ^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^13.3.4","@angular/core":"^13.3.4","@angular/platform-server":"^13.3.4","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"13.1.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine","@nguniversal/hapi-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./express-engine.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./express-engine.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/tokens.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"9de38249b3b334c2789f71340391925e8784c64d","_id":"@nguniversal/express-engine@13.1.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==","shasum":"7c84056f73701a9dd8fa08544af73db7f9eb857e","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz","fileCount":41,"unpackedSize":162897,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyQdgw71TYoeUT2lP7IfsUwO3xu/Zr1mnkchi2vi09sgIgH2pLo+hkIZ5pDW8PEgdFn85OPqCGLV1d/JTNfYU9lso="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicwy7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvYxAAkGnnq2QuzAdsHylYh7oaPe2YMR0qssCKI5On8fZRHPTGmvLS\r\n0jK3ECD6K/vpVoe3EJEuPWw5ojTytRNOrv703Ys5gRDAhvyB4JkQuSer/bFt\r\n/x7bTBsSUhxxNYvp2pPkACsVQDUPGue4XWDthf7FY9frrZi/PUO61B9WQuL9\r\nl1eYCAOyIsNomd5ogHopxwuNfeOZAhEZNawv31ioy4RcfRz7IAd/DMTKYuze\r\nlRjz6/LndpoaiazBl7m6f7PuOQYbnLd42WqzaN7RZbM2TqrMtmW3a393u02C\r\nZPTGdnFoHcOp6RtiuzuFnRJvJ9FVQKMgoyf3aUBUVXnTTQgmZ+XSQKdjVuBN\r\nnzEbSVvfA6T3/f4bDV8iMF4jt9C6wyQvQ1a1k+YE2Paj5K/OWUhhpmrqBKSm\r\nsdL3hFXBvv6DUL6TFig8qmcyFR3rmS0mWkMyTYFeJqMMUdHnDiOvboYSRiu2\r\nnp6yHmbbvu2HPpRLPrM/ziCCV/6ii+H5hb25GCHe5rPu75WdmKdTMrltCTHJ\r\nv7bgfR4Xn2ddx45fPpOaD0TgaJBSe1+TEtndM45q6JhI92U7DgvAKvb4n4Vr\r\nGVsPHVoH4S4PgPJdLfEMObIvImOz962+ORy/+ayW4jVCrhp29F6ffdF21K+G\r\n4CYRhW51fzPrNb8CXBnWmB+xsnrCx5ddhDg=\r\n=Cgr1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_13.1.1_1651707066930_0.8514914850746425"},"_hasShrinkwrap":false},"14.0.0-next.0":{"name":"@nguniversal/express-engine","version":"14.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"a8302f40f23780e11777b2b73f1235eda8eaab7e","readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","_id":"@nguniversal/express-engine@14.0.0-next.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-YDtURlgokkAVbaIXp6dj/pL+R2QdMlYLfY7P5bwZVt7xnAVvTd3/9L8Hkpo4PkHL/LG7kioee/oh6622C/07+g==","shasum":"6e59552ff9b448ee8483100b005ce1cbc19dc7fb","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.0-next.0.tgz","fileCount":40,"unpackedSize":163591,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFmcFTzVVG557RwNco49Syz1HXSn2A43Fqu82Gm+6cAOAiA16/AWmxsRAPSxSG5ZxM8uHkNdE9Mp1gZiKKlFd+mObA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJidBrwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5jg//fBVcm7zylYTv2PGAqOHeRtBil5QTdf7Yxt6DnqeoQXsepiIY\r\nngO/Rw7ZoGcOmajHzZePrmgYRw0hNGvo6M/r5B0ZQ6p3fW6jMD9zsGHcYmON\r\n5VQqaSNLnxfuAY3vXo8VHdrM1O115G/baBjXBawt1ZuQYg5v8dA7DJ1mp3+k\r\n/b3LSZmudxseL1F1p+0PFZ2h/RypotL3hIZ4261thitEK36q1ZfuG5DeaX8V\r\nVHKskTdXE1g7XFckUuRmg2xF1znByfjPcag53ofD8+nAOYF1xOtwRLbn/TlX\r\nqxj50YaZO75x57iacdJVePtmUiqf1uTbYBXCnTdEAP7WoVrOlw1sd3U1xrK3\r\njzF/QYF1CXRGYK5NaHemh5YMwHDT6muyoazPwzzexbh8NNm9u97NTiNqxQS7\r\njtYgJcnYzxmOPXQgRs6RX1Y+SvNXFhzusX2sVIuPNWhH3d7n/9lKej5vsIUt\r\nASUfLvGXbPJEXQHuFpeNtZ2lQBIfOIeZQ4M8YwkToSakuPqZ4++N9UxwIWUH\r\nyEXQfb7BVv8L6alHD92ryEOo+MPSuYjdkjr2BPRrkICixVSZEHNc6zE+B9ZZ\r\n8Lr06mIr1ceCI49rxSFN6aFYYmL6L9FIRJk7fuBzQicS8aClJU+b9IlMH87a\r\nLBvLKXL+d6HSLuXNV1WHNu/lWyp5o/UTGeQ=\r\n=hsbu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.0-next.0_1651776240204_0.4945009940065146"},"_hasShrinkwrap":false},"14.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"14.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"03f74d129abb8521895e4c9a86c2857531803936","_id":"@nguniversal/express-engine@14.0.0-rc.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-m4mObKfFBijPfIa8DfVCKng2FwQvXIX6J48enAtxcbCAM1zcR5Hc9vyoDMuWt9dWF23S8fhM0FsxaLZLvMAarA==","shasum":"10b6b0b1b950cdb00381a7c5b35e5394a9c89717","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.0-rc.0.tgz","fileCount":40,"unpackedSize":163577,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRhU7fOGGLgiSlAHMZ+3s5eDGG6uvnKCFJ2gKKLi9aoAiBH8noswpOTmNES/SbadMt4uDZ76UFRdUkMvACCRPmzcw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifTLoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwUw/9G/k+bUTPzm/CFPJahh/T+JlRvvDrhegXpppOI3qrMcbIKbxs\r\n3m6ZPCoeb3IuifHDHAZp8lQFByjlOpQ5zWS38S3rKtC0TVS6Wy3EXJq8Fwjo\r\nhBfKp6icz56GFcCLNnhAesbV5RtNqrp+V1gpX+G3sBIFYdi+iYZraRPIe1bM\r\nqwqDAQ1zaRHPCSVWq6J5t1kEeLlwk38Bsy3LoAYWN2ILTWEMbBSnuO5NYbmK\r\nErfGd+XTppVuJGrN77Wmsvt9dUbIijGVCmiw3D5VDIfROQu0XXqyQPpdr7/i\r\nFUMPYNv6EsZFv+j0MjnjV6mBtKyrVNW1ztfwru6wzw9EA7x8hLr9vx6gG0ML\r\nfj4jmdkGYVHh4zOMlcQwjVmnJN68DWOC5UKUoz/GupGChyBRILTfXpVOpwF2\r\nq41qlERqdPysVJ1nqLa81oxIB0Mqy6qgzYpUL9I2aG+ACiLtlIA4AkzGoF7u\r\n9wmkC6A41yNAA9bfo+1yExe4cyquUSrBweePAwQsUdoaAovGmo1F0VjBls1r\r\nGLp6m3fEimWX3cepf66Iq2EDYAWk2seiJdz+0c8UkeX/Jf8ghk/SrWOOabJj\r\nh7JThJVfS4qktJucTlJ6jax715dRYHlWK2e4J1KO8ACA4+a+GFHTPTR2xlUt\r\nxcs4RCtRpegyokHhUZw2ELk3W1/xcsI4flY=\r\n=4ry7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.0-rc.0_1652372200779_0.35078989081440204"},"_hasShrinkwrap":false},"14.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"14.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.0-rc.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"c49d3f813b98034712c53181009fed01f8ca5d37","_id":"@nguniversal/express-engine@14.0.0-rc.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-YtdG2nAIYp7JHXACqRUowWX9Dw23NYPE+bQ+erNzrlYT3iZgv+rISe3N4DprSBsgkHMAtO48SPnI4G08kVYB+w==","shasum":"45142cabd49fa56cac0f66d255ba2be4ac7c124b","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.0-rc.1.tgz","fileCount":40,"unpackedSize":160345,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEKlxReZi/xNC3MnbBYkzuVyokVOpgwqBffwRl/gJDdgIhAKhrDo7TabwVyQreip5SASMgAbVjDL8Xr/XLNTs/8R57"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilqB5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgdRAAk+Imc4cZRLB/MBAQAIGdtKYwpVO5sQAnhO8sqHO5uEysMNLL\r\nCoXcc2f6EMpdUSiqbKZm3bVO3+ZB2Dl8/6f5sLy1u/iZuODyjBlbRYlVQFHp\r\nzYsH2B35jRwEcmlT5Nn8mNwL0vQilU1W7X5stm5YB6E7KK9iUlrFU15HaayT\r\nJakCigV2Ok6PUv4rW1YZyHjtu1DFA0VDVb+egnYNdUU7Mx+acdIdYTJgreH8\r\ncAXoSIcWuVTgsBa/fMxeQ4wWTykOkzzwSwwzfGImfzB2xx8RdlzUP2BLYcdB\r\nA5Qol/hWRFpRzec/aoZz3vV0ATa9WjJUbCgIpQVV+CywU10GUryA6PjIGUG3\r\n6cXr0i9k+eB7v2pU5Fwbxs9P+2s97bKIycVzn6RJuudbIYjoEB9P9vwo+HA0\r\n6F4QAttimLfFs9v6CYizDwyklXKRm8f6+I0nwXlPKGvOp14D3T/9kwHWjvqk\r\nw+UALFPclPmTjxZCzDaN3W0bQ6DY7jtWli6GoOr5TX8+xtKvr+Nv702xWvJb\r\niW68nkGtmmY5h5bO1Va2GHXhtcr0MmuYl0Ff7KCACnzavce/LeFVewEa2z35\r\nLT4iQD0XEBBVYX9JeCbWnMv2cgQ2cX3HouG1oD6xKZIO3bVfMFdmufEwJmi6\r\ntRpp/T2bbJJ79dnFKfgld9Aoz9+yF9Sfvt4=\r\n=4YUB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.0-rc.1_1654038648902_0.10132497198549983"},"_hasShrinkwrap":false},"14.0.0":{"name":"@nguniversal/express-engine","version":"14.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"1032156c1fd52794c2201250c6465e1662445129","_id":"@nguniversal/express-engine@14.0.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-EhiHJajwodbeD07ZA3k+D3oqRhbDj7VyRjy/OQQnId8DuQZV5655bzAtFDCrswB1WJceKhBZwo7eU/2FY8mqQQ==","shasum":"3f6fa873d8a0ea30ef996ec9a5963da6b89e2fa2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.0.tgz","fileCount":40,"unpackedSize":160310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBXfKeLQgA1VCUvi++YYMb5NIdHlJ3ql7+W5Qmear5eWAiEA/sZryCkxoE1AgP74ptbkYC32Cuc2CMwQe+kA65AAFYI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimPqrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmraMg/8CjD5Ih1n95m1JYg7rHJYrB2KiXLDcj5bEAUVqgI5NIXYJGei\r\n26xEg0BHBNdZ4cAk0hJtWSVEk4MxKa15jBySfl81znbO/yoXs6TxOGWDiOtF\r\nP/eYgDjT7801ng0/4VBFoEaSqmOJConQim7mB3EK0brVeB7wG3M0Ai0w7Zzv\r\noVuBb9y0WpvDtNH1DKN9BzyQFxZlcyqnJvD20HjZ/WYy47e1JOO6G1Zn4+Ci\r\nW/L9Q82s08NGWKPgFiVfnk8wUbj+Mv3oOFBfDTS8AyJFB6UzBV/Z1507JNDZ\r\nQWk2vPDrjXOUGZVegr7dIMNdv/FXqb2H4PWQBxyBBHmGk5L//14Oa70B+hbe\r\nQzoz3lpk9kNWqr0QJ/GqVFIz6qD/S2ODyY8HKG08OSjkT4StWbDxkAXuhoco\r\n8iuHAIWjhtkdFtixcoIXtHN4c55w5yU1TOhUUbBeCLCPnYj3jP1/oM94mssh\r\n+fAFYoB40f+NFrfE9KXe9L+DX2KCm/X4yaB2U18syG6c2OFNvlPMXhjw2bZl\r\nULAhI5jA2eqCpB8z42R135GKIOB1q1YuPyLY+R1TBTV5SUXIXpKUdRVmAeOq\r\nBSb4fPU+0L87Fw1Q2FE9MjJZ+khokEHWdJs42s3wu6c3XaiOcXGvKOFnlHNe\r\njtqSGEkHpBzqYCYGcv8vF68JbS618u764ws=\r\n=gqy9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.0_1654192810898_0.7239935355498246"},"_hasShrinkwrap":false},"14.0.1":{"name":"@nguniversal/express-engine","version":"14.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"e5edee98acbc66e71f7a6a4b4ef516c86543689c","_id":"@nguniversal/express-engine@14.0.1","_nodeVersion":"14.19.2","_npmVersion":"8.11.0","dist":{"integrity":"sha512-tVNJhDLMNchpYnKMWKq+qoVElb/fU5foLYOyKb/4HyXHF1GfJHhQqgA694p/sSdt6Z+o7ZU/diej0McOyHWvUg==","shasum":"2ee68c84584e3a5a17c8044a06c0063075285422","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.1.tgz","fileCount":40,"unpackedSize":160310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCM44uNEjrFPvvpB+5siRAxDORlhvPuDbpd+evSlkeBNQIhAMXliz1nxzCGuLesxVsOxiealcj0r4WX3/Cm8zgMsyxk"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqYfCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKEw//ShfFdKeWXmGDdggRJ2nTT3rMcEROD2xasJCt1sdn2Zy0IjCs\r\n3Ilbcui9FQSbELnXnQ9UC7X6tp4YiB+6B2A32wPGZENcJjA3+HdrOBcA97ZX\r\nJScIwDBh9b8f1VMA76K2IiSwZw9kr9yJvkzwshoJbhdLs368srPAxnGT8EOA\r\nRr+Bva2oDFBGjJn6bbrqOHBkhX+8C5X1x+R/jw7QG8j8UeXgQYIvu8AerkXM\r\n393cwbLPeQuMLKp+7mtaVMAla9eWN4Op3c/S1ddqR0LT2rDsRJ1XZ5lcUH5w\r\nzLBn9d9654v7TGhd4TfcKIsyaxXB9b4+mO+g6YctjyzbMVqaAZM2xoARG70w\r\nlWYwcppYdSTHVLAlwTWrNB/HxNQN0zOgf4S/dxYg7E0IFrdnCNqMRsfQff7/\r\n0RBhpovJCIR7GIjtBdBZsKfaKd44uuOKKsHNl3oKsy/BxicNI/OmUh/9LMi4\r\nXN/+ZNIWYZPah2nUp/KHhubufIHbjU77fySQq3kZQr7WB2wNWLbMcir9e33X\r\n0nB0S+Q4q5hWVqb4EeLZkbMNmfrmeaHAlR5q3cz2YLz9qM65Yu/XjwNYE8ZA\r\nL7YfBBBV0wOvEV2SGj/4ut4yNJdccR/bmtqKvf336mkxwG0/xNDJxezTdDDn\r\nGDq4viW6EM8Eg4U0i4DjEO39XhBrG7R+KrQ=\r\n=2YcW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.1_1655277506096_0.6482605493376898"},"_hasShrinkwrap":false},"14.1.0-next.0":{"name":"@nguniversal/express-engine","version":"14.1.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.1.0-next","@angular/core":"^14.1.0-next","@angular/platform-server":"^14.1.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.1.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"7548cf4f8d35bc31212c8820567d8ab298773d3e","_id":"@nguniversal/express-engine@14.1.0-next.0","_nodeVersion":"14.19.2","_npmVersion":"8.11.0","dist":{"integrity":"sha512-LTW3Sevse40riHf5QAyuE1n882bf4rS4FoP1AKuh5mgJa/Z+KoFqMS4AM/bKKctv+o7cTTEkOYJbYGJhhP+dLA==","shasum":"9f6dd04939fbdc1a4e99460aa69609b4203a2935","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.1.0-next.0.tgz","fileCount":40,"unpackedSize":160359,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/pzJHQzAQp1HzliEhShBGBvnzJTXTb4VkKaDriYOjhAiA5IjF8egC5ahot/t0jL/IHCOb5llT/o3vRxxqlvIKkEw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqY3rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolmRAAhbGgHt1kNzKrBasrmaVOcyPWxlwPdhMK2apYIWCip9uYOEVX\r\nJPWgBL/W/al3UHNpd7L1qlwBvahI729Vw8tHEhCTC6EhBr9IWQqp9RfcIY4A\r\nP905fBoaAu66sgJ8JEjlqMLnnnQ5Yle6SaabLwP6UZzZYXrFBGnplMtREsB3\r\ng0GLz5KV0tNj2Uw87qa04bPBztmom4mrj2JniIg3hTvMqs1eg38N6ZEmbTOF\r\nqNPFJwJffDDi/yYxUf6l1/4QAKgrfhPCLWflTbJUXicifcHRKay3//Mg+79Q\r\nhan4UTDWsrFriQhza4KAW6zk1VGitznBwmpvi4JE1OEYzKlORLG7nPr+bHiu\r\ntcAPmeEtZ4rGT8qMairG5JKiNWwmwXyEXXSdO8b+yhw6FfzuKicd7pLb8pkj\r\nki3tfWL2dQkd57vXWqToxvmril665drJzb5lZ+UsFsongdwo1++1bXy0jy2F\r\nV8XxKyS2vRCaUtzGRjgi+V4BSEDjdx7P4VCuQtzUnlY/Y1vK7rY8FF2Wno95\r\nIRhVw/Mb/naXpIAs+3irZCIVghbxxLGyms0kHTvH8weWyaruzqkjNgcdRVVJ\r\n4jVf+CNApf9T09xd3R8q1q+7UMNzouRYktcCF9M8yBfXhYaGAINZpS2mCGot\r\nTOLVwDDdpX2gVlcr+dW/ydDM6+qOCyU7Xhg=\r\n=K/IV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.1.0-next.0_1655279082787_0.08272929033956089"},"_hasShrinkwrap":false},"14.0.2":{"name":"@nguniversal/express-engine","version":"14.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"019a90ed41893ffc95818731984afe2d871a1385","_id":"@nguniversal/express-engine@14.0.2","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-bI/NswFX9ZCf23ekeigDdg7zDeLvHBfzvAFwK9TJR6y/qyxi5kK9uq2Eaie2yZKwfYrA70/o5nUVn3UJKKtXug==","shasum":"b74dc90f222e92e3ce4b5a7e672802c942df96da","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.2.tgz","fileCount":40,"unpackedSize":160310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHhl6hhG2prrFqNUubaciD/E0WDZSZHoxNs1tOa4JI7uAiEAr/CeZ4odnGzULUEG7x33UyPOy2/XrQkN0krMvGGfXow="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitOoMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoF5w//a4e7bNzOiSs4HNscoJtVIkrO0c/kVa2Rp1+FEyalHtJNjcpj\r\nVW8roQQJ23HiSCx8zRBrLnsrm5mOfZZ0sJOM7ZErIdtMSSbBcwq+KhhjyRFL\r\n2ozns+E6vI9cGHuHeqmeY3m+1hoakg+yuPtAUEWRGOQ7z4/z+Yw5kcdBUk0a\r\n1mWe3/zUzsvq/sLiltxRHSQjzU1Cp5sDY4MnFWKFVXLk5A7DwDAq5mgv55d0\r\nfpAz8iXPluq6mzuk43XXw29DxxvFUAiNuZZP3uZzOKWuCsy68olctcd24g53\r\nXbiB1qN0jJb7vSsLI8nUJEnz69GucxR5SdceyK8DbB1DKNS1LGCng1K0HQNT\r\nqy6rF9wrVvHtO43zKHy5jToglgSM4+Fi3z81474Qd7aWxMYiI/bJTyx2FfrV\r\nun+5U0HfD8QsMAQ4WckuSbSKC7ZZszTiPOV94ydbWgZWi2Na+zBnPYnUjIH3\r\nQpuY7DHsV39wew4T0fIkA7naz+xNt+MeJZGkbbqIm7AC6SKO1RVAxPiRoJuX\r\nDxwhiG0xi0AX/NVHoS92dH2ebwG32dm+wZocTauo0VY7MebJvHoClEJn8zmu\r\nt6EHUlKVbZTIVD+KrtWq7jjDJqoPbjm9hA8I52r/HrSSx9AV45fu5XP1PDl+\r\nq+0Segv4Gx5FXKMEYY4rxKIPVxldLpiz8UU=\r\n=yxU1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.2_1656023564539_0.49144641549132584"},"_hasShrinkwrap":false},"14.1.0-next.1":{"name":"@nguniversal/express-engine","version":"14.1.0-next.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.1.0-next","@angular/core":"^14.1.0-next","@angular/platform-server":"^14.1.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.1.0-next.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"312b0d5eec3039c44a1f209ea34ae563729840aa","_id":"@nguniversal/express-engine@14.1.0-next.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-BTSqx7DKQM65wKyKpYN+gs/QUSrWvEw3Y3DGBXhmgIyAN2D7ZbWjrwnS2pouWzbfBEtvCDouWQBzCX0QxJP48Q==","shasum":"49c63b7fae1cf2b2662ab3d160f6c9e52f436c82","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.1.0-next.1.tgz","fileCount":40,"unpackedSize":160359,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMO57a57KR0V7f0mix99YMnEz4MNs5FfMFsNb+Mx7/4QIhAKn7OvjygysVSxBFS9PYh+7U6WA3hwN+LmVnbvvwXwla"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitPf1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqv4w//ZB50xKRUbWDztovBg5CqXupwdrQbxLG+vG6e9zOrTVWDu5gk\r\nDTaVICMhKsU9rqnyGPNSvNClGMvBZuIkHn8Uv+s19n5KR5FICW86QtFQy8AV\r\nbGVqAbnjB12vFN6IYTDkdKspcB+zQ/j30F1hFoJi7ET39FCfi8eRJlvMXnQu\r\n2md7WomEj8aPpboTxr+hs2mxmhFO5texLZS1obp997l6yp+oxWqKp9msq6bh\r\nmdswTquTg1Wkrkmjn49chltQ5rqNQL5o+61lSsVh/Q3Rt5ML6eJ0WKcLZ3IL\r\nVr5D8TKBX1oTZnrz63qui+IMuT1JDLNz2t0cFKY+e2DAdYwQNfBodNYhLR0c\r\nrAdhGnPDz4mfyz856OfHUs0ycGgSySRPNEq/UQodDuau4Vj6K7tkSVE5MraV\r\nR9gumCM8o++RKCc7uJVWosnY/Sf49nBUsIEUY2nIIszyh93teDP3f2JDTu18\r\n1fXzGg/EiWfCmt856TD626O5la08Ls/+bk7m584VzGI+9Sl4K1L+M95YTbcq\r\nnLWYVnoQ6Ilt0pG5hQEyk1yg0pPndouTaJ4jwK9hw7qXuy8YMIH2fCmeczOW\r\nMl7Lwo04mqAWjaRaVcd1BCvzk6ydYQEOWSZdpjqdOslQqiJYXWgOrVj3yUlN\r\n2g7lrmpaPk3HPmuaZBFHypvCMwtCXbE3IUw=\r\n=MXFy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.1.0-next.1_1656027125096_0.7435540160702698"},"_hasShrinkwrap":false},"14.0.3":{"name":"@nguniversal/express-engine","version":"14.0.3","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.0.0-next","@angular/core":"^14.0.0-next","@angular/platform-server":"^14.0.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.0.3","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"b7a260b5a8aa24cbfa365b8f3c4767fbf14d735f","_id":"@nguniversal/express-engine@14.0.3","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-tlWaNvd+KHNj4Ofb36VoGpXkYHmcM3qU+VX2imYnjKR6N5y2ERQLOYQVzJDJBX2bz6k9DopceXXbZk/dTnsFrA==","shasum":"b2fae522d9633b1c059eb24fb806996967be6ebf","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.0.3.tgz","fileCount":40,"unpackedSize":160310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjinN/kFSObg6Kl7TCO32oigbRZ3maD3n/FkX7nfxTfAiEA8P6PI/MvX/kSz3uRWX6GR1eHGq1Z1xI0PQmIV9lwp3o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixaGfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLlw//Rxa2yKDET3pYKV20LVqZRF+v4su4MrJQHS2MI46Mdjv7/dLi\r\nwsSnXOlWYrHdSRn9gHnMT6Eott6AsGii9T9uxJuVF+p7gS1nYNmTa0NymVjT\r\nQ/S+ncKkFRzcvWzlmFb7v0aEC3vF7Ky+oG9h2/yixWrIrv/0s7TTTGDYgsgG\r\n3xhjhnW6TPJcEuE5dO7pElXlODJse2VPqOlCkcTysGhku5C9+aBy/VZU1w1/\r\nIyIFgnhOCKDVYO5m8dq3ueI9zSPua7Un1l5I1fiMBaYqHQCXs7zz5TYN9Yvr\r\nErXX6dR3PhEHz0x5d9qUYf0kGyKwGKTiouZvJaqeaGGDNl6LhF5QO3Fvy/MY\r\nPQfNUpnxIQBMHzuWmOBBDHSgBEgK7OF8Ve72XwrjHITIBlHr+YYNGlVWInjn\r\nOibc8PF0pQKBTURKIPCRiuP2yt0Rfz4xMMw6o1yn+oRB/+s1mvAbxO5McUUj\r\neF3adwgjWIVjx+2RBoXE6PZCuZFsJUVJwT3mCCzf67KLnx1XGxLegKG4E8rG\r\n+Hv7xBaM/g9MMJOtI+ogydRWY4OHqQS7TjhQRjS3R08Z5FXE0eAN+C7brm8u\r\nymTqvLLDo+MN1TbZpVip9H8N0hmJqXB0ghfVloSdZ3afPX+4Bm5wqi5sAb71\r\n61D3W6Pvr+a2r4up7MpEYV31iWJc/Xcry10=\r\n=HhQ5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.0.3_1657119135715_0.6899722270998239"},"_hasShrinkwrap":false},"14.1.0-next.2":{"name":"@nguniversal/express-engine","version":"14.1.0-next.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.1.0-next","@angular/core":"^14.1.0-next","@angular/platform-server":"^14.1.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.1.0-next.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"f07d966fb920f339970e0c91e725854f932bacec","_id":"@nguniversal/express-engine@14.1.0-next.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-rKUUIv1wScESpPN3yOEU5XTBw/NZHE29YGr5qeZnhcoynpOeT9FGU4a0dNBhO2MohCFjWCTmveFEtCB0z2gJBQ==","shasum":"558de2a04568e13d8f0a0c3be625a352c1eaf2bf","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.1.0-next.2.tgz","fileCount":40,"unpackedSize":160359,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeBFjG2wD1Gi+WZfAu8qG0kJ+AmEkc58KpER2DHcyLQQIhAO8DATaRuoRQReomLd6Vim8RM48L/MeU/s8fOfmzu4VJ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixaw/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrq6g/6A5NA5EIVAlTB1ERnyu/hnCOEd/fYnlZCiXys3TGW//4SbS7D\r\ngrNS5BTtglaiIymsFhb6Cc3CKDAbaT4OeDjaKfVoVVidlqCS5NxqWfcSgJes\r\ndcGPJP/5DVUcCorCm4elFbDKA0g7/HOvq5kiVy2LbDRUyMyzq/t3cQ2eO5ZD\r\nnWqYFGdXzZLDxLIS+6r1nJufhNBwltTUCduKLBjFOFpTlV8ahQkUT8DBfagv\r\ncrzxaK4VuOVMRcDyw675XC+E32yNaoP5LC3JAi6KYHvkOg2RhnTvnsfZjffI\r\nZ6CtF+Tr4WWTA4enivstfSetWGmtCb0UTZ1U6Eo6w+zp4HrLmenv79cWdBv3\r\nnTZWp0RKT0NW28v92cT7BAzOWf6q1wv/TH+3WwWhr9NiCI28j3P0J6PgxIFH\r\n6dx5ZQRm3OKru+bWuXVxKxjAtVcz+TqHzR9+7W6lfIiBbR8lBuetjMvzLloM\r\ns/gj9e6xPE8+BVA6G6RvONOVbOzRp74iE0Czb/2cvauDB5+aWWcs2g4D5X99\r\n1vWYNi+fJWBIFqqZ5azaPcVw0NqKPmvBITGVSvA6b0F4xfkjxDGdLYhsOaW+\r\nL2ruWun8Xh8Mhpv13GQZivNS7Q3m+sqwP1aJkV+Bq+LuwgIUkrkuEh/BRB1u\r\n2RcQmokUWGt8E7Mumg74wcT5t0IFQuuX0gM=\r\n=/d4u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.1.0-next.2_1657121855033_0.7007319145530306"},"_hasShrinkwrap":false},"14.1.0-rc.0":{"name":"@nguniversal/express-engine","version":"14.1.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.1.0","@angular/core":"^14.1.0","@angular/platform-server":"^14.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.1.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"397434d703c5f53bb797ed9af0e89d3c536eb855","_id":"@nguniversal/express-engine@14.1.0-rc.0","_nodeVersion":"16.10.0","_npmVersion":"8.10.0","dist":{"integrity":"sha512-gbRPtXrdFiM8fEgGVYJky2l8JtcsjuwLSSUx6b16+Jy7trtKQyPl92IcCck6L2Vca60f0sSDi3Bnizhg+s1/1Q==","shasum":"c6b53daff7c721dcf8d2f91cae9f2976541ecbf0","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.1.0-rc.0.tgz","fileCount":40,"unpackedSize":160330,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3NfSudrQqeO59+eqZLbx83Ry0V5Tosv35r9t0RhVCcwIhANV2moosyI33rsGybqJ1MzXgA9ou7PCszDfO9dJZ76LJ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2I78ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqm7g//Thyhg4H5svfQ/xahHMP/ceXRr5LNm+Z41aOlHhPqrbBWJhdC\r\nKhViOWCIfYv9uQXXJYiG8owq6sRQMtVgZT+s+yL8oc0rMtcclsBeGOpjVSNM\r\neo4QP6nxaTsnw83omGJllJE6zfsZlGpai1TO/qCJPUBey9GYMiWTzIGgNO4t\r\naI70v+dZUDKqmHy3rJqqGgym6kIiEBPq/KHa+Z8FcKVAlLW0P562Q9CRzzBA\r\nEroCJvT8iJBzGxzcCDrDjAsgJ1JppmH6d1lyBOftURemTxFpSD/Nvc+FRpXZ\r\nZ0IbHJjNb5mhTBBq/1n5jDuxGwrpZvQqj+ljiUjm5p9wUCpYTSccgFDdSXhi\r\nDREC4Jmy7UveWMUCb3SU6XpfyuUKsPSYw2aF0ennuUQTqTAnhcHDOTKYqgc8\r\nqIBKjqgWyrClWmKwoCMGsWuPC2kQu22zksLioyUGtVJTlFCieYzbR5OTuXJn\r\nR2JpTpk9H1/cWt9ihTQlVohs4NsWCDXiUsy4y60Hi/6ny9v4vtO8wfckXtxK\r\nmQb3TYR3iHDI6AGOhYmV4nYFI5BvEIWcCwHtnyps2lcPlkS+bhxEAq85TNs+\r\nN6HhyrVX6DULrzBpg9JoBZfLU1VUV+BPSrviTqMKzudlfUPkY/9lkbk9kDbb\r\n6X/xkO7rGRKI6plUEvKdiUnjvbLsUVNOuuc=\r\n=W4MH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.1.0-rc.0_1658359548426_0.8242628631889746"},"_hasShrinkwrap":false},"14.1.0":{"name":"@nguniversal/express-engine","version":"14.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.1.0","@angular/core":"^14.1.0","@angular/platform-server":"^14.1.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.1.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"1197f3562e26158b16c9508476a82035d4ad3595","_id":"@nguniversal/express-engine@14.1.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-nGlCqqodXzKWP5fcatCglUvueeICmUMPsSz1mhmkINxvtRK1pQtbh2SAGI+nWa2qe3BDl472/dcZ9dSPULr/RQ==","shasum":"cf8d318cbbdd1eb1576f0b41244628c6918f13a5","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.1.0.tgz","fileCount":40,"unpackedSize":160295,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIECnkJ1VWe4JdKmpjji2x9o42/9GRWFTuM+A1F247GOPAiEAv34c73yxfuvfaslu/eJOzNjZGxpbpwzZf9FUTYvrPU8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/Kn4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq58w//Z3AzkLxAf1CoViI2pwPckYjuT77u2biB2UwQqqHXAKIe8Id5\r\n8l+Dn17tBZA6plBYFTADRMNz9mco9AphRaYtQg5CU0FhvBrnenVAGwRF47p2\r\nkmuE3cr+Lu56DO6d7GEdMzF/ZDfe+0fA40Vg/dP8S6S16UzWCizFsLX2FEXU\r\nQ5UpUJ+gWmdLOj/a3qAY/IOZsxcI3CusuSDdhujx6Wqg6tnLXXKcHfnroIrj\r\nWmktwV3nezO9+E/MV30P4tiarHjUoxLIC96mODXGDBnTjsPe4b0TjqF0V+OG\r\nayUFsGUv/qE0Pl2sjxlZ9wovAOhXIah2zbSRjWw24RkBgDPqwL5sTOlBhEll\r\n7I/Me8q0UK7H6pQ8QK9NmS4SxH3ATT8SlbZJpsgZ4zFxin75ituDydOEhioC\r\nRtvxmR40isNjzrlpoZUjU/JFErinde+t7zmm2TeGHwi6tw7RJ6JKuOubgxkr\r\ndy2vPQyKlN9CDLi9a2P0LVaVK4cm4IVKQs9PxAuY8rjpXuEG/mmtngtdC26m\r\n7fvl5KnOEvVUi39YX5IZyGFL11O+iMMCMIoDo5YUDegZ5p/btxQ0OQgrkfMP\r\n8MP9dgzYX7sjFt9/SaLfdhXmp2x3x029M0gY931IqwiJkLdP6q7f1tV2uLTH\r\nhjExX5Ztx5Q1U4uXikM9q2mn+g7yVAM815w=\r\n=NBO0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.1.0_1660725752711_0.917450217354278"},"_hasShrinkwrap":false},"14.2.0-next.0":{"name":"@nguniversal/express-engine","version":"14.2.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.1.0-next","@angular/core":"^14.1.0-next","@angular/platform-server":"^14.1.0-next","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.2.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/aspnetcore-engine","@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"1366b2927fbdfaf5848c4a89ff1fd78ea11352a7","_id":"@nguniversal/express-engine@14.2.0-next.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-Fk9pXEx6GTLbtMY74HKSeKsIS34baLAhgegl7F/4/mkLCdk+D54n/IOV6o7rZrQks6uZs3kA8XalVX2dDIgrPg==","shasum":"eae3cf57d4a0824e1ebbc1d1407ea5799f530ef2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.2.0-next.0.tgz","fileCount":40,"unpackedSize":160359,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0LGgS91Qtas+FJrPj+CBfaji6vzudqHt9EopgfF3LFAIhANREv5ViQZIyHJ8Jo9l68WT0hpFEcOIr+L1EIty5tU/J"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/MQkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWmQ//VKDN7+PNbwVkgSCmZOpcsLqwUpdnmQ7kxTqlSuzNieW/fG+q\r\nhgcgtTqOjze1liAb23DmnUgURtyTjCi7X2kvU04oVrTwZ69gruFMj3SpkGau\r\ndMOBlWNxnULkCl5L5HhW7lbkJEAdF5LPoANDOzE9wws4rLSaFldNx4PGd075\r\nZeCrnxJCwG/EOQsF1g1Jbsm7giyes2NoMAiX2vNb39TTBsBqSCEZauSDj1Xu\r\nLNi83sRJv4S4/aWZDGmNALtNkZ3TsG02Y8E0wsqkpzLpHZcH1xY0XdpJxO65\r\n3aNia+AIJwq2niznSfhAunkn0vSagsUZB7AZJYXPwkYej/Bg2kPE/l+DO1us\r\neW0nG+xg91Ze3r5zr+OfzLNMrkpoxT0n7ervMO8XsQRzF3kFkx5FT32n3Mbu\r\nKved+j5fqICl637lupwVFXlEI/XW9Ra0eE6OHDnLg+kb76D1KOKtPwFt93WT\r\nVmwVVdt78RI6aSR31LMU4tmwkFJgu2xu8Keeesq1+lQ+IDQkOdBxffgwN5YX\r\nD2jeKrwuotAbpJnKB+QRDCZwrh+mDwdB2weJiE0BAgdWbe1hMxqoVGC2BjVn\r\njZ6sqX5A/xJaWMXd+sJoql7/r3BwiRex0thnhFSEptFvSQKST2G/1x6Spmns\r\nDEQSVcbWreDrHi7Q/ZzcxMzYO1xZcGoH47k=\r\n=z8vf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.2.0-next.0_1660732451837_0.4762822909626214"},"_hasShrinkwrap":false},"14.2.0-rc.0":{"name":"@nguniversal/express-engine","version":"14.2.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.2.0","@angular/core":"^14.2.0","@angular/platform-server":"^14.2.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.2.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"1aa7b8b4c19fa1a3fb4cd0777061b188302e1eff","_id":"@nguniversal/express-engine@14.2.0-rc.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-0+LJGRwbndBeQgdhLtf28SJDQRXFG1YR4LRk8kZq4gBZfd3J1yHiL+rGBePNQU4G/KKuovaCTpN50xpdTku4zQ==","shasum":"f323fe4280023fcd2d23583d45ad5bc96f759d93","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.2.0-rc.0.tgz","fileCount":40,"unpackedSize":160522,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdDxwo0QSY2bPEJDmePSXHWirhlFj9Xc3r95x+zJj4zAiBHj44E0cWzymqJLnzbNfDmEq+iBB4qtvARiE6DcjGMAQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGFhwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5rQ/+MVAnfSD2ZYAdA4qPRn/wlmKcESjhJHKOyy88eweoz8w7JyLX\r\nwZLLxdQTzH5cHTe5/0SdXepOSk5eI1OX7cbOfoChvBGrCpLF6Ff1DOo/smJM\r\n3TuJX5GQ1DuIIl4PSV0tdC9BuEkXqANFXzd6ZoZ0EAZKx5FfZbEyCT3EmxhC\r\nE2hZ11e7EHwpMThtTJ8FaL6uSvvm5pn9qygPSygW1xgiTVMd7qbKD7OUcdbj\r\nSGiGBCBiJKghy+7U7y4RWEHr6IRdRXJevWXz7mV50Cg+qL7yNxjS4U8Ya91Y\r\nGwWwaf21Ppi53oXeDoCyER25UMpWsNxjcxPzOURH6eFa3an32XuMN4T5A0uO\r\nwhE85mUJaj+NXBzdpfhK+POqOxqfIcAEZewOIqlvJBZjfe0YWAAle57T+a0F\r\nX1/ealEiw+Q2rQnmtzMy5ZrQThwUx5zAzjwKeJlxU80hVW99+lWPjBATKTpR\r\nfYrd80zwAcDK34UP+ZJkbl2MbQZF9En5NsND/zwxbc5qGV6I2zMauFfDRj/T\r\nIHz68vuQ39+emRLY52zYIHXrAjoyGqsT15PzEHEh2PxPV2w9dYMNXHrzIDm3\r\n6579bDPF0+3bU7OsIZPEgkXtGoMSEH1l3Pb2Oy7kMb61hbf9aufTCUV5An87\r\nSsxNrW+kP2tbNvIwqh6cXNUYryEYNHHTZjQ=\r\n=POR6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.2.0-rc.0_1662539887887_0.3990644314642271"},"_hasShrinkwrap":false},"14.2.0":{"name":"@nguniversal/express-engine","version":"14.2.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.2.0","@angular/core":"^14.2.0","@angular/platform-server":"^14.2.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.2.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"7ec52ce0e1600c200d63a83a77eca4b6088f52be","_id":"@nguniversal/express-engine@14.2.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-t6JlyjXuC4CAD2YIcO7uTiEQ88qgRauWivrpy0YqH37M3jw7OE10NmSxTxsorN8b+A6xcHEJ7mXFVHD03gxbeQ==","shasum":"0d30ae60163162cd8d0e746f3e3be531ccff7e76","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.2.0.tgz","fileCount":40,"unpackedSize":160487,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDo5fWfe6dfNIEhaX8N2LCV4bp0zHX10B5ugZdDbQ4OLgIgdqZuxDKPEfk/pAKrnimP1aIH0fpWvc+3QZP1YFHeRzQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGGJIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrUQ//Qfd+sv9V2nJOPMhzI8Ho6/iebN6eFuZRipBME/BUBJezDwDZ\r\nGKBtmhXdb4B0EV1gbiuPE05NC3hhFUHteHFo4bUKG7mR2UdJTXJAfqkO02S3\r\nfBWKs/MUPuxmi04EWS9x76lvVbp+jVFnebZJGYrLpRiFY2ea0jWezqDHlheY\r\nOuzqWyeN8fTc++0sLEus+Z2wfwaDfI6wZwzyTu97snMl3lUsrmqlp3M8XCvy\r\nX93ntj78n8bjVUxem+361+vHGhu3MqOl1GXanXBlfVVq97hS1GAn7hn4nblX\r\n0cWAbQS+S2jkxAxF29jhT29pNjXASL/uoCqbqlSft/u62w4yHdlMN0bMLz7n\r\n56jRMDpjYOlWHDzCyEuq8jN9W5iXFUkpq2oZ/W9iugpQtOJzrTpdEEklOGPJ\r\ni4Yx17GwetV56wA890zrRgkRTjzLUB50JabgByAxAgyT+reEiojqYZKswkDO\r\nwbhclS1R3MlhdXX2R5xO9/oP7qIabdmE+r1SYr8GsvhIeHxqx7LZC5NbLV2G\r\n8/QrgmLlysTm5FBrUCNGZ1gLuoJss9/CmbEDkRuIHRsbOsArqrVqP9qFRWo8\r\nYGtd8grz8yWstXJgtpL71fOUPZIewxwYBfqcKkw9U4+IxXeSnzyYX+XIfyI/\r\n2ez6ygw/85vWqOWzCHAEDx3SdB//hYPJx1w=\r\n=Gr9v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.2.0_1662542408507_0.12284053973551035"},"_hasShrinkwrap":false},"15.0.0-next.0":{"name":"@nguniversal/express-engine","version":"15.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0-next.0","@angular/core":"^15.0.0-next.0","@angular/platform-server":"^15.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.0.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"fb06c5ba20f87e3f90ce94457237f063ff0ba721","_id":"@nguniversal/express-engine@15.0.0-next.0","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-R74VrY8QxZQktTVTq908UaBZhIImenNu9QD7QsmSkDM+8dCzYdOQrgV6aO+NAs7+85EyXB1D74aXiSF0gfE+Yw==","shasum":"e68173231c524579ace990b9b058925ac39d15ae","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0-next.0.tgz","fileCount":40,"unpackedSize":159889,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9OujQe4DWVh1Aj6AO24COZkb6rYPmAsTASnE3Z7MOEAiBerQBEJnH+eQnRuyIkA5QVKYC1oKfJy0/oo4C+gkWAyw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjR+R7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPEg/+OwvvWARLzY1UR+8BOo96QwRofuvY8PJUiBGSaRAuXtN99Em5\r\n37U7XWTezSbKr7WFKzyc3GsvsqsjXImF40WUR0wHudiDdJ0ZWwTURbzHf4vh\r\nmp6f12Yuyiqgy9DaEUWv+70bQ1/DB0lUEvsdcVtYxhqnMoKH6XNyrmdjJroK\r\nUugX4koasHiVxyC748iCHYQ7WPgdLSc0ycQtrxwDqkryxia5NUpxxCJpWtM5\r\nacX9ohWvoHPV3s0WHDfuyqCBhk2FLnZgCyZQbQQaLq3HovVqTMHuz0CgXbhg\r\nTThs7hoTB2Xszr683aHHoK6vSw08OaRFaR6KDrsE0mwN28QpuHrBrvKDdgA9\r\n3Swld6cIMOmY98KnJ0CHX3qjVqmguGEzsFnAWQyljE6ltjWOpAhgn/aNnrpB\r\n2EcyksJFIZDLecx+sdpkREMuq4HsBPO9GRDgOMV8OLqEuuJtAOoR+ucZ+mta\r\nMoNXfZeeB67h9kMgsKVVYKZotdWypw2v2odHTXBYfiNYNUrBn7/S8R009sLQ\r\nzCQmRLztgiajnvv3VeCrgJglx9/F8lXEJ5bcnzRIMVTWIA3WwYCn5XGqcDQl\r\nFEByf2XZiF27oCOvNR8PAVG4dL0txoOTBI+ku5PzcHyVbdCWgn0CEXfHV9QS\r\nt+D0NBM5pVuzwRV+qTJwKXbwPLjikHobv8E=\r\n=ml9/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.0.0-next.0_1665655931504_0.4311023176704307"},"_hasShrinkwrap":false},"14.2.1":{"name":"@nguniversal/express-engine","version":"14.2.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.2.0","@angular/core":"^14.2.0","@angular/platform-server":"^14.2.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.2.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"a8240aca7eecc417001f4e4fe072c574c60201bb","_id":"@nguniversal/express-engine@14.2.1","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-aQdDzG5/dMhcVe/Kp8VN/OXGvNIWuqxhPKhIU0CB9Tyk1/MVadmv5+JO9LaPR/LB8/JIAVvQIsLzdEvAaLmTjw==","shasum":"df95c502576b20ed5ebb6008396e4a92a3b3a10b","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.2.1.tgz","fileCount":40,"unpackedSize":160477,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCi5KpjZFVEZQF9OwbiKbLo0Jhjqg2XIGcnn4e6fqP+LgIgODTc8w+eQHM38VpC0ZBhKwIbUbV0g73AcT0HF4aRimg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY+WqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxlQ/9EXJZayQC/bHurgLFoIAA3Lvi2JhZuGdEeIxnEbgqs1z+C1NN\r\nN7yQL2/ZnGbGzDpcy9zvWaLadtLDY8bctui1OPNBelXIu+7tbfJvDBilubm8\r\nd85skV7+Vt1drB1QFF6PnXlyJPKhhbzZsom3PzTSVdtagvu6SVmcarWP3LZl\r\n4a1wpFuMp+PH9PahwFw7TrkOZuwvdltuIlYQtWlTjKO3y0Uq85tfzdNyR9ga\r\nmaItGQVhbIRg5zZdyu87xQfWquX2UGTpNgYAi71Mq3ySV19Bxa1j7JmNudFZ\r\nm7on9kXwr0Uh1kuRF8eSVIYEWm3gNANaQAexqOahA+uPq/aL2j8S1sWOk7gt\r\n0B1AOq613tiUqSWdqY6bLbBwe5H1Y4wcTo2NQzP3I1sQQvPVPheAlKBDFnuf\r\nQzDChCbL4rqaCh/VzI9hPSJFoFORXrh1T/fsybJmcYHhRTniwxOpTDUvrAzQ\r\nRnftE3caUF3aQ1R8HxNq1jRwthsyWALwX3SSy5tmPz6n5LiE06KhshRFQwIe\r\nMo/9UcAlifTutKDDj1X0vIkOaz83V9TX1/f1dXN14Ua0Dvt5G0mTY3MEy7Nj\r\n4UFJhoKQSem4xnowlDuIjZxQ+DFMQbZJ4uTWJtYvLgfu2GGo68vB9yH4Haiw\r\nSC3pvopaNDsdenc/f+ee7mbUBaIbew+h9nQ=\r\n=NJNU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.2.1_1667491242690_0.5156940724128729"},"_hasShrinkwrap":false},"15.0.0-next.1":{"name":"@nguniversal/express-engine","version":"15.0.0-next.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0-next.0","@angular/core":"^15.0.0-next.0","@angular/platform-server":"^15.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.0.0-next.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"cab1e8240c51c7ddbb3653257a67b3108c5fcb9f","_id":"@nguniversal/express-engine@15.0.0-next.1","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-pgEFK8GpTHc2WhUn/H50Jng6wsR4g3EqHgDFkXfaDq+23Do/JtBcHhlSf5QJCqN6HX1vfK8reIUvAwSGpY55Qw==","shasum":"9f8657101fb7db005e7074dabd7b9ff335612445","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0-next.1.tgz","fileCount":40,"unpackedSize":159879,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYrigdpLvZFEXEG/uPjYN904jJmFXij1Uq02jk8uIEvwIhAOY7no2Sc/ZmxM1PCuiSvbEoK4Z5AgNW11LnWouDxJa6"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY/IaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrq+Q//RpekF59K6gxV5YQNlQNiI9cyV5t4rxgJHFOKqLjd/ynw5fUO\r\ng04q634sZv6u3cZ3kJ3uDHme/ucw9tdTKXdxK1sxorMOM8+pR221xB1JX3Iq\r\nE79OCDRu3BpS29BsGRLWd8Rt3NA0zYyD/m7R2IH8YGs0R3fplt4xylCZrv5c\r\nKCPb3V0d1AtRekTis7VYjKxyh8aKFA1GXSna+LSm3iZ2jWw31+t/aj998KU6\r\npfGVn900iBg4cap3juAFBqyEGr/UgqotxzKhmRQ/VVsUsAQ9lLN7xS+9lrGD\r\nIXNwlnUzWvGxDyAbiIqyTEmt9s+Q9AJSxbqlfiK26tVjkvtGtfF1ardwoWZx\r\nWq0SCEUyJ3xSJ7GHnyz+kIZGSeMoBUgf/DF8IsGdJBh1c8p43uR/kcqFvsfP\r\nl7OT75HHvTgGgwmHPVGaxIm6wCjeWGdfw7KuV3Lg8BwcxmNMyYkLWYkJTTH+\r\nwniutvIv7+3NrpEYEpVFI3YrTbpfqM9BHoZoK7atVPrQo1Q1sc/8X6U3gYI7\r\nssbg1JMpPe3KtjUCpCSz+guk7ozrpAjYbc69Ng8zQ6qn+I4BYbg3AvlNvULC\r\n38V41i1KFu3FZyef83S9nYJFK7sCQkkzDVzm8xy8sV8eV7onVp2fjiX8NNY7\r\ngjcnillMZAe27zSfy6ngJFb4MmYJb9PjRlY=\r\n=Sqwq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.0.0-next.1_1667494425998_0.6589935774491762"},"_hasShrinkwrap":false},"14.2.2":{"name":"@nguniversal/express-engine","version":"14.2.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.2.0","@angular/core":"^14.2.0","@angular/platform-server":"^14.2.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.2.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"10ba12c206da70771b8649cd5150ab608425bff7","_id":"@nguniversal/express-engine@14.2.2","_nodeVersion":"16.16.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-bn+tHctxsJeOdetWth7fNnfOVfOKoXdsFbnXYVX+a41JMpI15kiX09yHPQVG2ZyoHAnY10JJPQJfPMP3M2g6ug==","shasum":"dcefc4c281aafeb72ea44cec9fbba5ec2647d75b","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.2.2.tgz","fileCount":40,"unpackedSize":160719,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBclYmufMF9csocFvKg505lSa/h1fjLBG+VOPZHwfLiiAiBCmGNUwQ7k+SNeusyJJYPhap6vnYGTqq+uqyw07xMpkg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja3EaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpfIA/+LnZocqHDf0o3XW5f+EwhMNwPoi12VODkdX3ySi+kku1fUSGr\r\nsER7tVep+v1/rqGPMjp4sf8z5KPAUWF+3Q0RcD/FjECz0Ms9xcWq0fyT5UTu\r\nK391BjoX4rMBx8xS+4Dj8osBGxX7wxDrn+SrvzTNqLzz3rcqv6Jcx08OFfv1\r\nCkONytWyngFH2W+Uldy5M0I6T9+QrRZykYkT4pMUyvL8LKsFjFSfWc5okR3W\r\nkCbpSpHs2cRH8oyM6PgQHH9H3FMmP00k42FV/B1Dez9KMyWjHAEnJAdzA+j/\r\nWjsM57KKRJaC6e5A1TrpWH5heSSvSQz/020eQojFzXuxslogOfm+BuN7olSr\r\nhvXWBpIUhK+5Alha5FgIE3pQz6QoY0Ks9t53cY8plEWoDKq0VUB5FR9R8Q7Z\r\nEyFg2U23vzMNVIGqAbJ18HoUsTPocHB/XAXStXNYxubZaWt1+540KFjcEV0R\r\n07RAN8y+OHUY6DCoZLzcFjLD8dJG3xXBdFwOoiG5YR3AXjfEYYVWpT/FC3ar\r\nzMuJ4UK/6yBZcxz1PFOpujZJTwQYkZYG+pAHEcFSkQYlGdQdKSvk2APNAUG8\r\nhUJasUSbId3Lvn58pcnNnY93C3fRwBuc07NQpeQA6Y9vYs9Qs1Q7tiVey7WE\r\nF/ZjthtAUwBipW3Wwh5rntMmsVvjiWGkoFs=\r\n=2NCV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.2.2_1667985690333_0.7238696898508443"},"_hasShrinkwrap":false},"15.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"15.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0-next.0","@angular/core":"^15.0.0-next.0","@angular/platform-server":"^15.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.0.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"5b27edbaa2d88651fdfd2c3b537a19e0e81874d8","_id":"@nguniversal/express-engine@15.0.0-rc.0","_nodeVersion":"16.16.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-5RctFFIROvc3381m16qHNsbuyDADpAc6+kjuxCCu6s1MFnbOI3JrSKcOrvz0MDPfsLNimniW6rwVg3IaOoYncg==","shasum":"e24aed3c393d153ab5be82a186d18ffbaaa88249","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0-rc.0.tgz","fileCount":40,"unpackedSize":160107,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBHVvjyDBeH9W3xm8sQ26zzsXUlQYGzScp3dhgb8ins9AiA5qyTJAcrKpB8jqRzjKQ2mCLW0PGfmAYevDTfdKrOJ1g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja3uXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrPRg/+IhjN6WGwGMPX/Ny6P3bb1DrLz67kPfXcalZhTkfSutwl1cdE\r\nbXFxBajWOGRPXTkQiUfkP/yLw79733FrFIrZRRqCxD5gZPRa5y5TYvH2d1Bn\r\nBq+Ln/b2DL5pR6nZkejTE+UyUbFaF2A/SfVze+l2kmGsXyfhjzcFFQkdSpUg\r\nMM7mIxYAQTL3ehxJpPgg4Er7x+sRcbp9blRB4e/HjS522pY2MlZaZa7uRk5y\r\nk0e0TRQ4OY1rVWSKQ2GfntYzy7j4QWAQuOBnXHJoKVETwNjokjQxT8XmT34q\r\n/N3peAVfCiutMcU1zxJxc3wgattyPDQ0EZuUWIyKbPjd+8MZchFd6r5yvywz\r\nlxfHYFAfVogHX+YmlfDtOxbCe3FuRKysT5C+uZtuZusUeril8LsleitRxhdh\r\nivHbwHamQxioVsVqIMCiEdCIJFQsQF3lLt1T7MiWe2CN60MCORCYPHYqxzbs\r\n6TCA6eApL9YCu0+GGDIf1NmfxBbiG3qkY0XT3kdOHy5U6oYGzrC+MvB5VNYv\r\ntOpsDbuzZBGPtoe+e6Ygw/MZu5oyYVru8dvzMlRoQP9GTjkpjn2XBr9IcrZ6\r\nc6hf7UcKOQOvTLGO66VMNWggHeGBLW3S83VM43hq4EKB/F3y9CddYUJkKiBc\r\nrTPvfiEz2m883cJOdmDgdYlwt6YKiN7CcW4=\r\n=OFbL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.0.0-rc.0_1667988375054_0.09970998330334524"},"_hasShrinkwrap":false},"15.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"15.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0-next.0","@angular/core":"^15.0.0-next.0","@angular/platform-server":"^15.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.0.0-rc.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"4ce6e5ff33ab7159a6570dda8319e67a032dafc2","_id":"@nguniversal/express-engine@15.0.0-rc.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-V2g4GocUzqR+QgTX+z2XKRrB/UkZ6Uwd2rq+tNKhvfyCnC7DyYCKzDB04nvPWlB5ciVjtnlJ/wtPXU9R8qLmDw==","shasum":"89b8d5658079bdece2d19725b788ae125f3c6874","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0-rc.1.tgz","fileCount":40,"unpackedSize":160117,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAnnukaEyBUv+exV/Q7laWhO0Ve0bBtzogzoAH+n7Ta2AiEAh4jmb8rFnf6BjdwxWb/1dRRpyPE4F2jqyy5VEDzKzgA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjc8+dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDtw/7BdS5ar4J8J1Lx1UX20tc0iICsrYLLEzHJ36aDgN728n+khhH\r\ncNycVUVCe0h82Wv2dlbRbRciM3u0q/aJcGA4hJ3iddMahhugimeIw7Y3yQNp\r\n9+PHxvmbosLTYkuGS7CP4t2U0gmFyEufnXbPfoVrvdVhjLfdHbmqYv+AQc6u\r\notJpBeifNa1b23l9w9qmbXD9j5VadjeLJpkd/W9VN+x+pLTR6lGWk4RBma/y\r\nz0bAliYOXX+WSki197h4ylyjbBiL2/N8KnZZvK4WfXR6vpOeItRjaWj9jsZs\r\nfP9MlU24v3s/ecGOApoxRVOW0ShdCvDN+QjUv6yeyBvGsFV/zRPJUz5lzXQ4\r\n/5A0/kiUhNv192M1iIvefJC5m31UaaRb2Upo7KzTu3rhWGQQ6wKwHg8IuKtZ\r\nZU9SyFpmkTzmJMl4TFFLoVEAho+U8srGDCw8Sdk2H4RMo5gMulPQ3w8liynD\r\nUtpGQN0PTSf/cVSBBX3gzFc8W+k4vSSiP+rTLxXhgpNfCqWSkOeGWEkUNHc/\r\nua1eRzHs1TNOYvrCi7fTR3md/J4IL/PkrKOovuM1uex8YF1L73E4goNESWIf\r\nva7WdwJXLKahwQh7LZpiz2XkbEr016Vs0q3iPsVIyGjc0gmMEaGfAwRsxMGp\r\nK1GadF7wfMWL4dC97IYSgYFc+TORyKPh88Q=\r\n=ldMJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.0.0-rc.1_1668534172935_0.4537835633682701"},"_hasShrinkwrap":false},"15.0.0":{"name":"@nguniversal/express-engine","version":"15.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0-next.0","@angular/core":"^15.0.0-next.0","@angular/platform-server":"^15.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.0.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"748e1097457157afd67e8ffaf27ba7963ac19271","_id":"@nguniversal/express-engine@15.0.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-tWk2/oMTQo703VsTGpHakm+2BH1bXQbmD43BcYUcmASJDIDmxSBCEY6zwT1TjrYST0keBChJD9jAoKesvSPB/w==","shasum":"d7861c9ec9502e81d58dcb0a2b8c8ac6eb64535d","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0.tgz","fileCount":40,"unpackedSize":160082,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBE66H3Qndg3maY2EVfYO4bF6x7RzDro7HoZ3IW9ah0GAiEA7Vw89ryuQnCgjTQj/UsVDCiE7Vg/JtHcIOl5UotIQHI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdUfbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTwQ//QISwd90szYtnIjn3NE7CHAvEYw4u5MowQ9A9h6pEJSyZVxYz\r\nmhAFZGz7Yb8MzYOVypDSp72lv7SNNStqwSmJJs3rNa7FJMhff4u9hrAjOkWY\r\nhFb0Z5zjQxXpWzzFl1Suy6kHrjEQqy7bDiy7UCMcGFQlJ3V7D31a1svFqE9u\r\naprVPTPdo+GRGveJPbd9bMx/a0g0NoptDFWlhD569EfXmz7+7lWaWRwyX89C\r\nJY+hHUtWl4SQPksEwWhrKXCPH8qgtCVAYoB+TTAraHT7xEFz3MOcxeThRoE/\r\nVZPs00l7ZCzgrow9PvEniU1Q2kG7qSZ7MxScX4Ntam/aYAGt+Nsva/pr7ZPp\r\n/TO9sVfxTa2YX6E++hojWYgt2o86DrUhj8HzVqpIbSJKp4W04OsKibVCT0xb\r\nqZvIO/LSxyXHj0mas7Gg0DN0CO3T4Kcos8BIbhd3v4u6R8GwRsXznhC2Dd/O\r\nFOAYd6S1M9e+xR+pgjyVKufwPVcB1Av//5ykBO1deNfBlFQ5KZ1OD/522pk6\r\n35CGERWVI4kK3OJDaOz+tVvPHv0SegooewlAhkv8lwlT7ThDf60lkvJcLfur\r\nI29NyZOXiNIn+kbPxH3T7CslyqX8/KDZoeQQgyKwdSzQWQUMRwnw9oQWRLYc\r\nki3vcKe5+PFaGRma6kCTIkS+GWv/CaeCIgc=\r\n=TNQl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.0.0_1668630491732_0.4043832350229186"},"_hasShrinkwrap":false},"14.2.3":{"name":"@nguniversal/express-engine","version":"14.2.3","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.15.0 || >=16.10.0"},"peerDependencies":{"@angular/common":"^14.2.0","@angular/core":"^14.2.0","@angular/platform-server":"^14.2.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"14.2.3","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"86e5b3a3d6368eebae60e21018efbb4e2572bf16","_id":"@nguniversal/express-engine@14.2.3","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-8G60LgQViz7caJbmL5f0Cw3mUtchVOiLUf9q1PKKhPVYMv9PVs1roKWuq1yAd4ZVMztBo93gyPt8vQGOo+C9WA==","shasum":"f35f7a6afb67d0acc555d29a96f575475ceb402f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-14.2.3.tgz","fileCount":40,"unpackedSize":160729,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHQSuV+QMQPgWW/dIXdVE2wRUHufHtEtV5zDHinR7Ph6AiEAoe9KagPkmLdFW+2n+pdp4hb4TzWRjeaNWkFDcZqTtyo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfmVsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPIxAAmnsxTyfRwm6TTsm2W1R1juwhMn0bGTyo/zfQAvnuMBHKHWcm\r\nZdoL0gwNZ9I0hqir6MLBmPBExmHnHcabrzu2WVRIDcEGSlsIIFMHkqlcZjBx\r\n7FjYuyQCJXRbhyh11mac1g2jXYcwbwGYYkWcExpIJltqYUGJNc/8PfyvcrKo\r\ne6biPwVU9NF2ZGKV1Q+T5WDuo3Os1E9LMXw6oslhR8b84BQvLQnEdD4Hg1wc\r\nPG7ZDXhM29W+ErwHOKsbfiokgGCrbKqGWAooBM6f8rxxBqo8hnXi+4HXvMSW\r\nAsmXUEjeZLxSniASX46+mssXQSm7djLJ++odf/5h8pfA9JTxTbZqy06LuMRC\r\nnbfuBh9qFFQUGtEVUC3u+q67tNJv2N38KlJUyjDtX/OGJSvoySfy9RaLN0pg\r\nqgI+JK2Gkn0Euz2ptJmhpENq1XmAO9VGCQCfk5OaUw8UjhotCnRj2geJlgH0\r\nuBcc/YiAG6VATPgsutu+mZbCxbtutoSXZbFUZFgKN+ZzbWAQBZwdxU+N3NPv\r\nT/swNSswQ03rCjVErE/NQrUkNlfHhBdAI+oLMSZ8vgoVZGq7xInW+hiG1P4h\r\nneXLzNnCWEpcWkPOy4ehj6sZxfPRRe1uP5QoLq8PQ5wXtJadQ+085nsYc3no\r\n0Rolj4eBtuNrB7oWp9IrOLgGW6X2BiR8KxQ=\r\n=oY/W\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_14.2.3_1669227884673_0.1096143705265975"},"_hasShrinkwrap":false},"15.1.0-rc.0":{"name":"@nguniversal/express-engine","version":"15.1.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0","@angular/core":"^15.0.0","@angular/platform-server":"^15.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.1.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"1b3616c3270acb6dad6311ea1c6e43c0ba542403","_id":"@nguniversal/express-engine@15.1.0-rc.0","_nodeVersion":"16.16.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-VY/Sf0mc+Ty86heyRYIY2+016wLFecdHoQZRrexHGdu1HGNfetesI43qrwn7zNuH64GWC+5I/KcMCeP+i63jxw==","shasum":"33c051ad3089eb92b2710b0f7226dd350c0d5626","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.1.0-rc.0.tgz","fileCount":40,"unpackedSize":160088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHStJMr5Qp7C6FUSOWnCcIswv6jdR+r8Orp6Qo1Xr9SSAiEAubgkSJkKZV6/Ia5QFwpZR7a+bNUq4fDFRmOcw3eAUnk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwDVcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqHQ//V+un6pp4mAfJqunQwl8572NPgpZqYp7LQGe21DmPyySm2yEL\r\nb9DtRAYCxVG6MNgWcD/rSp/8/RcmENKdRG9RQNFKUzlF9gkYWCnXMEX/qaOk\r\nzAmuQ8bOGPVWlP6CLGz7NVBWNmelEWR00BkeNr/rmwx0QmKtWcZBgsQ6qoTH\r\nPRQQ8XDf7ZztBeZ30HqtFB6XIiOLTn61jeLqSv/IQ3CLV/QbXvcVcEaAudVJ\r\njknQ5yJ/3ENDI7iscreVSF5rZjISJyfYgFPYRmmL6QeFj4jAKsrwji81Z7iz\r\ncWSKOw0R5tcW5T2SUFNWK9Qm96wLDYlZ6eXz7hqcxTHWVTFb+Og36myQKs+q\r\nzJW7iXNgm/9GMcct1qbyxjii3KdaA7Cdk/eBIhMzxCo1DlS+1/hOYxXDcYtT\r\nFpUESSD115BfUBsSxZO0chg2UvPcyhRE4kP4BrK0myGqAX55DgY7PlIx/37f\r\nEOMS6Z5XP8dYWT2IK9RPJ8NPTs+CQTc6GBqGxTcCijifHhMyVMOBpUf+tCQ5\r\nsKbTJc1u8PpDsHtmtZqPq82YqP23lhmuHXvdnz4A55PH85u2bZVtZZTSWatY\r\nZOumnYrjLZkztIcbSMsVtLGz5FSqd37X5uOwWB+LwqDWtvGvmTPTp5Hb/fd8\r\nnmrT/tRUqgexZKbo5DWvuAVVGNTGA0ik5qQ=\r\n=16Ea\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.1.0-rc.0_1673540956685_0.27671102499740674"},"_hasShrinkwrap":false},"15.1.0":{"name":"@nguniversal/express-engine","version":"15.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0","@angular/core":"^15.0.0","@angular/platform-server":"^15.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.1.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"fb54dc983c69988f8c793d8319ef2750513c1d39","_id":"@nguniversal/express-engine@15.1.0","_nodeVersion":"16.16.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-BwasYI7Zv3RLLmHLSFH/V0zTer+WN0VVpBIZLSQUvmUPMEgKweiNHnapUXW0Ns4ibyEBSIvK4hOQmPhBSutPuQ==","shasum":"7d068c967abff51e0150491b507da1472a62bae6","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.1.0.tgz","fileCount":40,"unpackedSize":160053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaeJW6qvfWIV2zLE8g6zllCdjLj/rYJcs6v929Rm98qQIhAMJuxXnxalfF0PhLk7U9U6LdHY5tkn8v7YtZD52UOiND"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwDbkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoIWhAAjEVterk+HBIIH2r2eJCdmlsntZRMDMviLXcDn1rVjRFyu+gz\r\nxRSSC5oBhz2Dbg38vtM1ef/Sa3Su9ejJXuwE6J3wB9ZvBlxU+/7zhUVlE6eI\r\neJXK/RMY2mKJEv6fJ28tUYleyjPAKdjvzn8TljsOZPgeA0YeHLZ1Z3xso5YU\r\nBDfRN/+7o8JhhqvS1c8FN+CGgWBtFBLUygkzAUxB+1S6jebnJgHA7w5m2HqA\r\nzk29OCv/fRqCilgtp8B7SPy0fbkg0QhHoRa7vPAq4P0nfKtL4JeYJKs5uVdc\r\nnGPys+2QGF6Hay6r0UDZ3zXopw9LBUn45j96enLi3vboq5P+7rM0RQBbVRl6\r\n58WsW1vJKM2i1L2VCOK53UMT6U1h+lq0C7oogH1xR0vPYNhXrzgd7vxAk3I5\r\nAySWzcNJDl7nR9cVlKKMenG29szTnrfkO0stVBztji3/XVQFwRgXClfXK2vi\r\n/uVSx/STfN92m8klpQf28ARl95PqS+phmtYvx6AtIepMMmfa2vbQdZqL8RZZ\r\nkVqiGjV9iTmJ5HW6rL6bIp1vXz/VaKoANfwt0V+aMWCHbBj1nHfnNdE2F1L6\r\nRFRt16TF5bY85KpIgvAI7Mqh9Ou+ihp3JgC+zmtEn/EZ1f+JgvrYIkxMw0Ea\r\nwe3q0i0tTLpGqFmJ5hM9Bhj/wi0AjplqLN8=\r\n=1sCG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.1.0_1673541347952_0.1711459857751303"},"_hasShrinkwrap":false},"15.2.0-rc.0":{"name":"@nguniversal/express-engine","version":"15.2.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0","@angular/core":"^15.0.0","@angular/platform-server":"^15.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.2.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"9137db43b6c6830d96af78480017101b11c30a9f","_id":"@nguniversal/express-engine@15.2.0-rc.0","_nodeVersion":"16.16.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-tiP24/C0b+crnBXI1wQh1oeXSvksF9+M1/ZDjKQXR6qqFVOcwF+ntAfoF+TWY+w5y+F+MZq9+/Xk2XvjXQEJEA==","shasum":"5bac126fa471b789cfd50bef4820fda227edd5c2","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.2.0-rc.0.tgz","fileCount":40,"unpackedSize":160088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd+5Ftz/fSA2Fh60EF8Nt4kTH2Mm+CqnWjcJXcgKcDzwIhAIo+N+9nHOCtbiWYgu2NEUAzRxi9JjgTLez1sZ1ct+mp"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9yvPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJ9Q//XdzXbi4n2dVRBVSvkInfm6mXLsTJolYJnPiR+TEVcU1+FVzu\r\nNgiIOdw2Lr+rrFVxAS18pzHWzZahUTAEggd5AVD56lUSraM/myhtuW2rXYLS\r\nuTmRI2NCoWUQDAnJGJwTunQ5b+F7+L7qtOrrf+ATDBUPQuoZr1+ClGn3z6DR\r\nP6B5QVArnqidVZ63Gwnpi6sMHLz+pkiQx3Wr+aR/oeqz6o8Xpk/S4o39Axxg\r\n0sjvUS23WnSDsdgPCKiW4GQmXoJHPZ2ICGxDZ70RhWnmKOjKMqjEdzjCdLcw\r\nT0QEArW8qQnyZ3JvTNmEW8uucKVO5kMDh5EojbmjXy3L/+BqkP3ivEHG1zUu\r\nkMj+kFxgl76KecYKEHiqigLjd1yfal+0XVdE1mOQSxWZIqncz8ydEs0twExH\r\nnSm2jl4gI9LEyg8OaWOfOcyOCSVQhWkZbT6wKSyHPdYO8RyUxvdt7WzpvxO7\r\ntW+M7e3BDVK30JW8EI8nz1sd502rCVlsL9tN/e8K6Zti3IR5gYnH8EcTNgLV\r\nftPknL6+Su+lyfxTBSNBddRV+tSs+faCslqH+oRosFBVI+X19pclUBihEqJD\r\ndTnWBJ6q2zAl6LqnhcZZOtXsPDR4FHogwm5+Oe/FLXttZSO3CPftedZpYFZX\r\nfCwZKK4dK2mo6UKxlSVSR9JXesbppYbOxAA=\r\n=l7ZQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.2.0-rc.0_1677142991669_0.21705903541494598"},"_hasShrinkwrap":false},"15.2.0":{"name":"@nguniversal/express-engine","version":"15.2.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0","@angular/core":"^15.0.0","@angular/platform-server":"^15.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.2.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"da1220cc5eca91763f224683ec92100a2a7f2f6a","_id":"@nguniversal/express-engine@15.2.0","_nodeVersion":"16.16.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-WDHx8iouuAlxaYQ/Sn3Qebv8ZH20O73yt9Z7xJvPM/8uPvWn/zk3wuCIWGPxars7KdkUa/NbDkRmgTlwqUPA3A==","shasum":"93c62f9ef08f15fef3b4afe2b2a6301606a9aac4","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.2.0.tgz","fileCount":40,"unpackedSize":160053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEoSyNbNPjJL+Xlshwkqn80TWJf9vUtyTs9EoUKgFD2KAiAvHFvA5kzOm24i4BAuH3+qq7XoqCrwvN9kUPpiGPW23w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9y4kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpC1g//TU3s+sZJQNl4zjHTG9UCCUiyWAwLsKf+MKKBsYcnDhyJgven\r\nknZdtoaPa0bLa/apCq40Sh9wVApj18McPqvY+mAAD1EM/eaMn9KLVFncpgbx\r\n5SuY6VPAKvFZd54Pu5gWTuX4vA0gwuhX2ea+fo/iw7EHHnkMRNcsYLtWgs8o\r\n8lyznej6ViiIfBVdnHdODKG+fuvuuGYU4tl6jK+FwTPh7TZ34cp4vaiSK0Zc\r\nDYktDB0IAgyYA11iLNhJyslDYVBIHjlPzE5tjj5S4wX9cLp9lods009UkPzJ\r\ngu7AwoHkrNYFKDNMPRNirGvM3Hgep/YFMNQiA+F6NKcrOHHOmpt++xrAWSwd\r\nNVJes4F7m9eZjF3ZmiQ3Xqq+swZzE29KW4a7C6iUzJnCh+iVkA5YUK9R0v83\r\nuk0K/s+tQAKBxUbgxMJv6S20G/5yWWRJnfTUghtzAS4cqMbmnVNZPNuajvJ/\r\n2VKVJ3LmbGK7hFJKSN28C8qY/wvb+Jxoqg3qCppC7P05ibpqxSgriU8WG5uD\r\n0iOKQO2Nof0Ny1FLMgycIxcw/sXx2ByBxlJpPoc/WHhgVQCt6VbQeWX3hooT\r\nOKlR0XgtjMi616ZH+MancTNFXNpocl1eXfm6F96fcHiKN5zVvyMDThrv5WdN\r\nOoX8PiMhW6YulXggId07BYC5Ia3zztA8me4=\r\n=Nu+L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.2.0_1677143588669_0.6978444833749793"},"_hasShrinkwrap":false},"16.0.0-next.0":{"name":"@nguniversal/express-engine","version":"16.0.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"eeb780abfd1c0e95d7c5a1e4119acb2648368960","_id":"@nguniversal/express-engine@16.0.0-next.0","_nodeVersion":"16.16.0","_npmVersion":"9.6.2","dist":{"integrity":"sha512-tFC4Vq/oKW6UVOeNyHRH7koYwEaMM9FbMZAqhRwFkVzQPfixAlxxvkj/AiPpV6+CoHYUum5MLtNiVkhTIlh8uw==","shasum":"cc8d613b140858daff8d0e224d8b70b25618b35a","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0-next.0.tgz","fileCount":40,"unpackedSize":164769,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+aio/pk5mblqzKjdZNJFBW0fXxp4Q5Gs6Gdoh1gNHSAiEAvjTOUtrdo7fPH+pd+ypUx/pqR79ldfj9xg36/aSvyGc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLVBRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZAg//SaSEktyVy3m07qW7Z/6N2FCHWK/YkJuukBVUP4VusVg10m5D\r\nFKaoo8vrJarMhF8+1qmSm/HF9y9sMVRpmnE0WN/w4O+pvAq2EjJPkxM3cVOF\r\nfZv5IQ1uh91CkC1mFG1rFVpdZ/3V07AA2MBpAfsvNrnNtD64W/twEO/8RqY6\r\nO/i60nKEhOMF7Xa8yZo8vlzJBu0wbJAeLUUfHBBxOvlBzIQSI9hDXaUUG03M\r\nMwISwvgv1PNgO81GzVNjv+rbUTxNjYFB7G/Ihu63r7lz92IbomfNUW7d7ToH\r\nitnxuqhUk/zEkUelabEdhzDNaqslqTi+uyTvn+OkvRzPpZTtS2hV/Rg14VoG\r\nx83fLqA6/RQDfJU94MrD1h6x1/M6PZb7DfwfhVkmujFo7xH8ZR+LIsA0Xxl2\r\nnrChZsVZT3CUDY5P0WJM5TQDarm8VGGcDjo5S/3fhSwN1UyYG8FGGKW5PYep\r\nzzbtDgz6hhWOa22ZaCxhMHRT+EMSDvNjC24qTNychnzVM+huYAGTqy3ZOAgt\r\nMJpp2JVsUCaPcDPUdQGGmRSYl9fDGcK4YgpAX5Tze2TX3+PAwfJ2zq98THtL\r\no//Dp8fIbwZ6smr+qG5OHsNitfOh8AQ+HA1It+D6mBTd8iGR+XYglHQbOnkE\r\nadWGQlhAlsrbWGPgf8+F546aJCtiXALFne0=\r\n=a71L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.0-next.0_1680691281416_0.800839469482199"},"_hasShrinkwrap":false},"15.2.1":{"name":"@nguniversal/express-engine","version":"15.2.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^14.20.0 || ^16.13.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^15.0.0","@angular/core":"^15.0.0","@angular/platform-server":"^15.0.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"15.2.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","fesm2020":"./fesm2020/express-engine.mjs","fesm2015":"./fesm2015/express-engine.mjs","esm2020":"./esm2020/express-engine.mjs","typings":"./index.d.ts","module":"./fesm2015/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/express-engine.mjs","es2020":"./fesm2020/express-engine.mjs","es2015":"./fesm2015/express-engine.mjs","node":"./fesm2015/express-engine.mjs","default":"./fesm2020/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2020":"./esm2020/tokens/tokens.mjs","es2020":"./fesm2020/tokens.mjs","es2015":"./fesm2015/tokens.mjs","node":"./fesm2015/tokens.mjs","default":"./fesm2020/tokens.mjs"}},"gitHead":"eda31cc496f8f898f789ef0e329395b1d993ada4","_id":"@nguniversal/express-engine@15.2.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-LHQfntApCGvKREJ0MvhioM1TdWnYxqnYRgX3JoWaNVFPdVryhWLPv4RCjqV8QiMe5DQKd6Pc5J+VIhYX5hwjPQ==","shasum":"4c99b77cc690e44aa6f25ea857838590c71e8237","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.2.1.tgz","fileCount":40,"unpackedSize":160053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4I1t6y7TvTQ36PEFSbZ5debqxU9RUjWs2r2rRsM7WMAIhAPLFGD3f7KROKO1+OEO4/WV1UHu4s+q4AvXNVFZ7woe4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOCyQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp55w//d4TJReHKIEnm+qegCx2k5c5ybOjn7+oTobT6KjseWPTWM3nI\r\ncBGXjExDg0WXOkzuIJy6SC0IHGSNFkev8qfslHcK03gR80xWK2mdfH2HUex6\r\niK9mYyRkY3YssgsGYmm36w1NFVwbe/x1EP7L9JkfzsIE70OCBOKgpBRR8/IQ\r\npnLUjmimbb/HY0U2iJfmx/+Ih7Q6Gir/7TDgJ6UiHc51QFjKSafY5gY7HuHG\r\nQ6PKy160tvcnMUEsmlMNhaIFuccaKIzS4yHRUj+FmaGD9FvFoiFts7Y4CRvg\r\nF2ClWDpp3W3IpBGgjh8FlT99b0uA2vWSA2e0gpZZgLnNWPEWAbj3joijakLM\r\nV6BFteIz9C6197GDCq56isVfqqOoX5VAmecXkD+eJHAv8tygLDW2cSEFc4ZG\r\nbNmhjusLAyh+4zhkxlPUz7e0T/c6yKNsc4cMfop33mh+uMWapa+MwOcGOOSO\r\noufWoFP6S/sblHIAI0VdNmfFMOX84mKotpJnE5VkzHKNfW27eR47ZkBsYBh1\r\nEbzor9Aa4apcsuNJOx9Q4lu3/Sf3oQOs84gPspT7E52qcvvQdDzwSl5uydb2\r\neiupSPfEJypK82OGxoPP44Am1iKUzbjZOd7lWGjGTB6bxfpKyjKaYNE47WYn\r\nLJxcx4f6ACZTcxohrI+jtExTqGZcumcKwiA=\r\n=n8i3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_15.2.1_1681403024603_0.8117208786986896"},"_hasShrinkwrap":false},"16.0.0-rc.0":{"name":"@nguniversal/express-engine","version":"16.0.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"a92772100d029541715e01cfcd712797e6095e43","_id":"@nguniversal/express-engine@16.0.0-rc.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-pfI3u48ite4F9vAIExqhPIP+CqVc7ELk2tXOcPGAJ66Aodj03+/D1ieuBvF4MLdRCmC2+dMagyx2uaKn9BHfcw==","shasum":"4b78dfaf49301aa0f878262bbc75eeaa00657f5f","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0-rc.0.tgz","fileCount":36,"unpackedSize":148934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRG5KvKIic9nEX9s2bwe6mmdjsdDDtvL7f0tvLj5UFkAiEA+DT9nlQxpAEUVxz9E5RuUv7gMpBp8Nc9oFvmjCkK6xc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOFb4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnkxAAoNXIUQOA6HYRaXmUGEkQY2ajiaVN17bdSqUpSVZT33aSCDSN\r\nMnmjpwgN7ldM1Tl6mtvP+q4CpBey6cXpoD6HrjXY+t4L5bIh4+3O8GzPJXwD\r\ndxIiOpKYrkB1LrurwWlLfeXjEiL2mkt+FfFAR69IdU/d4HM4CD6Hl+tAxgIW\r\nAN/M1ShwNn2T1D9jVaqCKvR04IR4PXVMABzBEtK2/mRdMyM1FcGoEBYrjJvk\r\nSVYVyWxEs8t+voLkKx+WIfTE0Qpr1Sq/m5oqRR9YgsZkHZm3EOzZ9mczedKo\r\nXsctstiQ0HdvmHRARigkfYorw/42/8Wfcy//XMCYvcFdgaULC8JHZPI4vau0\r\nGdd/1YL9LphbjeSqo7fnIhDCvFnNJtNLTzgl7A+CRj0Pq7LEYeY7FXOUMLeC\r\nZ1ryqQdS8wwETWj6jE3E6iGUcFlZDDHz+29yAbCKTQRX2sZopzqcSdyzHTGj\r\nwrME0FPfLz+5mOlRRRpGy5J3ORnwVTiDPUl2f0QMxrrJQ67NNsny1Hm2mOb9\r\ndEK0LKEKWwvwVcU2kmWMAXdsVlduKG73+h7JXS2LQUV/nv8iZKUMUEdSE90B\r\ndTXZvQSUAIZ+BmXNJ7d7QnmlSC7rT5CqPLTs6KP/pH08/CNWSKhEhc+u1YjT\r\nFXbDOugO25cPwZFwhd6dKd5XG9M8Mnxw7yk=\r\n=JarF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.0-rc.0_1681413880362_0.3591788468128361"},"_hasShrinkwrap":false},"16.0.0-rc.1":{"name":"@nguniversal/express-engine","version":"16.0.0-rc.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.0-rc.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"06e6fb93d958bb0db6287e963270e5e226dc7512","_id":"@nguniversal/express-engine@16.0.0-rc.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-OfGPJLqWr5i8PXISRDbylD9FugITZPVynfeu6xCYIsnPgyB8io8VyoCw08S4wmUEtupYwZv8g/U60UZNN60pKg==","shasum":"60a026004ea4c1aad059c5f6edfc095ffc7416b7","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0-rc.1.tgz","fileCount":36,"unpackedSize":149004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiHplwxJyPSlMaVgeGFYTKvfChPFF8NWXOgcDLcCCUnwIhAMoZ0Onoyu69K1wJMO0oeac6Jzuj5cpxzWc0AjiXC9qq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQQkfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJpw/9GvJz8k3gKOwpYJH85Xz5NW5AnUNxMSzSVZ4/f0PliO8cYM7X\r\nk4r0zO3AAWOAO5EwpDz4R2Tgp+PJ/+jHBmtffLsVW1lh/MEpJ6YT7h2bvVLe\r\nA7hArJlzGwx5FzF5t9tlCmVx6Qot6r7JnCokJpVro5jcKXVvjBkxNAy6sL49\r\nHbgDfhIaItzv5msrk/UHaTHV2a75ku4bppv/hKfpgqV6MM2H4430QgVsp1Hi\r\nM6ovT5pnG9/QR8ZN2ohO43PtFFfKE0EedXimb0SZZkTSR/+fJi2ts//hlRz/\r\nFUs2UoITW4C/tPNy726tmsl6P2pFu9s69WuoKPsY9jP7zJWn4pXsuVJPaioy\r\nYxkWZRNX3J4WFL0QmO1UUxqxKaQtlX5CSzkAqCFabTE1SmlXbeOR4KUiEGLo\r\nqA61oGmU/E9NMSAkGouSEFnofkC6XFHGCRoRwt73ujeu4ryPbik+2tKWVAtf\r\nm4FyXm4uYwmui096YKz2hFyCPMK2u4lQCXH+lfNKJQYRPfRNQ74IOUsjv6Le\r\nLR5edfaf8vGKMBV/ZvJ5ovzpEcKN8ZNijpRKKX0uA7rAjuXMGzilXc5n2Oib\r\nRUjpF03MIia7w4nlMZfWTGva2RcDqvjCpzI0tdLLBlTHPHb4l1R8XObebIj7\r\nc2/12at81rGhuxlmRLOkBDFTC5/w/17MjVM=\r\n=C53/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.0-rc.1_1681983775066_0.38646135758819855"},"_hasShrinkwrap":false},"16.0.0-rc.2":{"name":"@nguniversal/express-engine","version":"16.0.0-rc.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.0-rc.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"a82ea9a13e3c07c7d12f009ce96fd1285f61dfff","_id":"@nguniversal/express-engine@16.0.0-rc.2","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-9LF35wwgdJ2ljZU4gNecPsDFCieBz28m+oo+avHvauqrEWwvhfayysSSEJ3dHFS5/hlO3sNXpOeXMK9wCIPsMg==","shasum":"897f88e78b7c003c8a0ba35807348f4ad5f49e81","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0-rc.2.tgz","fileCount":36,"unpackedSize":149004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvAGSVMQP25QJ03xqQ+zDqYAaYf9VNEilGFBOt2lG5kgIgYo/LTt8E2xZeI43e65kbfpO/Sy9ig7gxUo+gjfTBJ3w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTCWXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrbgw//bnfmu0vmOJecJDWIxBQO9aZx4iynIrgLnzFcbECVCiDRd2ui\r\nwu4vdv497zSTzdF4euUVVM3OprWY4VsodasfbVQj6DO1r6GmmsJZHBg7Rigv\r\ncu2FgunMBUPTi3hrY8JUb3SOb78a0iTswr3+bZ+JfaIEfS/NpllPy+weLyya\r\nqzCI1znDA/aqHDXKc+XnEixUpTSNs5iUVdPwzAGcnHekTmE7XyikblZdDKdo\r\nPp+7JIhihqWRe0tYVI3kj2h2POJnyelMQquOqRYcfBfZuFmwGYbshvHadCXU\r\nA2HEpZb95sZ71lrMvEo3GKyTUXrHCgveSp5VReNfKDcGlQQOO2r5rQ/6IKwi\r\nX5mzFHtLfHvmI/RZ9Wscu3xHRnqzftJwMQTLDFJLXUSQVAnZnH0OmT1YtGdi\r\niWSbW9kurqp/yWrITfTTfYC2nNFCfizYAfM3ifcmt4HZEhfeIPkiclmt6Hg0\r\nrfuTsjsdP094vFAqVzFJlFVzwV199yv5bh7Bxd0zz5Gi88NOArIf5lxDeVlr\r\n2Bk5hngiXaSCdeK9GLtKiry3GVzhRZ/sVl9cuimKSM8xr8jiybh2WfRAHaiV\r\nhxtpA/V9QOJjiXH/69A+tuevEOLJ8FjMRHjPCWFFd54U1qRUl+sCZsPOm5RS\r\nmLWCVF79KkMAUzc4vlj6oKa/7buBJQ5uekg=\r\n=OvGO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.0-rc.2_1682711959115_0.3374225057877487"},"_hasShrinkwrap":false},"16.0.0":{"name":"@nguniversal/express-engine","version":"16.0.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"b644d8afa2a774bcf6a4cae718e3a25115a3ec91","_id":"@nguniversal/express-engine@16.0.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-7e+7StsJMQRtxqcYYKmOm3PsX2hltKUfPq4OGuYeHojblPUfOQpkv/eM9ly1aCiuhr8OEKrsMWUmzN2RjHKEdg==","shasum":"fc5aabcf71e0a86c96463097ae2d290420b26e24","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPUUoGzUAgQ+njgj00f1hCKf4FTASnHlKwtOlFQWov3gIgG+QD9uKZYBJkuFG8aFvfUPi8gAmc6airK5guon2V0A0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUqUvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZ2A/8CB44XjWrUdaoCKq9PC9007dfdcUTiwo0hpBiUcSwnIiBStQu\r\nbP8Q3mCeyfN6y+CWTnxz+gNoru42skqVFtLiSiOuI2Vwx06k1ZHS8r2l1qF9\r\nXTmZ34EJU+lrukFo4AnnloDryI4duORVz0MDp8wwTiU8dFZQZiraQsKbT4QW\r\nd1dq0BQ4GUf/RUmiehmVW4rmrF3enCCd9OUyd/+aGLI1uCrwmNCKPsKm9r5l\r\nKuEALKaa2pXCXar1LxXAO7ME1CC9FbS0/Sj7DC6AzorlQ8zCJr3bsUCElPhT\r\nNoe3QsMgkQNuMqgdPOl0XVoGn5fn2udFc3OfXPAiyMqbYDprxv/sEXVqEgo6\r\nXmHNFrv/tl8hUsyMiMpht3Y2cFVb7segyLm24FeaaLIS6UZKYP2r7VuEvwTM\r\naT+PIFLWwIzLbACiJ9kqcQl7eXMjW8Ht6KswkTXDYWeHCGCc933W3B3pYk2V\r\nvjSQ1RSPNkiqn6V9miu8pisamSMhXpZwDGXgLbB6hTwKA+7f5fb9C43z94Jw\r\nmxzpQNs7l8iBwhFwTjXJOoWUthd1gaCs2aWb/GtssIGpBRPF/vYbv8xYRId5\r\nHXrxfU0LwcO+6BUh+xUyvE7haw8z6CVgq8v4FUxbZuwfcc/ouAr2fXWVVkrZ\r\nXM1h4D/Aw5P6OvE8g7Alw5K0t4MwUZzt09c=\r\n=WWA+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.0_1683137839493_0.15642742104025986"},"_hasShrinkwrap":false},"16.0.1":{"name":"@nguniversal/express-engine","version":"16.0.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"5ada9c2b283fb8d8a9286c4049323f7a8664e9c7","_id":"@nguniversal/express-engine@16.0.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-XxhkCfsEGNlTi5f10pAbYaK6rqEJeh9x8f729AHfZubQrZKRC/Cks2St7ipUzJFrFkMfSj3ULjqPIdh1N0QNzw==","shasum":"88c69ed97295f0e27f5dbda0806fd7f49f5364b1","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.1.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHC4myF+wDDo8JdjAjSJEpaeHLS4orhJf8ESrvH9Ph1NAiEAwPiE0NA87vtMm4sL9vfAOOGQVrYCGrJPUaFe33LM+RE="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.1_1683825014004_0.43853005566772163"},"_hasShrinkwrap":false},"16.0.2":{"name":"@nguniversal/express-engine","version":"16.0.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.0.0-next.0","@angular/core":"^16.0.0 || ^16.0.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.0.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"f0541c350af525203bb4e9bca3dd3149c81e0b1a","_id":"@nguniversal/express-engine@16.0.2","_nodeVersion":"18.16.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-rjwy3EaGTvP53mD9DX1kF10Pk+drxSdNzrNd+RNe4tkq8F8EbkTeGFdlrgo+lL8HEkw3rg4Jf8nNSlhO5k5YQg==","shasum":"80eea1cce129c1f7247ec7fa798a81efe588b948","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.2.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmgn1T2aefeZg/Kb2alYP2Xc87BArfA81HvMx8DfGWWAIhAKPI5Waxd5fGOfSLaY8nZZns9nbJQaYYiG3XUoLI4ALS"}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.0.2_1684325602283_0.10849363263487288"},"_hasShrinkwrap":false},"16.1.0-next.0":{"name":"@nguniversal/express-engine","version":"16.1.0-next.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.1.0-next.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"a12cc9f76408fb184ffff10fc89a03b2964b63bf","_id":"@nguniversal/express-engine@16.1.0-next.0","_nodeVersion":"18.16.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-29zzofI3BY85BMiCMx3msKwJITnwhoEh/ppIvkMhzKn0K0rHVhF8k3dQvwvT1o1EEWuvxci+7KhiDnBTmdsb+w==","shasum":"227de0028b58ccba701a526b1f6fcfd07f5916d9","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.1.0-next.0.tgz","fileCount":36,"unpackedSize":149018,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE3xdmTE4Nq8D0+NhxBByBJK+1EKy5opw6GXOF7FTwS7AiEAxUu6UHJ/s4qCiJbqg22VdPUplG2We8BYxK8OvuxQzUw="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.1.0-next.0_1684503401208_0.7040644358726649"},"_hasShrinkwrap":false},"16.1.0-rc.0":{"name":"@nguniversal/express-engine","version":"16.1.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.1.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"5a6e9b3a4fe6d773e8eb6f2376f003c1bb3fb757","_id":"@nguniversal/express-engine@16.1.0-rc.0","_nodeVersion":"18.16.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-AhwzpFe5elDHOJyOHbFE8R4IV/aHX7d4kEfTcHqXV/2Dsuj3IEk++FE8lDef90hMAEp4/Vg0pJz9WXjSi19jjA==","shasum":"d423cea5a1fa00e412d890f69c50da83945c1fa1","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.1.0-rc.0.tgz","fileCount":36,"unpackedSize":149004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr97zOCtMcU5w7eZjsRNTsHGwIRk53qoS6JRh7BQgSLAIgUegrX6AAuYg6dJZjldmJ4nIf4vP9M7Sfd/67tQtEUUI="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.1.0-rc.0_1686154789050_0.9871520876613087"},"_hasShrinkwrap":false},"16.1.0":{"name":"@nguniversal/express-engine","version":"16.1.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.1.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"48b7a54b93c4b96bb86a9c9256dc8cb67351b00f","_id":"@nguniversal/express-engine@16.1.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-HCNzY3M+C8sibVjKYZoGpPAZldR3Wy7+8g8lvBc/Com/VbQYuqSzwcAjjZFceOZgkVjmX2D0eyhD2HVT890ybg==","shasum":"2b19ef48aef33de33c3a5bad62caf2e1c28cffb6","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.1.0.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKbOCOnlx3QeVk5FqLwlbVHP20kfzjRbtqMeHKNbxX5gIgY0BT9ZMnSbBMg2HtMb4gd0wQIyyuBWjXefhDZ6/BLMU="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.1.0_1686678227343_0.6388889037394809"},"_hasShrinkwrap":false},"16.1.1":{"name":"@nguniversal/express-engine","version":"16.1.1","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.1.1","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"49ed0b677d4ed743d0836434e9345b1d7f3e8acf","_id":"@nguniversal/express-engine@16.1.1","_nodeVersion":"18.16.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-N2qWc2Vo3W5TryHtkHKw0d9Iz6a+E8XrB8kf6mAEKakWBIv86wwsRtJArrmf+Dnx75AfojO9hcVE915rjiLesA==","shasum":"e597e04421e4859cd61fc21f1d1ced0345948519","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.1.1.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqCo/GrklYF2hBqFAAdbxCXa3mngfJrA7b4dclI1zx1AiEA2TYFsJ3GF4OF8H3Zl53S2mMg/OPC4d9QPHtjbnqc2rY="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.1.1_1687954140657_0.16052301239537337"},"_hasShrinkwrap":false},"16.1.2":{"name":"@nguniversal/express-engine","version":"16.1.2","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.1.2","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"db69bb6722090c761bf41cc95c9a4f88485ee6a7","_id":"@nguniversal/express-engine@16.1.2","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Zkfe/OagKPUGzeOLkQ8WmG8QQxxynvUzLAMb105pT/4n3+qojTOWR4pVIpa1moxOKA2LgZ+JAyPltP/zlrPYKQ==","shasum":"43a9ea517c171362f1e8c59b5de9df8c72f37d20","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.1.2.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFNyysrNzE8oE342//HamulbzKd9+EzuCZK09Z33X910AiA2yv3ou1Y8pSZgNMyDzLT1aoFos5aFiNlQolr/6awScg=="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.1.2_1691167277305_0.7427817482580754"},"_hasShrinkwrap":false},"16.2.0-rc.0":{"name":"@nguniversal/express-engine","version":"16.2.0-rc.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.2.0-rc.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","readmeFilename":"README.md","gitHead":"266816d71aa3b9ed8574368e305e320db3412fde","_id":"@nguniversal/express-engine@16.2.0-rc.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-F53Ms08INNhCU9IWXGzDwOeu8aBqzhf9u+xRXkN4lnpiigL+qDC+XPpc66/Reh/ZZiiqmsBCjTDg0n/PryxIOw==","shasum":"54d4305a3b43d10f8b3bb9349feeaff715525483","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.2.0-rc.0.tgz","fileCount":36,"unpackedSize":149004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqVTOwlNw2Uc1Mm3ZYJ2VpTT0hNF+aHXXPApxRbKuduAiEAvlli9MzdCS5LusMhfMDO39zuZPA+4M+SVCW44X+WCPY="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.2.0-rc.0_1691169181629_0.6754283839124291"},"_hasShrinkwrap":false},"16.1.3":{"name":"@nguniversal/express-engine","version":"16.1.3","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.1.3","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"a84b665f93e6215e51e35d7135b12c00c882cadf","_id":"@nguniversal/express-engine@16.1.3","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-UqhOvo4cNO9MiNmKNWyLs108xs28lQfmbBl2MiBMBwCEC9ZpZwZev2kjRRUpT+ZWd7f/cZ7bpAF7jUA2pR9vYA==","shasum":"ed04ca8269e085fe084a89f4545900d8cb92ae93","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.1.3.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRcJk2QdFSt4Si5+l2V+TR+6fpRpZit3h7dhARX9RB9AIhAMK4cYLyuHN79YBlh/WtIujdz844aa7bnCIH/X/7945o"}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.1.3_1691598896444_0.7705886071338377"},"_hasShrinkwrap":false},"16.2.0":{"name":"@nguniversal/express-engine","version":"16.2.0","description":"Express Engine for running Server Angular Apps","license":"MIT","keywords":["express","ssr","universal"],"engines":{"node":"^16.14.0 || >=18.10.0"},"peerDependencies":{"@angular/common":"^16.0.0 || ^16.1.0-next.0","@angular/core":"^16.0.0 || ^16.1.0-next.0","express":"^4.15.2"},"dependencies":{"@nguniversal/common":"16.2.0","tslib":"^2.3.0"},"schematics":"./schematics/collection.json","ng-update":{"packageGroup":["@nguniversal/builders","@nguniversal/common","@nguniversal/express-engine"],"packageGroupName":"@nguniversal/express-engine"},"repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"homepage":"https://github.com/angular/universal","module":"./fesm2022/express-engine.mjs","typings":"./index.d.ts","type":"module","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/express-engine.mjs","esm":"./esm2022/express-engine.mjs","default":"./fesm2022/express-engine.mjs"},"./tokens":{"types":"./tokens/index.d.ts","esm2022":"./esm2022/tokens/tokens.mjs","esm":"./esm2022/tokens/tokens.mjs","default":"./fesm2022/tokens.mjs"}},"gitHead":"eddee31c56a99cda546859ffc1ecf9f25afbad0c","_id":"@nguniversal/express-engine@16.2.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Pg77DfDvKtLzRUTahjv3WxWUldpNQTHIlyoU0wYrwoi/7qnHzoXdrvI1tqzC+DqPwxOmkGySoiRa2jJ+9IgvKw==","shasum":"d31720491b57bdf3a1c7622f2676821aaf8036b4","tarball":"https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.2.0.tgz","fileCount":36,"unpackedSize":148969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAxbT5i0oMNBoRAVP0tG5XLeJEv35SSxpVu2/GBjsoqAIgKgkZH3ttOq8Nxd9tBdypvfHzEsQzk1eVSpSeaSRMgzA="}]},"_npmUser":{"name":"google-wombot","email":"node-team-npm+wombot@google.com"},"directories":{},"maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-engine_16.2.0_1691774125581_0.7046955958933736"},"_hasShrinkwrap":false}},"readme":"# Angular Express Engine\n\nThis is an Express Engine for running Angular Apps on the server for server side rendering.\n\n## Usage\n\n`npm install @nguniversal/express-engine --save`\n\nTo use it, set the engine and then route requests to it\n\n```ts\nimport express from 'express';\nimport { ngExpressEngine } from '@nguniversal/express-engine';\n\nconst app = express();\n\n// Set the engine\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule, // Give it a module to bootstrap\n  }),\n);\n\napp.set('view engine', 'html');\n\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n  });\n});\n```\n\n## Configuring the URL and Document\n\nIt is possible to override the default URL and document fetched when the rendering engine\nis called. To do so, simply pass in a `url` and/or `document` string to the renderer as follows:\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  let url = 'http://someurl.com';\n  let doc = '<html><head><title>New doc</title></head></html>';\n  res.render('../dist/index', {\n    req,\n    res,\n    url,\n    document: doc,\n  });\n});\n```\n\n## Extra Providers\n\nExtra Providers can be provided either on engine setup\n\n```ts\napp.engine(\n  'html',\n  ngExpressEngine({\n    bootstrap: ServerAppModule,\n    providers: [ServerService],\n  }),\n);\n```\n\n## Advanced Usage\n\n### Request based Bootstrap\n\nThe Bootstrap module as well as more providers can be passed on request\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render('../dist/index', {\n    req,\n    res,\n    bootstrap: OtherServerAppModule,\n    providers: [OtherServerService],\n  });\n});\n```\n\n### Using the Request and Response\n\nThe Request and Response objects are injected into the app via injection tokens.\nYou can access them by @Inject\n\n```ts\nimport { Request } from 'express';\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\n\n@Injectable()\nexport class RequestService {\n  constructor(@Inject(REQUEST) private request: Request) {}\n}\n```\n\nIf your app runs on the client side too, you will have to provide your own versions of these in the client app.\n\n### Using a Custom Callback\n\nYou can also use a custom callback to better handle your errors\n\n```ts\napp.get('/**/*', (req: Request, res: Response) => {\n  res.render(\n    '../dist/index',\n    {\n      req,\n      res,\n    },\n    (err: Error, html: string) => {\n      res.status(html ? 200 : 500).send(html || err.message);\n    },\n  );\n});\n```\n","maintainers":[{"name":"angular","email":"devops+npm@angular.io"},{"name":"google-wombot","email":"node-team-npm+wombot@google.com"}],"time":{"modified":"2023-08-11T17:15:25.979Z","created":"2017-04-24T21:39:03.490Z","1.0.0-beta.0":"2017-04-24T21:39:03.490Z","1.0.0-beta.1":"2017-05-10T06:08:07.990Z","1.0.0-beta.2":"2017-05-27T00:36:56.305Z","1.0.0-beta.3":"2017-08-28T21:52:33.900Z","5.0.0-beta.0":"2017-09-22T05:04:25.745Z","5.0.0-beta.1":"2017-09-22T22:57:33.374Z","5.0.0-beta.2":"2017-10-20T21:36:10.908Z","5.0.0-beta.3":"2017-10-20T21:41:23.176Z","5.0.0-beta.4":"2017-10-25T23:19:08.012Z","5.0.0-beta.5":"2017-10-31T17:20:43.960Z","5.0.0-beta.6":"2018-02-28T19:51:06.580Z","5.0.0-beta.7":"2018-03-21T14:22:58.174Z","5.0.0-beta.8":"2018-03-23T21:37:56.288Z","5.0.0":"2018-04-02T00:45:11.726Z","6.0.0-rc.0":"2018-04-24T00:47:07.161Z","6.0.0-rc.1":"2018-04-24T02:22:25.239Z","6.0.0-rc.2":"2018-04-24T05:16:36.518Z","6.0.0":"2018-05-03T22:31:12.056Z","6.1.0":"2018-08-23T04:28:06.776Z","7.0.0-rc.0":"2018-10-11T21:39:49.797Z","7.0.0-rc.1.with-local-changes":"2018-10-12T19:19:24.092Z","7.0.0":"2018-10-18T23:32:03.799Z","7.0.1":"2018-10-18T23:47:17.430Z","7.0.2":"2018-10-19T00:05:24.335Z","0.0.0":"2019-01-19T19:20:39.328Z","7.1.0":"2019-01-19T19:22:58.481Z","7.1.1":"2019-03-07T07:43:51.857Z","8.0.0-beta.0":"2019-04-26T04:43:31.698Z","8.0.0-rc.0":"2019-04-27T00:09:48.921Z","8.0.0-rc.1":"2019-05-23T17:11:14.566Z","8.1.0":"2019-07-03T21:47:19.893Z","8.1.1":"2019-07-04T16:55:41.541Z","9.0.0-next.0":"2019-09-16T20:56:30.528Z","9.0.0-next.1":"2019-09-19T22:12:50.367Z","9.0.0-next.2":"2019-09-24T21:26:29.010Z","9.0.0-next.3":"2019-10-04T20:11:45.752Z","9.0.0-next.5":"2019-10-15T21:47:20.563Z","9.0.0-next.6":"2019-10-23T21:31:28.964Z","9.0.0-next.7":"2019-12-03T06:22:19.139Z","9.0.0-next.8":"2019-12-04T00:59:51.101Z","9.0.0-next.9":"2019-12-09T22:37:17.128Z","8.2.5":"2019-12-10T21:57:07.491Z","8.2.6":"2019-12-10T22:25:38.577Z","9.0.0-next.13":"2019-12-19T21:11:19.134Z","9.0.0-next.14":"2019-12-27T19:34:34.419Z","9.0.0-rc.0":"2020-01-03T23:47:01.602Z","9.0.0-rc.1":"2020-01-22T18:26:47.036Z","9.0.0-rc.2":"2020-02-05T22:57:44.077Z","9.0.0":"2020-02-06T20:38:20.950Z","9.0.1":"2020-02-21T01:13:40.442Z","9.0.2":"2020-03-11T19:24:34.504Z","9.1.0":"2020-03-28T20:50:59.737Z","10.0.0-next.0":"2020-05-11T19:26:01.321Z","9.1.1":"2020-05-11T19:31:50.764Z","10.0.0-rc.0":"2020-05-27T21:01:23.620Z","10.0.0-rc.1":"2020-06-16T21:59:50.897Z","10.0.0":"2020-06-24T23:17:48.596Z","10.0.1":"2020-06-30T21:01:50.447Z","10.0.2":"2020-08-11T21:20:57.297Z","10.1.0-rc.0":"2020-08-27T17:44:38.317Z","10.1.0":"2020-09-03T04:19:48.878Z","11.0.0-next.0":"2020-09-03T16:16:08.695Z","11.0.0-next.1":"2020-09-24T15:50:39.448Z","11.0.0-next.2":"2020-11-06T04:10:26.130Z","11.0.0-rc.0":"2020-11-10T04:27:05.752Z","11.0.0":"2020-11-11T23:39:23.194Z","11.0.1":"2020-12-04T00:49:06.138Z","11.1.0-next.0":"2020-12-11T17:01:14.557Z","11.1.0":"2021-01-20T23:25:47.258Z","11.1.1":"2021-01-28T19:36:15.479Z","11.1.2":"2021-02-05T17:18:10.902Z","11.2.0":"2021-02-16T19:01:14.980Z","11.2.1":"2021-03-03T23:43:20.743Z","12.0.0-next.0":"2021-03-03T23:50:28.028Z","12.0.0-next.1":"2021-03-22T20:35:37.848Z","0.0.0-PLACEHOLDER":"2021-05-03T16:49:20.439Z","12.0.0-rc.0":"2021-05-03T20:05:15.480Z","12.0.0-rc.1":"2021-05-06T14:41:58.960Z","12.0.0":"2021-05-12T22:55:14.419Z","12.0.1":"2021-05-27T21:44:15.163Z","12.1.0-next.0":"2021-06-14T16:23:19.055Z","12.0.2":"2021-06-14T16:33:07.816Z","12.1.0":"2021-06-25T18:27:49.555Z","12.1.1":"2021-09-30T18:45:41.604Z","13.0.0-rc.0":"2021-10-14T18:32:28.993Z","13.0.0-rc.1":"2021-10-21T01:32:32.561Z","12.1.2":"2021-10-21T17:56:52.907Z","13.0.0-rc.2":"2021-10-28T02:02:59.371Z","12.1.3":"2021-10-28T02:09:12.526Z","13.0.0":"2021-11-03T19:39:31.251Z","13.1.0-next.0":"2021-11-03T23:09:26.813Z","13.0.1":"2021-11-11T21:50:14.282Z","13.0.2":"2022-01-18T22:39:52.380Z","13.1.0-next.1":"2022-01-19T00:03:48.183Z","13.1.0":"2022-03-21T20:10:59.933Z","13.1.1":"2022-05-04T23:31:07.111Z","14.0.0-next.0":"2022-05-05T18:44:00.416Z","14.0.0-rc.0":"2022-05-12T16:16:40.959Z","14.0.0-rc.1":"2022-05-31T23:10:49.104Z","14.0.0":"2022-06-02T18:00:11.139Z","14.0.1":"2022-06-15T07:18:26.297Z","14.1.0-next.0":"2022-06-15T07:44:42.995Z","14.0.2":"2022-06-23T22:32:44.723Z","14.1.0-next.1":"2022-06-23T23:32:05.252Z","14.0.3":"2022-07-06T14:52:15.896Z","14.1.0-next.2":"2022-07-06T15:37:35.194Z","14.1.0-rc.0":"2022-07-20T23:25:48.627Z","14.1.0":"2022-08-17T08:42:32.953Z","14.2.0-next.0":"2022-08-17T10:34:12.051Z","14.2.0-rc.0":"2022-09-07T08:38:08.094Z","14.2.0":"2022-09-07T09:20:08.678Z","15.0.0-next.0":"2022-10-13T10:12:11.652Z","14.2.1":"2022-11-03T16:00:42.819Z","15.0.0-next.1":"2022-11-03T16:53:46.189Z","14.2.2":"2022-11-09T09:21:30.560Z","15.0.0-rc.0":"2022-11-09T10:06:15.219Z","15.0.0-rc.1":"2022-11-15T17:42:53.089Z","15.0.0":"2022-11-16T20:28:11.924Z","14.2.3":"2022-11-23T18:24:44.835Z","15.1.0-rc.0":"2023-01-12T16:29:16.862Z","15.1.0":"2023-01-12T16:35:48.120Z","15.2.0-rc.0":"2023-02-23T09:03:11.907Z","15.2.0":"2023-02-23T09:13:08.860Z","16.0.0-next.0":"2023-04-05T10:41:21.592Z","15.2.1":"2023-04-13T16:23:44.872Z","16.0.0-rc.0":"2023-04-13T19:24:40.576Z","16.0.0-rc.1":"2023-04-20T09:42:55.277Z","16.0.0-rc.2":"2023-04-28T19:59:19.364Z","16.0.0":"2023-05-03T18:17:19.731Z","16.0.1":"2023-05-11T17:10:14.177Z","16.0.2":"2023-05-17T12:13:22.474Z","16.1.0-next.0":"2023-05-19T13:36:41.377Z","16.1.0-rc.0":"2023-06-07T16:19:49.271Z","16.1.0":"2023-06-13T17:43:47.585Z","16.1.1":"2023-06-28T12:09:00.849Z","16.1.2":"2023-08-04T16:41:17.527Z","16.2.0-rc.0":"2023-08-04T17:13:01.893Z","16.1.3":"2023-08-09T16:34:56.663Z","16.2.0":"2023-08-11T17:15:25.771Z"},"homepage":"https://github.com/angular/universal","repository":{"type":"git","url":"git+https://github.com/angular/universal.git"},"bugs":{"url":"https://github.com/angular/universal/issues"},"license":"MIT","readmeFilename":"README.md","users":{"udaygowda":true},"keywords":["express","ssr","universal"]}