{ "hosting": { "target": "nodejs-dev", "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "headers": [ { "source": "**/*", "headers": [ { "key": "cache-control", "value": "public, max-age=0, must-revalidate" } ] }, { "source": "static/**", "headers": [ { "key": "cache-control", "value": "public, max-age=31536000, immutable" } ] }, { "source": "**/*.@(css|js)", "headers": [ { "key": "cache-control", "value": "public, max-age=31536000, immutable" } ] }, { "source": "sw.js", "headers": [ { "key": "cache-control", "value": "public, max-age=0, must-revalidate" } ] }, { "source": "page-data/**", "headers": [ { "key": "cache-control", "value": "public, max-age=0, must-revalidate" } ] } ] }, "redirects": [ { "source": "/governance/", "destination": "/about/governance/", "type": "301" }, { "source": "/working-groups/", "destination": "https://github.com/nodejs/TSC/blob/main/WORKING_GROUPS.md", "type": "301" }, { "source": "/releases/", "destination": "/about/releases/", "type": "301" }, { "source": "/security/", "destination": "/about/security/", "type": "301" }, { "source": "/trademark/", "destination": "https://trademark-policy.openjsf.org/", "type": "301" }, { "source": "/about/trademark/", "destination": "https://trademark-policy.openjsf.org/", "type": "301" }, { "source": "/docs/*", "destination": "/api/", "type": "301" }, { "source": "/storybook/*", "destination": "/", "type": "301" }, { "source": "/blog/advisory-board/2014/12/05/listening-to-the-community", "destination": "/blog/", "type": "301" }, { "source": "/blog/community/2015/05/15/foundation-benefits-all/", "destination": "/blog/", "type": "301" }, { "source": "/blog/community/2016/09/06/v5-to-v7", "destination": "/blog/", "type": "301" }, { "source": "/blog/npm/2011/03/24/npm-1-0-global-vs-local-installation", "destination": "/blog/", "type": "301" }, { "source": "/blog/vulnerabilities/2017/01/27/openssl-january-2017", "destination": "/blog/", "type": "301" }, { "source": "/blog/vulnerabilities/2017/09/29/september-2017-path-validation", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2015/04/24/weekly-update.2015-04-24", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2015/05/29/weekly-update.2015-05-29", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2015/07/31/weekly-update.2015-07-31", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2016/02/15/weekly-update.2016-02-15", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2016/03/07/weekly-update.2016-03-07", "destination": "/blog/", "type": "301" }, { "source": "/blog/announcements/2021/10/07/retiring-the-node-js-community-committee", "destination": "/blog/", "type": "301" }, { "source": "/blog/announcements/2022/02/14/nodejs-trademarks-transferred-to-openjs-foundation", "destination": "/blog/", "type": "301" }, { "source": "/blog/announcements/2022/04/19/v18-release-announce", "destination": "/blog/", "type": "301" }, { "source": "/blog/announcements/2022/06/08/nodejs16-eol", "destination": "/blog/", "type": "301" }, { "source": "/blog/community/2016/12/03/update-v8-5.4", "destination": "/blog/", "type": "301" }, { "source": "/blog/vulnerabilities/2018/06/12/june-2018-security-releases", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2015/07/17/weekly-update.2015-07-17", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2016/04/29/weekly-update.2016-04-29", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2016/07/22/weekly-update.2016-07-22", "destination": "/blog/", "type": "301" }, { "source": "/blog/weekly-updates/2016/08/15/weekly-update.2016-08-15", "destination": "/blog/", "type": "301" }, { "source": "/api/", "destination": "/api/v19/documentation/", "type": "301" }, { "source": "/api/v19/", "destination": "/api/v19/documentation/", "type": "301" }, { "source": "/api/latest/", "destination": "/api/v19/documentation/", "type": "301" } ] }