{"_id":"@mdn/mdn-http-observatory","_rev":"29-adeb85592eaf6c1c2903c34112d19500","name":"@mdn/mdn-http-observatory","dist-tags":{"latest":"1.7.1"},"versions":{"1.3.2":{"name":"@mdn/mdn-http-observatory","version":"1.3.2","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.3.2","maintainers":[{"name":"arglaaa","email":"andi@null2.net"},{"name":"caugner","email":"npm@augner.eu"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"fiji-flo","email":"me@fiji-flo.de"}],"bin":{"mdn-http-observatory-scan":"bin/scan.js"},"dist":{"shasum":"2b0d5a1441a7a1f41fe160fdb83284a07a84a8fa","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.3.2.tgz","fileCount":15167,"integrity":"sha512-iB47PQ4dwQhyYNgQRR7pHlo3QaGAcbbHEz1Fx0BagiwoUfz/gjYhgiry7kPoEwE72mCid83QiVV5lIkWnt5rFQ==","signatures":[{"sig":"MEUCICdtqB3MXgGaI1k9987M28NMxlySC81TxrX+0/hcN5DWAiEA37s2aHCs2S1NuVHu3eNPws5bB4ThT7ovYgTydB2c+Z4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152519763},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"bf3232c98d9ac1cd32549b9b58dadde11e812314","scripts":{"dev":"nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.2.4","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"ip":"^2.0.1","pg":"^8.12.0","axios":"^1.7.7","dayjs":"^1.11.13","jsdom":"^25.0.0","tldts":"^6.1.41","convict":"^6.2.4","fastify":"^4.28.1","pg-pool":"^3.6.2","commander":"^12.1.0","pg-format":"^1.0.4","postgrator":"^7.3.0","change-case":"^5.4.4","@sentry/node":"^8.29.0","tough-cookie":"^4.1.4","@fastify/cors":"^9.0.1","postgrator-cli":"^8.1.0","@fastify/helmet":"^11.1.1","@fastify/static":"^7.0.4","@fastify/postgres":"^5.2.2","http-cookie-agent":"^6.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.1","mocha":"^10.7.3","nodemon":"^3.1.4","@types/ip":"^1.1.3","typescript":"^5.6.2","@types/chai":"^4.3.19","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.7","@types/convict":"^6.1.6","@faker-js/faker":"^9.0.1","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.3.2_1726576015021_0.9664777995351992","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"@mdn/mdn-http-observatory","version":"1.3.3","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.3.3","maintainers":[{"name":"arglaaa","email":"andi@null2.net"},{"name":"caugner","email":"npm@augner.eu"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"fiji-flo","email":"me@fiji-flo.de"}],"bin":{"mdn-http-observatory-scan":"bin/scan.js"},"dist":{"shasum":"f046dd396da2e1ff47e374f5234964f7195aa5cc","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.3.3.tgz","fileCount":15167,"integrity":"sha512-kea+mNr0rmVTl1nHhqB3XqjAXd7Mq8+dQG2+8QPU5Jl6g7FTjcjXYz0pNVuj+N2Al2vp1fUG0mHRqr0zOUzddA==","signatures":[{"sig":"MEUCIBnFdaoWpHBDqYXWC3NtEo8jT1VYVQRlCiYAFNriPrtVAiEAuasS7sQIJItW+VJ15C4h3UntEqpUmsIQV+RlmlEgUoM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152519779},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"a15405e866d47e3abbf5faa8d9cdb4decc9a746f","scripts":{"dev":"nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.2.4","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"ip":"^2.0.1","pg":"^8.12.0","axios":"^1.7.7","dayjs":"^1.11.13","jsdom":"^25.0.0","tldts":"^6.1.41","convict":"^6.2.4","fastify":"^4.28.1","pg-pool":"^3.6.2","commander":"^12.1.0","pg-format":"^1.0.4","postgrator":"^7.3.0","change-case":"^5.4.4","@sentry/node":"^8.29.0","tough-cookie":"^4.1.4","@fastify/cors":"^9.0.1","postgrator-cli":"^8.1.0","@fastify/helmet":"^11.1.1","@fastify/static":"^7.0.4","@fastify/postgres":"^5.2.2","http-cookie-agent":"^6.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.1","mocha":"^10.7.3","nodemon":"^3.1.4","@types/ip":"^1.1.3","typescript":"^5.6.2","@types/chai":"^4.3.19","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.7","@types/convict":"^6.1.6","@faker-js/faker":"^9.0.1","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.3.3_1726578036009_0.6025272595658855","host":"s3://npm-registry-packages"}},"1.3.5":{"name":"@mdn/mdn-http-observatory","version":"1.3.5","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.3.5","maintainers":[{"name":"fiji-flo","email":"me@fiji-flo.de"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"},{"name":"arglaaa","email":"andi@null2.net"}],"bin":{"mdn-http-observatory-scan":"bin/wrapper.sh"},"dist":{"shasum":"01503db5c16edca9ff0a7f4bdcc3075342a844ce","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.3.5.tgz","fileCount":210,"integrity":"sha512-knJ6Gjw8qUDiRFoTw/nzPYrAoe2ZCoQzN6euyjwCJuPycCdu7r7VKOP7L5K3DJvRbuqmb9MrdKUya/kZvjMUYg==","signatures":[{"sig":"MEUCIQCUXXNZkcJVhDrU3Wijmm4hA8Op650J2uFJyTUlLDZDhQIgf7BsI45gvg5hZZKYxdeaESETPOly/CKoX3fNS7zF5A8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24983579},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"0200be8d7358e955cad6fe013a80089cd5f30831","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.8.2","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ip":"^2.0.1","pg":"^8.13.1","axios":"^1.7.8","dayjs":"^1.11.13","jsdom":"^25.0.1","tldts":"^6.1.65","convict":"^6.2.4","fastify":"^5.1.0","pg-pool":"^3.7.0","commander":"^12.1.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^8.41.0","tough-cookie":"^5.0.0","@fastify/cors":"^10.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.0.3","@fastify/postgres":"^6.0.1","http-cookie-agent":"^6.0.6","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.3","node_extra_ca_certs_mozilla_bundle":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^10.8.2","nodemon":"^3.1.7","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.0.1","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^9.2.0","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.3.5_1733323789419_0.9241809602154203","host":"s3://npm-registry-packages"}},"1.3.6":{"name":"@mdn/mdn-http-observatory","version":"1.3.6","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.3.6","maintainers":[{"name":"fiji-flo","email":"me@fiji-flo.de"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"},{"name":"arglaaa","email":"andi@null2.net"}],"bin":{"mdn-http-observatory-scan":"bin/wrapper.sh"},"dist":{"shasum":"e0e2099224fc21afce986b9821917a8af0bf3d51","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.3.6.tgz","fileCount":210,"integrity":"sha512-8VV0PmhfCn/Sng4km4df9tjfc4run3NHwDTwB/z7sWHF/IM2iZqBBNfUS4nSHdB7gJDFuT6WuxZA/o8qjUGvow==","signatures":[{"sig":"MEQCIBjqLSil742+5LNUtYMkqjpY+RMsFpJwrRjAWzt87h/FAiAreLszwmpbgvlHdRV1JUsIvD/USxWiXDf0kQZYvh5cVA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24983920},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"b8ced701f26e399a580e72a44dcf78c9702e9e2b","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.8.3","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"18.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.13.1","axios":"^1.7.8","dayjs":"^1.11.13","jsdom":"^25.0.1","tldts":"^6.1.65","convict":"^6.2.4","fastify":"^5.1.0","pg-pool":"^3.7.0","commander":"^12.1.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^8.41.0","tough-cookie":"^5.0.0","@fastify/cors":"^10.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.0.3","@fastify/postgres":"^6.0.1","http-cookie-agent":"^6.0.6","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.3","node_extra_ca_certs_mozilla_bundle":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^10.8.2","nodemon":"^3.1.7","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.0.1","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^9.2.0","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.3.6_1733417423004_0.5543597045712867","host":"s3://npm-registry-packages"}},"1.3.7":{"name":"@mdn/mdn-http-observatory","version":"1.3.7","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.3.7","maintainers":[{"name":"fiji-flo","email":"me@fiji-flo.de"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"},{"name":"arglaaa","email":"andi@null2.net"}],"bin":{"mdn-http-observatory-scan":"bin/wrapper.sh"},"dist":{"shasum":"785b3c7022aeb8fbb846a2c152fa3aa2d47bc619","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.3.7.tgz","fileCount":210,"integrity":"sha512-qUnisTzsEbENchQTR1kGfNezx7434B53pCOCjymjfJGAC0vyF5zlge/nv6riUyI6+U22vETqAxFQk2SOe1Ybkw==","signatures":[{"sig":"MEQCIH8uqpLWYTjV4Ifgj61H6SWt0s4hG3sMJ2dJeyd7lkGzAiAlSR+CFnlkSQzKSAgXn6WyJiOkxxAbVh5OY/1bd7y7og==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24984221},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"4e9189ca9fdf21ce4dbf9dfdb781addb4eeeed5f","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.8.2","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ip":"^2.0.1","pg":"^8.13.1","axios":"^1.7.8","dayjs":"^1.11.13","jsdom":"^25.0.1","tldts":"^6.1.65","convict":"^6.2.4","fastify":"^5.1.0","pg-pool":"^3.7.0","commander":"^12.1.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^8.41.0","tough-cookie":"^5.0.0","@fastify/cors":"^10.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.0.3","@fastify/postgres":"^6.0.1","http-cookie-agent":"^6.0.6","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.3","node_extra_ca_certs_mozilla_bundle":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.0.1","nodemon":"^3.1.7","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.0.1","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^9.2.0","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.3.7_1734355031529_0.4338648399023983","host":"s3://npm-registry-packages-npm-production"}},"1.3.8":{"name":"@mdn/mdn-http-observatory","version":"1.3.8","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.3.8","maintainers":[{"name":"fiji-flo","email":"me@fiji-flo.de"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"},{"name":"arglaaa","email":"andi@null2.net"}],"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"bb5902d5b53db78d390d79798cbb63ee50d51a85","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.3.8.tgz","fileCount":210,"integrity":"sha512-v1Oepcrg1+z29QliW/PAbeCK4yPSXQ4BjDKXA7QNS7Qj9GWZKVmsB6nzIWL2X26OtyKe0UMLZ/UzjPtcloP8Vg==","signatures":[{"sig":"MEYCIQDb+df2djfNOecS8Co2mPAC+fD8+WdlGFnlNfpxQz3hVAIhAL79DrEA44NRPl9Pt1UNfoO/yyfuKshT0nVIEbj9GDdj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24985686},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"313c7b7a83986e895a4681a0ec81d2f87e022697","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.8.2","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ip":"^2.0.1","pg":"^8.13.1","axios":"^1.7.8","dayjs":"^1.11.13","jsdom":"^25.0.1","tldts":"^6.1.65","convict":"^6.2.4","fastify":"^5.1.0","pg-pool":"^3.7.0","commander":"^12.1.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^8.41.0","tough-cookie":"^5.0.0","@fastify/cors":"^10.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.0.3","@fastify/postgres":"^6.0.1","http-cookie-agent":"^6.0.6","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.3","node_extra_ca_certs_mozilla_bundle":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.0.1","nodemon":"^3.1.7","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.0.1","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^9.2.0","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.3.8_1734689537377_0.5849116388926716","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@mdn/mdn-http-observatory","version":"1.4.0","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.0","maintainers":[{"name":"fiji-flo","email":"me@fiji-flo.de"},{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"},{"name":"arglaaa","email":"andi@null2.net"}],"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"d1d63fa0c230adc64e6961f27c8ceb30fe1f8df0","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.0.tgz","fileCount":209,"integrity":"sha512-QKX6xWN9n5e6oUiLoVXX5trgarRPTFVyquoIHLGKsF9zFvVFzOltWU4ixjY7ipvG4SFWUATjmGsTPdIJ2m58Dw==","signatures":[{"sig":"MEUCIQCeX2HCS4YC23HzxC3b/0trtyR7WrkR6nNjjxeFlrzrIwIgeFK+0Y4QmC+wGMYWz50zS9JaTCBn0SscwHNnsoY3oNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24991132},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"3f260500c49377fbd348539bebb988dadeba12cb","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"arglaaa","email":"andi@null2.net"},"_npmVersion":"10.8.2","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ip":"^2.0.1","pg":"^8.13.1","axios":"^1.7.8","dayjs":"^1.11.13","jsdom":"^26.0.0","tldts":"^6.1.65","convict":"^6.2.4","fastify":"^5.1.0","pg-pool":"^3.7.0","commander":"^13.1.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^8.41.0","tough-cookie":"^5.0.0","@fastify/cors":"^10.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.0.3","@fastify/postgres":"^6.0.1","http-cookie-agent":"^6.0.6","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^5.0.3","node_extra_ca_certs_mozilla_bundle":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.0.1","nodemon":"^3.1.7","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.0.1","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^9.2.0","prettier-eslint":"^16.3.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.0_1742548319493_0.5380407932005933","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@mdn/mdn-http-observatory","version":"1.4.1","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.1","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"26d850e0f32a88e6886d2c52edd53013c5f78af7","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.1.tgz","fileCount":209,"integrity":"sha512-fygRgo6e3/P/w6VRD4LjuTSknxyzJQGFBbHkrFfECv6rw/WWZkcq7YmQumN6mBK+UbyzrEFE7atP5WJiiCSqeA==","signatures":[{"sig":"MEYCIQD0BLO60l20qWDnLak4XbXu6QaS/QrRZWolhO0mPNCUNQIhAM7hOyBSwthMj19+mTftmAM3sHf1tP5YlHlFlKKzSSlh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24992276},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"7bb6dcd6ea9e559de69c86a3f923d3f4466b10b5","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^9.32.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^9.8.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.1_1775825813145_0.3810209177491133","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@mdn/mdn-http-observatory","version":"1.4.2","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.2","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"281054ee6ed179913cf25011c78746dfbc5e1530","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.2.tgz","fileCount":210,"integrity":"sha512-MxpsBK0hCv4i4lHIHG5qJU73g1O1F50SJ7QexNUnBKHK0BOiT7HZdFyRjZKeehK5Zd8Z8RSvJWJlCehU4/DGOA==","signatures":[{"sig":"MEUCIH9ie/rHBueti9qBmAFe83fts7hDtmKDx3i7A2iNTfK+AiEA8lZFVthju9crAxQsgiCA47B/FTUwO32Y2rVzVO+oCLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24999163},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"1704caf6f291a42e7f2207b22592da4054394cf0","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.2_1775825952542_0.12728109875423965","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@mdn/mdn-http-observatory","version":"1.4.3","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.3","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"9b7729a6c9ec2e91aca92cc1e6ad55ad7176334e","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.3.tgz","fileCount":210,"integrity":"sha512-4D21CZdSrf95ellIZhM84tOF7N/gvmsG3Odqoy/q9tKgGMftgPf+qvjDnwDTiUTqwkrgg4hiGCYMIFyZp2xSVQ==","signatures":[{"sig":"MEUCIQCT9+hQPkWy1vnMGdPvuhOq5VS+kU5iTGLv/1QfotcXDgIgPxf8nNWtgZ5Yb38wFfE108ZLjWnuzHLPD+o0S6LcP+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25001939},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"96bf9f3831a04398f663e3cb1a87c7c9417a7c41","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.3_1775826037436_0.3326784914522878","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@mdn/mdn-http-observatory","version":"1.4.4","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.4","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"dcb05a38017fcfee9c4abe2ad0c96a81e2e1dfac","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.4.tgz","fileCount":210,"integrity":"sha512-FdXCh1NjAoAsUbkFR+F86M3Chg+4aQn6a/7i3fK8la5VJKQA54TSBaHO7CYOsgySu7UnwHs3TKTaHSvZlyyY4w==","signatures":[{"sig":"MEUCIQDr1dik4Bs1jn4tWYS9E21/I09jCC/dCkbXncPoSBEFAQIgA+DAIOI2ba+5CfS7zdlwEif4YACCa6VUtRABt878pTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3952577},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"27f2a68d733071b1db273f604c9b6b3709d0b755","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.4_1775826151175_0.8883055259100572","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"@mdn/mdn-http-observatory","version":"1.4.5","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.5","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"a536b0baeb6a1db52062992af0eb13455311f684","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.5.tgz","fileCount":210,"integrity":"sha512-3SrfFKm/QtvGvju0okyDknXQD/Gln5JaKpIAkDyN/yHS+Xwq9DB7fMHW8YP/p4aQtuAtdS9zeHKZU5hI8e1sLA==","signatures":[{"sig":"MEUCIDDyP9YnaXsv29E16oMum8Uw4CEoZ0OB0TEjLdoR4FUeAiEA0VcTUZS4faqVN+0FeCx57r5+fBUAT1UCyq7w3k69PlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3953132},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"a5b8f5a5797513c6da2eb9989c502a252907692e","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.5_1775826220264_0.3280872337601066","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"@mdn/mdn-http-observatory","version":"1.4.6","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.6","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"1d499f99a63d3eae68f699147cd80e2de96b3b5d","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.6.tgz","fileCount":210,"integrity":"sha512-xOh50YKN0MgIAtzBrE46sGUJdEQsZjeIMtjkoM9tXc+Q0F375K3tsMwg2cBvXh6M3Vr9J10wk9ql0IWk0x+NOg==","signatures":[{"sig":"MEUCIQDdk6mxSV6YsWufJogogR7kbdyxj8CQopdCFuo93+bl+AIgRaOK2nzPA1hN9jefxaAwyWBS39uWO4InssD0aM3UI2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3954133},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"e33a6a747a490fca21ee8eced43ebe0eb3b20ece","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.6_1775826287456_0.659179193206636","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"@mdn/mdn-http-observatory","version":"1.4.7","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.7","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"3ad7c823f3015094d9855cc883f3de6fc960145d","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.7.tgz","fileCount":134,"integrity":"sha512-NbQftrJ4XEUW36ZMew3xTrz0WD7LeaJoub20fZK6DItxkgmcrFSd5ZEKTHBAK3/4mYApHpds+h8xkD1vZqLgIg==","signatures":[{"sig":"MEQCIA6cXAeTWy8EVLhHmOzyBmutjf6ZE4ttQFCN74p/T154AiA2gKIA97NaQ6dTDQHAZBpTOORu5F5ZR+DVEHXFaf/e8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":368944},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"54c65a052df82da6b3b4f4edbb478aeca43f199f","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.7_1775826346855_0.6739723673643558","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"@mdn/mdn-http-observatory","version":"1.4.8","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.8","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"62b43f55f8fa4dc57e7bd7d461fdee8aa1200d6d","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.8.tgz","fileCount":134,"integrity":"sha512-0goue3nubqDQuIqLaQWRUa7iNsgTOwIlJdqbiC8sO7PxqwmpdQJo9Q8GCvXkcp7s35yGj9X/RGkZ4iIBZoYHxw==","signatures":[{"sig":"MEYCIQDI8WL36uRMb1v7awvvdPe+o+OfCOYnmLOQazkwRlc9TwIhAKbiZyq6L6+GKbpYrQ3OWaKkl2QIAV51o+yZ4Z0xgzIm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369432},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=20.0.0"},"gitHead":"a71d4b229a9c12414c124304e2bfbf6c428d7f79","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","test:nodb":"CONFIG_FILE=conf/config-test.json SKIP_DB_TESTS=1 mocha","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^26.1.0","tldts":"^7.0.9","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^21.1.7","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.8_1775826418055_0.5800602134906461","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"@mdn/mdn-http-observatory","version":"1.4.9","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.4.9","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"3fb812193923839344b4fa5dd655b3a633587a6b","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.4.9.tgz","fileCount":136,"integrity":"sha512-szUbnEh/oUk1qCQB9bBGgmIGevWzJvTLKlflzry28YQ6T4f2MmBbGg5X+kUNBPfthxl0giTm4v9uFqbyXCEVtQ==","signatures":[{"sig":"MEYCIQDZQ4cpJ+GQAfT4T/B2BJT6YMe+iQeOh+iSebKQB6iP9QIhAO+XxzhV09sCZR7CRBvc2pK95PIPKi2COMAF5gBUBqGx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.4.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382447},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=24.0.0"},"gitHead":"560840eb61b8ae73b28112c40023177c85d1b5d3","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^27.0.0","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.1.2","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^27.0.0","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.4.9_1775826495926_0.06176502618893487","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@mdn/mdn-http-observatory","version":"1.5.0","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.5.0","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"0b96ab3455400af97807ca57df438b7a5991d307","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.5.0.tgz","fileCount":136,"integrity":"sha512-ByJlCwH/KIcJdKyMeBAV2E+FvE1PhUn1dXf6NtHeoV/oNQebJ9+N4Zt9NlwcEWX1FDvfRI/eJ3RYd4qODzFg9g==","signatures":[{"sig":"MEUCIFEQbTI3JPSKv6fohXHrSTLwQ/KJ56le6f8g8XFxje1oAiEAkvDpL1ZpAzGJjbZhYe5LTGLqT0sBAwugAJZp5g7gXyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":384874},"main":"src/index.js","type":"module","engines":{"npm":">=9.0.0","node":">=24.0.0"},"gitHead":"43c73204fb651259f7510d52df0d9f15dcdd841b","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^27.0.0","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.0","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^27.0.0","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.5.0_1775826769860_0.04607676525532223","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@mdn/mdn-http-observatory","version":"1.5.1","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.5.1","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"80a042d8d60faeb7742e45723c24eb7d67120833","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.5.1.tgz","fileCount":136,"integrity":"sha512-Sv//P3MFlgf7a+UCDiXm27FJ1pnI6di9huccPzcUUGg190uRi8zUjgQ/eL5tCcB7NYzChv7BxkFGqRPvf5xgKA==","signatures":[{"sig":"MEQCIGJOKH1yOwXSNB09xCNjObK4oxS1lsDRCLyotgZ+6Ix0AiAdPBDAwHrwHDt+XIz6p6nrPqHPTgRvTdpmZhcpC9Up9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":390171},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"3416e582c749850f6462a5f3ef6a361d5050acb8","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^27.0.0","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^8.2.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.6.2","devDependencies":{"chai":"^6.2.0","mocha":"^11.7.1","nodemon":"^3.1.10","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^27.0.0","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.5.1_1775826942665_0.8209133696219186","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@mdn/mdn-http-observatory","version":"1.5.2","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.5.2","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"8181c324721eb7d2ef545a0cff01a67cefe36f4b","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.5.2.tgz","fileCount":140,"integrity":"sha512-FUW5nMqikNZDPa7eRpXswCLC8D3WwRswvwV6Mh55w4WeUJkf7VrdHEHa8IGKCR1hRF298ZpHPP6pHpWDxyADhQ==","signatures":[{"sig":"MEYCIQC2o++Y+Qc8R98g3qUkyZx9kH/iT5Yc6efzFvnRIH+BmgIhAIyJqCsARr83qiWEGdt7HHF+tihfwLKAyoBjLE/tJeTF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1169964},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"486b3901ed4ec2c978de65df4a413f62c4298c43","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","jsdom":"^27.0.0","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^9.0.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.6.2","devDependencies":{"chai":"^6.2.0","mocha":"^11.7.1","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/jsdom":"^27.0.0","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.5.2_1775827272798_0.1186695275719778","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@mdn/mdn-http-observatory","version":"1.5.3","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.5.3","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"1e835a38c4abd25c13ffc201c0ebd3b2059c7da5","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.5.3.tgz","fileCount":141,"integrity":"sha512-nCI64/gwVqalbeoekVncboQH4KWF7M+PszpPFgiUjo8Vgd+lt1q9VBFg8utbcSR+MUe1WTxkZDGTXs15E7KLjg==","signatures":[{"sig":"MEQCICOwz9B66hdn3Sv1PYhlmp9tNBoyRkjgqYzbMTMWrShtAiB/sAn0vi4Snw+QDIJowSPF+VDN/m4HiotyfAMUn72coA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1172322},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"2c2d53b9b12418b3b4db192b503304504426b0ee","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^10.1.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^9.0.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.6.2","devDependencies":{"chai":"^6.2.0","mocha":"^11.7.1","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.5.3_1775827882541_0.21679582984909818","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@mdn/mdn-http-observatory","version":"1.5.4","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.5.4","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"eaf85012e293b853e2a48a87e98dc05bfe261f6d","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.5.4.tgz","fileCount":141,"integrity":"sha512-pj1jnUkybVk/Qm/4BZacN7LbxnNPtu6tUr6nI0EQZNyuU3ipR/p+sGjj0KArrvfJ/+kUKyXlGREv8yru0SDlMg==","signatures":[{"sig":"MEUCIHrKc30RMGyz8lAjdrao0+mpY0U+ojlgAHg/7AvfggiEAiEAkgmDl7MV5zbfM/6jLa88OUSvDCTXVkU8EBvZA3FTR8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1174977},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"c75d38ca2b5aba52e0b0d25a13aba59b138c5832","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json mocha","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^10.1.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^9.0.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.6.2","devDependencies":{"chai":"^6.2.0","mocha":"^11.7.1","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/ip":"^1.1.3","typescript":"^5.7.2","@types/chai":"^5.2.2","@types/mocha":"^10.0.10","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.5.4_1775828133320_0.9463588091148261","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@mdn/mdn-http-observatory","version":"1.6.0","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.6.0","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"25c284dbf5947b5e1247e1586252e10729d33a82","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.6.0.tgz","fileCount":142,"integrity":"sha512-f8IrfBVXjSn8ozp3bEMVn7kDEOC3KfqEcb0WdLPeuHDNE25cCfSfepg9Ggy4ecZmKE/Eje0xfezjFCiMlQZumA==","signatures":[{"sig":"MEUCIFluSPJVRHxdrgQgYa8SfZ3WNX9uEsgZ4WvzgsWTqs61AiEAqGRJ7BZVIYxfzWZPSCczH1N1GOGwgeMGDi9T2en5tZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1185413},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"ea508291167a4df5aae513cf384be968080c247b","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json node --test --test-concurrency=1 'test/**/*.test.js'","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","pg-native":"^3.5.2","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^12.0.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^9.0.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.6.2","devDependencies":{"chai":"^6.2.0","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/ip":"^1.1.3","typescript":"^6.0.2","@types/chai":"^5.2.2","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.6.0_1775828540178_0.007949203569692864","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@mdn/mdn-http-observatory","version":"1.6.1","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.6.1","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"97e714f73635199cae43002aae757c95efc56a71","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.6.1.tgz","fileCount":143,"integrity":"sha512-m6RDckcavFIbTXH5TOGWKMsJkw7EExRn3nbXlVeTZD1BNbwHz4okpkQjmsDTb8qUpHHcIVa6ak3taR2otnNiJg==","signatures":[{"sig":"MEYCIQCoXtYun6fV5vmefVTX0DlCvFpmIsiuLpmUS1IwBe6pDAIhAKGUdwBHdZBdiw8tTzZ0FF9hcOCTuLZ39c35KGC2kLck","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1192410},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"a278c6dc4d195e46ef70d7a82164bfae233ef503","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json node --test --test-concurrency=1 'test/**/*.test.js'","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"devEngines":{"packageManager":{"name":"npm","version":">=11.8.0"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^12.0.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^9.0.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.9.0","devDependencies":{"chai":"^6.2.0","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/ip":"^1.1.3","typescript":"^6.0.2","@types/chai":"^5.2.2","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"optionalDependencies":{"pg-native":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.6.1_1775829310937_0.631297318817297","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@mdn/mdn-http-observatory","version":"1.6.2","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.6.2","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"a9ffa7556bc5c4333e28c2ce4d7311723a560f76","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.6.2.tgz","fileCount":144,"integrity":"sha512-Z+qQiys9RhnVyXhKaZyZXRa5O/fQssnogK198jyWgPvt3k5fxC9jJUMuFgLnoYIEqka7iMfzYF8ra8B6k8mLVA==","signatures":[{"sig":"MEYCIQC3hDvzY8oN3KFQ8G3jDAvwJSxdTtKw5/VPoTAYumGjWAIhANvqpd58zk2PuUTd42PtyYOK+2gJBAFyvNUutRyO4p6/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1198798},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"b716ef02b6f8a0c8210235a49eb16021c762031c","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","test":"CONFIG_FILE=conf/config-test.json node --test --test-concurrency=1 'test/**/*.test.js'","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"devEngines":{"packageManager":{"name":"npm","version":">=11.8.0"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.12.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ip":"^2.0.1","pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^14.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^12.0.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^9.0.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^7.0.1","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^6.0.2","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.9.0","devDependencies":{"chai":"^6.2.0","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/ip":"^1.1.3","typescript":"^6.0.2","@types/chai":"^5.2.2","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","prettier-eslint":"^16.4.2","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","json-schema-to-jsdoc":"^1.1.1","@supercharge/promise-pool":"^3.2.0"},"optionalDependencies":{"pg-native":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.6.2_1776195742452_0.34188081805462645","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"@mdn/mdn-http-observatory","version":"1.6.3","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.6.3","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"12d0b6c34264e7cb58e5cdac9ce5fcdf658bd58f","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.6.3.tgz","fileCount":147,"integrity":"sha512-QRnUnHFHVtdydAcaRC17MPuoxbJkonwWJaamK72XhT/6t/0tz7VNH3AAj34EH0r01qCZs2AHZnCAdZkMCt97zg==","signatures":[{"sig":"MEYCIQCs4d5DkpjeOjEY8265Ar+xhU9ckzTlJ8dKUSgoUAOLUwIhALdwY5JwbBKZ+PNnQeesD7mzXmiy+irkaZtlRbVC5Zy8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1209632},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"22e088df69a0d8734bd8f6ffad8a7ff97da8ddb8","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","lint":"eslint .","test":"CONFIG_FILE=conf/config-test.json node --test --test-concurrency=1 'test/**/*.test.js'","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"devEngines":{"packageManager":{"name":"npm","version":">=11.8.0"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.18.0","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^15.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^12.0.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^9.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^10.1.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^8.0.0","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^7.0.0","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.9.0","devDependencies":{"chai":"^6.2.0","eslint":"^10.7.0","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/pg":"^8.20.0","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/chai":"^5.2.2","@eslint/compat":"^2.1.0","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","eslint-plugin-n":"^18.2.2","prettier-eslint":"^17.1.1","@types/pg-format":"^1.0.5","typescript-eslint":"^8.63.0","@types/tough-cookie":"^4.0.5","eslint-plugin-jsdoc":"^62.9.0","json-schema-to-jsdoc":"^1.1.1","eslint-plugin-unicorn":"^64.0.0","@eslint/config-helpers":"^0.6.0","eslint-config-prettier":"^10.1.8","eslint-plugin-import-x":"^4.17.1","@supercharge/promise-pool":"^3.2.0"},"optionalDependencies":{"pg-native":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.6.3_1784219037164_0.23767998032519766","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@mdn/mdn-http-observatory","version":"1.7.0","author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","_id":"@mdn/mdn-http-observatory@1.7.0","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"homepage":"https://github.com/mdn/mdn-http-observatory#readme","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"dist":{"shasum":"04c2fe51dde106f12f2e576310c228faa0d645a7","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.7.0.tgz","fileCount":152,"integrity":"sha512-z+YAu+DeZ12cIZXGQ1kI6Ov772FZyqgstCa2BWycWVW4RBaokr454Yv2EOvICJUdMDemW2GTl72khYCofQBGbQ==","signatures":[{"sig":"MEUCIQDjk0rJpbBw1d8BHbUZG291E3DK3K+7cCQcoRlvL+esNgIgDiDg75Okcf0P0xKtTa/grFljvg5FCONFAhL6lrLBLlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1233077},"main":"src/index.js","type":"module","engines":{"node":">=24"},"gitHead":"398c3bba44cb4e054c09ebf7018138cd825e39a3","scripts":{"dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","tsc":"tsc -p jsconfig.json","lint":"eslint .","test":"CONFIG_FILE=conf/config-test.json node --test --test-concurrency=1 'test/**/*.test.js'","start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","updateHsts":"node src/retrieve-hsts.js","maintenance":"node src/maintenance/index.js","postinstall":"npm run updateHsts && npm run updateTldList","test:coverage":"c8 npm test","updateTldList":"node src/retrieve-tld-list.js","capture-fixtures":"node scripts/capture-fixtures.js","refreshMaterializedViews":"node src/maintenance/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"devEngines":{"packageManager":{"name":"npm","version":">=11.8.0"}},"repository":{"url":"git+https://github.com/mdn/mdn-http-observatory.git","type":"git"},"_npmVersion":"11.19.1","description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.2","axios":"^1.10.0","dayjs":"^1.11.13","tldts":"^7.0.12","convict":"^6.2.4","fastify":"^5.4.0","pg-pool":"^3.10.1","commander":"^15.0.0","pg-format":"^1.0.4","postgrator":"^8.0.0","change-case":"^5.4.4","htmlparser2":"^12.0.0","@sentry/node":"^10.1.0","tough-cookie":"^5.0.0","@fastify/cors":"^11.0.1","postgrator-cli":"^10.0.0","@fastify/helmet":"^13.0.0","@fastify/static":"^10.1.0","@fastify/postgres":"^6.0.1","http-cookie-agent":"^8.0.0","structured-headers":"^2.0.3","fastify-simple-form":"^3.0.0","axios-cookiejar-support":"^7.0.0","node_extra_ca_certs_mozilla_bundle":"^1.0.7"},"_hasShrinkwrap":false,"packageManager":"npm@11.17.0","devDependencies":{"c8":"^12.0.0","chai":"^6.2.0","eslint":"^10.7.0","nodemon":"^3.1.10","lefthook":"^2.0.14","@types/pg":"^8.20.0","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/chai":"^5.2.2","@eslint/compat":"^2.1.0","@types/convict":"^6.1.6","@faker-js/faker":"^10.0.0","eslint-plugin-n":"^18.2.2","prettier-eslint":"^17.1.1","@types/pg-format":"^1.0.5","typescript-eslint":"^8.63.0","@types/tough-cookie":"^4.0.5","eslint-plugin-jsdoc":"^64.2.0","json-schema-to-jsdoc":"^1.1.1","eslint-plugin-unicorn":"^74.0.0","@eslint/config-helpers":"^0.7.0","eslint-config-prettier":"^10.1.8","eslint-plugin-import-x":"^4.17.1","@supercharge/promise-pool":"^3.2.0"},"optionalDependencies":{"pg-native":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mdn-http-observatory_1.7.0_1788345628378_0.7432445992890937","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@mdn/mdn-http-observatory","version":"1.7.1","author":{"name":"Mozilla Developer Network"},"description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","main":"src/index.js","packageManager":"npm@11.17.0","engines":{"node":">=24"},"devEngines":{"packageManager":{"name":"npm","version":">=11.8.0"}},"scripts":{"start":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem node src/api/index.js","dev":"NODE_EXTRA_CA_CERTS=node_modules/node_extra_ca_certs_mozilla_bundle/ca_bundle/ca_intermediate_root_bundle.pem nodemon src/api/index.js","test":"CONFIG_FILE=conf/config-test.json node --test --test-concurrency=1 'test/**/*.test.js'","test:coverage":"c8 npm test","capture-fixtures":"node scripts/capture-fixtures.js","lint":"eslint .","tsc":"tsc -p jsconfig.json","updateHsts":"node src/retrieve-hsts.js","updateTldList":"node src/retrieve-tld-list.js","refreshMaterializedViews":"node src/maintenance/index.js","maintenance":"node src/maintenance/index.js","migrate":"node -e 'import(\"./src/database/migrate.js\").then( m => m.migrateDatabase() )'","postinstall":"npm run updateHsts && npm run updateTldList"},"bin":{"mdn-http-observatory-scan":"bin/wrapper.js"},"type":"module","repository":{"type":"git","url":"git+https://github.com/mdn/mdn-http-observatory.git"},"license":"MPL-2.0","devDependencies":{"@eslint/compat":"^2.1.0","@eslint/config-helpers":"^0.7.0","@eslint/js":"^10.0.1","@faker-js/faker":"^10.0.0","@supercharge/promise-pool":"^3.2.0","@types/chai":"^5.2.2","@types/convict":"^6.1.6","@types/pg":"^8.20.0","@types/pg-format":"^1.0.5","@types/tough-cookie":"^4.0.5","c8":"^12.0.0","chai":"^6.2.0","eslint":"^10.7.0","eslint-config-prettier":"^10.1.8","eslint-plugin-import-x":"^4.17.1","eslint-plugin-jsdoc":"^64.2.0","eslint-plugin-n":"^18.2.2","eslint-plugin-unicorn":"^74.0.0","json-schema-to-jsdoc":"^1.1.1","lefthook":"^2.0.14","nodemon":"^3.1.10","prettier-eslint":"^17.1.1","typescript":"^6.0.2","typescript-eslint":"^8.63.0"},"dependencies":{"@fastify/cors":"^11.0.1","@fastify/helmet":"^13.0.0","@fastify/postgres":"^6.0.1","@fastify/static":"^10.1.0","@sentry/node":"^10.1.0","axios":"^1.10.0","axios-cookiejar-support":"^7.0.0","change-case":"^5.4.4","commander":"^15.0.0","convict":"^6.2.4","dayjs":"^1.11.13","fastify":"^5.4.0","fastify-simple-form":"^3.0.0","htmlparser2":"^12.0.0","http-cookie-agent":"^8.0.0","node_extra_ca_certs_mozilla_bundle":"^1.0.7","pg":"^8.16.2","pg-format":"^1.0.4","pg-pool":"^3.10.1","postgrator":"^8.0.0","postgrator-cli":"^10.0.0","structured-headers":"^2.0.3","tldts":"^7.0.12","tough-cookie":"^5.0.0"},"optionalDependencies":{"pg-native":"^3.7.0"},"gitHead":"628e98ef0fe446d24c688b24b94505c7ae776ebf","_id":"@mdn/mdn-http-observatory@1.7.1","bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"homepage":"https://github.com/mdn/mdn-http-observatory#readme","_nodeVersion":"24.19.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-DKNv4pmI3Em6Bf1XqKyUVxwUR10Ctsu/HdVG4mPsS+FBJ8LH61b50H7UsDbjZwdzG5MuN3ijHi15xlHIqw0sug==","shasum":"b4364b7713ee6af67e337b1a9f30496157b99327","tarball":"https://registry.npmjs.org/@mdn/mdn-http-observatory/-/mdn-http-observatory-1.7.1.tgz","fileCount":153,"unpackedSize":1237026,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mdn%2fmdn-http-observatory@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDyq4nCerPhH+uvoUgEvtkCRswfWdYd3gy4L5VwWmWytQIhAKKc5Z9Mi5IUUiud+hctWghbzXOjiNXbjMX1vMUzPR8W"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:917478d0-01a0-4701-8d94-c85c600ccf66"}},"directories":{},"maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mdn-http-observatory_1.7.1_1788442445692_0.5614595916487342"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-17T12:26:54.904Z","modified":"2026-09-03T13:34:06.192Z","1.3.2":"2024-09-17T12:26:55.841Z","1.3.3":"2024-09-17T13:00:36.703Z","1.3.5":"2024-12-04T14:49:49.675Z","1.3.6":"2024-12-05T16:50:23.273Z","1.3.7":"2024-12-16T13:17:11.828Z","1.3.8":"2024-12-20T10:12:17.702Z","1.4.0":"2025-03-21T09:11:59.805Z","1.4.1":"2026-04-10T12:56:53.413Z","1.4.2":"2026-04-10T12:59:12.820Z","1.4.3":"2026-04-10T13:00:37.754Z","1.4.4":"2026-04-10T13:02:31.456Z","1.4.5":"2026-04-10T13:03:40.523Z","1.4.6":"2026-04-10T13:04:47.758Z","1.4.7":"2026-04-10T13:05:47.114Z","1.4.8":"2026-04-10T13:06:58.233Z","1.4.9":"2026-04-10T13:08:16.238Z","1.5.0":"2026-04-10T13:12:50.013Z","1.5.1":"2026-04-10T13:15:42.814Z","1.5.2":"2026-04-10T13:21:12.978Z","1.5.3":"2026-04-10T13:31:22.773Z","1.5.4":"2026-04-10T13:35:33.556Z","1.6.0":"2026-04-10T13:42:20.369Z","1.6.1":"2026-04-10T13:55:11.081Z","1.6.2":"2026-04-14T19:42:22.704Z","1.6.3":"2026-07-16T16:23:57.347Z","1.7.0":"2026-09-02T10:40:28.524Z","1.7.1":"2026-09-03T13:34:05.837Z"},"bugs":{"url":"https://github.com/mdn/mdn-http-observatory/issues"},"author":{"name":"Mozilla Developer Network"},"license":"MPL-2.0","homepage":"https://github.com/mdn/mdn-http-observatory#readme","repository":{"type":"git","url":"git+https://github.com/mdn/mdn-http-observatory.git"},"description":"The MDN HTTP Observatory is a set of tools to analyze your website and inform you if you are utilizing the many available methods to secure it.","maintainers":[{"name":"leomca","email":"leomcardle@gmail.com"},{"name":"caugner","email":"npm@augner.eu"}],"readme":"# Welcome to Mozilla's HTTP Observatory\n\n[HTTP Observatory](https://developer.mozilla.org/en-US/observatory/) is a service that checks web sites for security-relevant headers. It is hosted by [MDN Web Docs](https://github.com/mdn).\n\n## Getting Started\n\nIf you just want to scan a host, please head over to <https://developer.mozilla.org/en-US/observatory/>. If you want to\nrun the code locally or on your premises, continue reading.\n\n### Running a simple scan from the command line\n\nUsing npx to install the package, simply run\n\n```sh\nnpx @mdn/mdn-http-observatory mdn.dev\n```\n\nSubpaths like `example.com/path` and port numbers like `example.com:8080/path` are suported.\n\nIf you want to install the package first, use npm to install it globally\n\n```sh\nnpm install --global @mdn/mdn-http-observatory\n```\n\nAfter that, the `mdn-http-observatory-scan` command should be available in your shell. To scan a host, run\n\n```sh\nmdn-http-observatory-scan mdn.dev\n```\n\nYou can pass custom request headers as JSON using the `--headers` option:\n\n```sh\nmdn-http-observatory-scan --headers '{\"X-Custom\": \"value\"}' mdn.dev\n```\n\n**Warning:** Headers will also be sent on unencrypted HTTP requests, even if the host enforces HTTPS. Do not pass sensitive data.\n\nBoth methods return a JSON response of the following form:\n\n```json\n{\n  \"scan\": {\n    \"algorithmVersion\": 4,\n    \"grade\": \"A+\",\n    \"error\": null,\n    \"score\": 105,\n    \"statusCode\": 200,\n    \"testsFailed\": 0,\n    \"testsPassed\": 10,\n    \"testsQuantity\": 10,\n    \"responseHeaders\": {\n      ...\n    }\n  },\n  \"tests\": {\n    \"cross-origin-resource-sharing\": {\n      \"expectation\": \"cross-origin-resource-sharing-not-implemented\",\n      \"pass\": true,\n      \"result\": \"cross-origin-resource-sharing-not-implemented\",\n      \"scoreModifier\": 0,\n      \"data\": null\n    },\n    ...\n  }\n}\n```\n\n### Running a local API server\n\nThis needs a [postgres](https://www.postgresql.org/) database for the API to use as a persistence layer. All scans and results initiated via the API are stored in the database.\n\n#### Configuration\n\nDefault configuration is read from a default `config/config.json` file. See [this file](src/config.js) for a list of possible configuration options.\n\nCreate a configuration file by copying the [`config/config-example.json`](conf/config-example.json) to `config/config.json`.\nPut in your database credentials into `config/config.json`:\n\n```json\n{\n  \"database\": {\n    \"database\": \"observatory\",\n    \"user\": \"postgres\"\n  }\n}\n```\n\nTo initialize the database with the proper tables, use this command to migrate. This is a one-time action, but future code changes\nmight need further database changes, so run this migration every time the code is updated from the repository.\n\n```sh\nnpm run migrate\n```\n\nFinally, start the server by running\n\n```sh\nnpm start\n```\n\nThe server is listening on your local interface on port `8080`. You can check the root path by opening <http://localhost:8080/> in your browser or `curl` the URL. The server should respond with `Welcome to the MDN Observatory!`.\n\n## JSON API\n\n**Note:** We provide these endpoints on our public deployment of HTTP Observatory at <https://observatory-api.mdn.mozilla.net/>\n\n### POST `/api/v2/scan`\n\nFor integration in CI pipelines or similar applications, a JSON API endpoint is provided. The request rate is limited to one scan per host per `api.cooldown` (default: One minute) seconds. If exceeded, a cached result will be returned.\n\n#### Query parameters\n\n- `host` hostname (required)\n\n#### Examples\n\n- `POST /api/v2/scan?host=mdn.dev`\n- `POST /api/v2/scan?host=google.com`\n\n#### Result\n\nOn success, a JSON object is returned, structured like this example response:\n\n```json\n{\n  \"id\": 77666718,\n  \"details_url\": \"https://developer.mozilla.org/en-US/observatory/analyze?host=mdn.dev\",\n  \"algorithm_version\": 4,\n  \"scanned_at\": \"2024-08-12T08:20:18.926Z\",\n  \"error\": null,\n  \"grade\": \"A+\",\n  \"score\": 105,\n  \"status_code\": 200,\n  \"tests_failed\": 0,\n  \"tests_passed\": 10,\n  \"tests_quantity\": 10\n}\n```\n\n**Note:** For a full set of details about the host, use the provided link in the `details_url` field.\n\nIf an error occurred, an object like this is returned:\n\n```json\n{\n  \"error\": \"invalid-hostname-lookup\",\n  \"message\": \"some.invalid.hostname.dev cannot be resolved\"\n}\n```\n\nHosts that cannot be scanned, because they are invalid, unresolvable, unreachable, or answer with an unexpected HTTP status code, are reported with a `422 Unprocessable Content` status. A `500 Internal Server Error` status indicates a problem on our side.\n\n## Migrating from the public V1 API to the V2 API\n\n### Sunset of the V1 API\n\nThe previous iteration of the Observatory JSON API has been deprecated and shut down on October 31, 2024.\n\n### Migrating your application\n\nIf you previously used the Observatory API with some automation or a CI context, the switch from the old `/api/v1/analyze` endpoint to the new `/api/v2/scan` endpoint should be painless:\n\n- Replace all API calls to `POST https://http-observatory.security.mozilla.org/api/v1/analyze?host=<HOST TO SCAN>` with `POST https://observatory-api.mdn.mozilla.net/api/v2/scan?host=<HOST TO SCAN>`\n- Be aware that the complete list of headers has been removed from the response.\n- The POST parameters `rescan` and `hidden` in the POST body have been removed.\n- Remove all other requests from your application, if any. If you need any additional information about your scan, open the URL from the `detail_url` field of the response in your browser.\n- Note that scans are still limited to one every minute per host, otherwise a cached response is returned.\n\n## Contributing\n\nOur project welcomes contributions from any member of our community.\nTo get started contributing, please see our [Contributor Guide](CONTRIBUTING.md).\n\nBy participating in and contributing to our projects and discussions, you acknowledge that you have read and agree to our [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## Communications\n\nIf you have any questions, please reach out to us on [Mozilla Developer Network](https://developer.mozilla.org).\n\n## License\n\nThis project is licensed under the [Mozilla Public License 2.0](LICENSE).\n","readmeFilename":"README.md"}