{"_id":"@tryghost/api-framework","_rev":"56-f98a088c86a61c6f078de4bf29e8a640","name":"@tryghost/api-framework","dist-tags":{"latest":"3.3.13"},"versions":{"1.0.0":{"name":"@tryghost/api-framework","version":"1.0.0","author":"Ghost Foundation","_id":"@tryghost/api-framework@1.0.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"sanne-san","email":"sanne@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"daniellockyer","email":"hi@daniellockyer.com"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"ronaldlangeveld","email":"hi@ronaldlangeveld.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"dvdwinden","email":"danielvanderwinden@ghost.org"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"9larsons","email":"9larsons@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"charliegilbert","email":"charlie@ghost.org"},{"name":"ghost-slimer","email":"info@ghost.org"}],"dist":{"shasum":"6567a96377570abe16f1030e6a2e081d9363c421","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.0.tgz","fileCount":20,"integrity":"sha512-UrkeSrTwj56GsaM3VdQYHjPZerJ1+e0MPEH0Im5BkvUZkQbMiqQ1h+sCxOyJzRfxil7BJBOxMupifBcGdmN6Yg==","signatures":[{"sig":"MEQCIGSkbc/9ok6fp7A6AOpwKCtJZ9pZtsr5vN0IT7SVDCqKAiBix+NGnFugDorgaIh5GTaFjl/gp0sd3+X+Uj2V5gtzYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45510},"main":"index.js","gitHead":"feac71f0032c5d92f56a8dfa7ccd5a2d883ad53d","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"daniellockyer","email":"hi@daniellockyer.com"},"repository":"https://github.com/TryGhost/Ghost/tree/main/packages/api-framework","_npmVersion":"lerna/8.2.2/node@v20.19.1+arm64 (darwin)","directories":{},"_nodeVersion":"20.19.1","dependencies":{"lodash":"4.17.21","jsonpath":"1.1.1","@tryghost/tpl":"0.1.34","@tryghost/debug":"0.1.34","@tryghost/errors":"1.3.7","@tryghost/promise":"0.3.14","@tryghost/validator":"0.2.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"10.8.2","sinon":"15.2.0","should":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.0_1747138629564_0.29279578761470537","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@tryghost/api-framework","version":"1.0.1","author":"Ghost Foundation","_id":"@tryghost/api-framework@1.0.1","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"sanne-san","email":"sanne@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"daniellockyer","email":"hi@daniellockyer.com"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"ronaldlangeveld","email":"hi@ronaldlangeveld.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"dvdwinden","email":"danielvanderwinden@ghost.org"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"9larsons","email":"9larsons@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"charliegilbert","email":"charlie@ghost.org"},{"name":"ghost-slimer","email":"info@ghost.org"}],"dist":{"shasum":"1133484adbcd3f801a524bce4bdfada5d26d4057","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.1.tgz","fileCount":20,"integrity":"sha512-QC2IiEMj6j7zUjRCl5xavMbaJBQ0UmN438fUCfMh/VZi+z6vqkxverkFgTAcru3dnNCkZofRIFCj2zRsAKG2mA==","signatures":[{"sig":"MEUCIQDOB51dAxbegzQ46v3gqQ8OH8AxuQgmBTLsG9uM/wsYqgIgCFYIWlRbW8aZ8SRsZCVPjQPxRSbdvZ6exoGACuuKon0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45548},"main":"index.js","gitHead":"7be9a4871e1c6548a65722e5fb8424fad58f6871","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"daniellockyer","email":"hi@daniellockyer.com"},"repository":"https://github.com/TryGhost/Ghost/tree/main/packages/api-framework","_npmVersion":"lerna/8.2.2/node@v20.19.1+arm64 (darwin)","directories":{},"_nodeVersion":"20.19.1","dependencies":{"lodash":"4.17.21","jsonpath":"1.1.1","@tryghost/tpl":"0.1.34","@tryghost/debug":"0.1.34","@tryghost/errors":"1.3.7","@tryghost/promise":"0.3.14","@tryghost/validator":"0.2.16","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"10.8.2","sinon":"15.2.0","should":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.1_1747139039139_0.3573961174859446","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@tryghost/api-framework","version":"1.0.2","author":"Ghost Foundation","_id":"@tryghost/api-framework@1.0.2","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"sanne-san","email":"sanne@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"ronaldlangeveld","email":"hi@ronaldlangeveld.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"dvdwinden","email":"danielvanderwinden@ghost.org"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"9larsons","email":"9larsons@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"charliegilbert","email":"charlie@ghost.org"},{"name":"ghost-slimer","email":"info@ghost.org"}],"dist":{"shasum":"ae294e4c8e3182e5e11b108ca2e2eb6fb6e25366","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.2.tgz","fileCount":20,"integrity":"sha512-1Tj2eGWZRfXYaoApXkqMICgtL/BFUEWOjval+Ka2lp13CKVOrTb03lSIzwzFw3CwJnk+bQUGIAsOSMOJbi+Crg==","signatures":[{"sig":"MEQCICCO1lhJnPk2tmwpGFlO+S6+gxZbev92EuXUcs/eDfu9AiBkVvPhz1L/QxcOkRBBRp3GbHN2oP4N4HvUyWBFao+Jbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45611},"main":"index.js","gitHead":"e395f1d79edee4aecc36e572bb402016a8ba9273","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"erisds","email":"github.erisds@gmail.com"},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"lerna/8.1.9/node@v20.17.0+arm64 (darwin)","directories":{},"_nodeVersion":"20.17.0","dependencies":{"lodash":"4.17.21","jsonpath":"1.1.1","@tryghost/tpl":"^0.1.35","@tryghost/debug":"^0.1.35","@tryghost/errors":"^1.3.8","@tryghost/promise":"^0.3.15","@tryghost/validator":"^0.2.17","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"10.8.2","sinon":"15.2.0","should":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.2_1748205641812_0.1161559519465094","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@tryghost/api-framework","version":"1.0.3","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@1.0.3","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"0fceb9bd02a97edb825a2caea8db1ad123dfc602","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.3.tgz","fileCount":19,"integrity":"sha512-JrkKi2Ig91JoaswQMcjnhqf6X+9C0SdKCmB9Nq9d+a+avlMStl1is5oKccRM1yYRd+GY3PZGaAdpO9Q9kmWs3Q==","signatures":[{"sig":"MEUCIBt5utIjRdAkJb9UeXtKN3rg7Kt2LZJ9vkjpRwYAjksBAiEA1oK11+1kfDGYQ7WphKa0RfK/WaN0gouH0QF41mk7gr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44414},"main":"index.js","gitHead":"a0736aab299229aa46dc8b00b595e2753c67c223","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"allouis","email":"fabien@allou.is"},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"10.8.2","description":"API framework used by Ghost","directories":{},"_nodeVersion":"20.19.6","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^0.1.36","@tryghost/debug":"^0.1.36","@tryghost/errors":"^1.3.9","@tryghost/promise":"^0.3.16","@tryghost/validator":"^0.2.18","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"11.7.5","sinon":"21.0.1","should":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.3_1770914733999_0.7857693822031488","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@tryghost/api-framework","version":"1.0.4","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@1.0.4","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"134bcf6f4ecda52ef9394398ee55db25290eec95","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.4.tgz","fileCount":19,"integrity":"sha512-Qn+A0GPkYSaT5d/66cX4LN9ZNNbnH6fdVP7oZli9r6s/5OGJ6qgcCuGjmI2pYfpbIT/l2yEFmagV6MTCCuWBmg==","signatures":[{"sig":"MEQCIEuS9UkGUEgDzfwEV9a44Psyy0LXm8TtKSEghfbV3XPDAiB9APfxJetLGSyyTFTOZnjLA1YmCz9UFZLpp+aYVL27rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44414},"main":"index.js","gitHead":"d82e575abd6d3f2884ea17e2379d144c7a74b4c9","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^0.1.36","@tryghost/debug":"^0.1.36","@tryghost/errors":"^1.3.9","@tryghost/promise":"^0.3.16","@tryghost/validator":"^0.2.18","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"11.7.5","sinon":"21.0.1","should":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.4_1771620486895_0.48272596082345576","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@tryghost/api-framework","version":"1.0.5","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@1.0.5","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"addb061cb8d5454c2ef2a8d5c1b2eb8cdc41149c","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.5.tgz","fileCount":19,"integrity":"sha512-sDhxE5IA2Vv/FxYmjn0nxjqYtjlOH0OgE5B0Di8YTjzun25klSZUQcbiIGSpTpiKHvGKMPvc/a5ADvZt3wuNyw==","signatures":[{"sig":"MEQCIEArlbdVRifCZ9J/sqju2GfCJ9MUzzdgrCf+sB8qFJVuAiALPGQtkObJTK3PwCAApBDMEnSoWwp0bq8Fl7fiFF3Lzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44554},"main":"index.js","gitHead":"8808879368a8fbfdcaf3f82aeb613c61c6ff7739","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^0.1.36","@tryghost/debug":"^0.1.36","@tryghost/errors":"^1.3.9","@tryghost/promise":"^0.3.16","@tryghost/validator":"^0.2.18","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.5_1771629255735_0.6061098618106373","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@tryghost/api-framework","version":"1.0.6","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@1.0.6","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"fc5e608531b48d53670c1cb7ef42296e5bbd3e4d","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.6.tgz","fileCount":19,"integrity":"sha512-XGLE15QgtarwmNUbmhL34p+a7QdlFxr7ihs19LGYfn7wCAEJUN1s3G6L7JeVuKTfX9hCA2AD5Etp4BEEi+zXmg==","signatures":[{"sig":"MEQCIBGD/IxctOIsOaDR3ty8ftk7f5gnKIyV8A5i4JCHDqDAAiBFFTCes3OSTYL53j/G6WdRtN0ddaxllJOjtDh+8ZivaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44554},"main":"index.js","gitHead":"17b8d12cbadd64690a83e640ead03630a72f49dc","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^0.1.36","@tryghost/debug":"^0.1.36","@tryghost/errors":"^1.3.9","@tryghost/promise":"^0.3.16","@tryghost/validator":"^0.2.18","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.6_1771630744802_0.498460527384639","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@tryghost/api-framework","version":"1.0.7","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@1.0.7","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"ee2ec8485601442fe7c9df959f80dcb9ac9b7790","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-1.0.7.tgz","fileCount":19,"integrity":"sha512-V+C/nVE4sgPQ3Vdm0jBAd05Za02inv68ZeO5rE2zYHUGp/PL5MfOPdhynTeFzzHNrmD9vzs+675C5zo/nLJY7w==","signatures":[{"sig":"MEUCIQCPzmD16SQUO5ituZRwy76RUe01QPaBd0L8//nJEoH48gIgcQ1PeT+0f+jEcaiSQP7b9rlumHCGKOp6pcIsF00pz08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44554},"main":"index.js","gitHead":"44bf0cb11ebc1389053cfffafb094e531f2d5144","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^0.1.36","@tryghost/debug":"^0.1.36","@tryghost/errors":"^1.3.9","@tryghost/promise":"^0.3.16","@tryghost/validator":"^0.2.18","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_1.0.7_1771631671546_0.40885368048219584","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@tryghost/api-framework","version":"2.0.0","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@2.0.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"b810cc31a38a17cc41db25fd72be893e9f7b5e8b","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-2.0.0.tgz","fileCount":19,"integrity":"sha512-bknfdwB0mgiL8cLkwcHeWRtDhI8xB47cm1DBpM2X9OHmn7wjBbENr9nZ/QXVQHW/fSUi4XAVOO7XlEGwbbHAmQ==","signatures":[{"sig":"MEUCIQCsplVb8MQIEIDi0jLyTDTYYtzanDvWjeRRl9x8f0RiCQIgZYs/kCHiXHPjOr3QCo9pHgQI7EJuOMMCbNZoSCncLq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44550},"main":"index.js","gitHead":"860315e34ea76f5666ee4f830c82d896dba3e534","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^1.0.0","@tryghost/debug":"^1.0.0","@tryghost/errors":"^2.0.0","@tryghost/promise":"^1.0.0","@tryghost/validator":"^1.0.0","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"8.0.1","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_2.0.0_1771637865037_0.6271892174974514","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@tryghost/api-framework","version":"2.1.0","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@2.1.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"c5413afd65d10c4f2cee4ed3d0921a15c3097b76","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-2.1.0.tgz","fileCount":19,"integrity":"sha512-bHbdiV+RRQGIPBoedwfUgM6Qmmno8pRznC1bICBB7KuwG+8Oo3MBeuY+jOfh8AJNLCcjUCdX69VOCF4I+RCKyQ==","signatures":[{"sig":"MEQCIFAAmTEhVWaqkIcYZn4hNuYk3tLrYSThd9JDD+OnnjwLAiAEBsPu2WoLR5fLfzeoLeqqB2Omny8svi4QvYP4mJ3yew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44551},"main":"index.js","gitHead":"b82454a0ddfa35b366749951b1ff2c4a01070bb7","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^1.1.0","@tryghost/debug":"^1.1.0","@tryghost/errors":"^2.1.0","@tryghost/promise":"^1.1.0","@tryghost/validator":"^1.1.0","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.3","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_2.1.0_1771640003799_0.9462259499993528","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@tryghost/api-framework","version":"2.2.0","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@2.2.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"171d753192709ff08abb36699e50d3c484f8cf47","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-2.2.0.tgz","fileCount":19,"integrity":"sha512-BjSWUhjNypBynHXxGkUKk3u5SMtNOWy37Fe0vUOMXgmP0Xx+VpaxzUspG6aoGflmffSBXyVte0aSk6sF4oVoqg==","signatures":[{"sig":"MEUCIFfDcS1JNL1i2jWRC72QyZswZanMAmYllpFbsJhmP6YYAiEAhCzual75qfnbNlAMf4TO1h7NOYj12mHLnzggZuuMhyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44551},"main":"index.js","gitHead":"49513460134c893152bf83fb43af4ca5f03c41ce","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^1.2.0","@tryghost/debug":"^1.2.0","@tryghost/errors":"^2.2.0","@tryghost/promise":"^1.2.0","@tryghost/validator":"^1.2.0","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.3","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_2.2.0_1771641381163_0.37321638234124155","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@tryghost/api-framework","version":"2.2.1","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@2.2.1","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"e8936d48d0cd6a034af1ed0a3d9d19d74d95e3da","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-2.2.1.tgz","fileCount":19,"integrity":"sha512-d7zwHE5fLTqF/e0iQnxpamQeaYH+Lz+sNtiBQhYQjt4O6yjZcFazaq3PDcCvqn7PczcMOWmsI4iHu6eHz923ag==","signatures":[{"sig":"MEYCIQD+IlPV2Li1j+RoQhpUnINGO98ji1yRDzBmUH7ZBOpf5gIhAMUJYQJ+fbsMh9KzY9QTLd7wOY2mft+H+hjD6aYlN4Ec","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44551},"main":"index.js","gitHead":"bc92ccdb220af24d9de60644ba9bac0fc3368ecc","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.10.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"22.22.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^1.2.1","@tryghost/debug":"^1.2.1","@tryghost/errors":"^2.2.1","@tryghost/promise":"^1.2.1","@tryghost/validator":"^1.2.1","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.3","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_2.2.1_1771642963864_0.5059256163984562","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@tryghost/api-framework","version":"3.0.0","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.0.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"7601f899ff72270564b0fc83435d7221e2ccb34f","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.0.0.tgz","fileCount":19,"integrity":"sha512-wqxMbf1krBJpf9NpznxVPDmW7aOupcCBZ6E15BbcrBxnn+vH7j8XkhNZ5Dn6HA/WmyqHcRxth9XssasdzipJoA==","signatures":[{"sig":"MEUCIEQw3ki1rgSjv4dewf0eQFNrPzH8libO401abf19A1j8AiEA6/37/LOqLFGumsziL9mI+8LmLOlcc9YY5ChLsUpu1q8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44551},"main":"index.js","gitHead":"a7c0e5ace01732810f9c68c61b320fc9cb089410","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing c8 --all --reporter text --reporter cobertura --check-coverage --100 -- mocha --reporter dot './test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.11.0","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.13.1","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^2.0.0","@tryghost/debug":"^2.0.0","@tryghost/errors":"^3.0.0","@tryghost/promise":"^2.0.0","@tryghost/validator":"^2.0.0","json-stable-stringify":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","mocha":"11.7.5","sinon":"21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.0.0_1772470711895_0.8677670803384012","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@tryghost/api-framework","version":"3.0.1","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.0.1","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"a146997ce1cce5c2cf3b719cf00d3a2d01c3ed0a","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.0.1.tgz","fileCount":19,"integrity":"sha512-74zmlHz6TbbGI11R3mxHSdRvl6hzZtI/1S+GO6H3J3p+PBOJboFvhYiJVcrR26SvPOVUxP4VmB1fkNBQQw8vVg==","signatures":[{"sig":"MEQCIFPoK2E3voRuHIObO0oAVCZA830tQqnTc3J7fchO6yMAAiAodeke+pA8wuuxQsFqxjfxvlkQuxbdu5Hd3nSaB60vpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44396},"main":"index.js","gitHead":"2ce1aa4afde1d3870217f3a7186075b7fdf41eae","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing vitest run --coverage --config ../../vitest.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.11.0","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.14.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^2.0.1","@tryghost/debug":"^2.0.1","@tryghost/errors":"^3.0.1","@tryghost/promise":"^2.0.1","@tryghost/validator":"^2.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"21.0.2"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.0.1_1773157824276_0.3486751183154013","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@tryghost/api-framework","version":"3.0.2","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.0.2","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"12f1cef692e75466580cad6d14abf766ccf6843f","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.0.2.tgz","fileCount":19,"integrity":"sha512-S3NmhN26Q1hrRlwCEQfG6PbHjgWhLoPveVB9bdeg4PdZ9W6HGW2Yz53eOdjmxLaoXANtlLGEhFIjEfBnbN49pg==","signatures":[{"sig":"MEUCIHMDcwU4VKZZotjjiJAjn522VX2GkaI1maLCK/vzfPKqAiEAr2gWsN1U2QOTIert8dQTTM74IBy0GnPeQWfjPDLLIwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44396},"main":"index.js","gitHead":"2bd07ce13161c206f2ff480daa2b878561c85e5e","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing vitest run --coverage --config ../../vitest.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.11.0","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.14.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^2.0.2","@tryghost/debug":"^2.0.2","@tryghost/errors":"^3.0.2","@tryghost/promise":"^2.0.2","@tryghost/validator":"^2.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"21.0.2"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.0.2_1773237407896_0.4762350134657187","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@tryghost/api-framework","version":"3.0.3","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.0.3","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"c801e8c8472be2b4d6b1fd57f9718d861f9b81d0","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.0.3.tgz","fileCount":19,"integrity":"sha512-47+jdMym9TRA/OJwG8b3Q3DZ9Msci1aEVpdVJECFSFM236eLM1hV9ZdFcZVytYlRczlB0z55MRB+N1n1PC0Crw==","signatures":[{"sig":"MEUCIQCHoF7vK3Zjb8MmPz9vA+Rq5+nbhrstt3oaZiOVOhITvwIgV9IcGq2doYmgXYrJsreSaqdW5Aazo1Uo9lU37SzGgqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44396},"main":"index.js","gitHead":"2c65889add9feedcb29f984e63057087ca54ae69","scripts":{"dev":"echo \"Implement me!\"","lint":"yarn lint:code && yarn lint:test","test":"yarn test:unit","lint:code":"eslint *.js lib/ --ext .js --cache","lint:test":"eslint -c test/.eslintrc.js test/ --ext .js --cache","test:unit":"NODE_ENV=testing vitest run --coverage --config ../../vitest.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.11.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.14.0","dependencies":{"lodash":"4.17.23","@tryghost/tpl":"^2.0.3","@tryghost/debug":"^2.0.3","@tryghost/errors":"^3.0.3","@tryghost/promise":"^2.0.3","@tryghost/validator":"^2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"21.0.2"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.0.3_1773655092392_0.48684626805646913","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@tryghost/api-framework","version":"3.1.0","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.1.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"55920d82a1bc6f09c1cb0c299fd29667f7258734","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.1.0.tgz","fileCount":20,"integrity":"sha512-nKorQ96ta/d3IqaR551xbT1yvGGLbhfGM3EJ4/mTmLTMrTORLTgCe5+AnTJCjsnhZ30wnvlbn7FpIDLQ3tatag==","signatures":[{"sig":"MEUCIBrsKYT9TEzpndLWrS9HQ/0ETDKLNY0eOdS8ZrEmiWMUAiEAuCv3UjscyADIfwO5n2e0Hj64cOqLJ5PaXa8t+vfRFWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46192},"main":"index.js","_from":"file:tryghost-api-framework-3.1.0.tgz","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"pnpm run test:unit","test:unit":"NODE_ENV=testing vitest run --coverage --config ../../vitest.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"_resolved":"/tmp/f788866bf0ae18f1c781efc5a2640c4e/tryghost-api-framework-3.1.0.tgz","_integrity":"sha512-nKorQ96ta/d3IqaR551xbT1yvGGLbhfGM3EJ4/mTmLTMrTORLTgCe5+AnTJCjsnhZ30wnvlbn7FpIDLQ3tatag==","repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.12.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.14.1","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.1.0","@tryghost/debug":"2.1.0","@tryghost/errors":"3.1.0","@tryghost/promise":"2.1.0","@tryghost/validator":"2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"21.1.2"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.1.0_1776868909911_0.07739544022714684","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@tryghost/api-framework","version":"3.1.1","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.1.1","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"d5256382a9c8120075a707456d3c0bf9e66b8279","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.1.1.tgz","fileCount":20,"integrity":"sha512-43dfVZ/dPGc9ZT3uDIG+9L0hoHHxOKrzErlVV5hlnpGCdGZu/sxfl5Cq4Vgq6vCvVOIchE56nH1lA4osFiTLmQ==","signatures":[{"sig":"MEUCIQDaNr0GsCbhsZyoMrzLVhCW7QeldrsYbOVbvAzfTEvjEQIgYnnKZL2EbQG8c05F1kYRjx4d4n83mMMBg/IRvBwDXcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46709},"main":"index.js","_from":"file:tryghost-api-framework-3.1.1.tgz","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"_resolved":"/tmp/d22605a04846239691422efc82ab0470/tryghost-api-framework-3.1.1.tgz","_integrity":"sha512-43dfVZ/dPGc9ZT3uDIG+9L0hoHHxOKrzErlVV5hlnpGCdGZu/sxfl5Cq4Vgq6vCvVOIchE56nH1lA4osFiTLmQ==","repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.11.0","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.14.1","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.1.0","@tryghost/debug":"2.1.0","@tryghost/errors":"3.1.0","@tryghost/promise":"2.1.0","@tryghost/validator":"3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"21.1.2"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.1.1_1776971940384_0.8393237497296411","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@tryghost/api-framework","version":"3.2.0","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.2.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"409806e933156b71f5194ffbc4089325a8cd9aca","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.2.0.tgz","fileCount":20,"integrity":"sha512-bnz3L6+lnngUGIfTn7/BoR3k4M68Yi4MMZ271BRvD/Ao3pFw0Ohq8EolPWhou742djl0D/fBpH/IBihp/6PesA==","signatures":[{"sig":"MEUCIFaF9iJGe+CbrD3q+mFfbwjJ0MizbdO4mF1cxgVpzvLeAiEAm4roGaBdchPZ4DrCocYSc+FILLmZDfbyvf/cRsYyThQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46709},"main":"index.js","_from":"file:tryghost-api-framework-3.2.0.tgz","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"_resolved":"/tmp/b9484c98bda3e60fff9d06da9889076c/tryghost-api-framework-3.2.0.tgz","_integrity":"sha512-bnz3L6+lnngUGIfTn7/BoR3k4M68Yi4MMZ271BRvD/Ao3pFw0Ohq8EolPWhou742djl0D/fBpH/IBihp/6PesA==","repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.11.0","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.14.1","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.2.0","@tryghost/debug":"2.2.0","@tryghost/errors":"3.2.0","@tryghost/promise":"2.2.0","@tryghost/validator":"3.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"21.1.2"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.2.0_1777304493213_0.14642799098356862","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@tryghost/api-framework","version":"3.2.1","author":{"name":"Ghost Foundation"},"_id":"@tryghost/api-framework@3.2.1","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"homepage":"https://github.com/TryGhost/framework#readme","bugs":{"url":"https://github.com/TryGhost/framework/issues"},"dist":{"shasum":"beeac3ad386ade8868a1eca2327cb9bfe817fca2","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.2.1.tgz","fileCount":20,"integrity":"sha512-0c52F7U5NlIcNT1AXZrU2BJS/9GRJ0Hm06n0xH3ZjE3ixebJMyOqxm7vcGsKYSLzI/9/WJ4zLXy//8oIk9cTjg==","signatures":[{"sig":"MEUCIQCTv6jHS16+aDaXx+ONG7Aq+B92HXbVrXozWtMaB8BOlgIgSn4QWDHLEmPRtYZFMZBUBramxmNuyAa5/xotVi/AGTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46709},"main":"index.js","_from":"file:tryghost-api-framework-3.2.1.tgz","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"_resolved":"/tmp/8498906f6849d0b407941c2056cbf47e/tryghost-api-framework-3.2.1.tgz","_integrity":"sha512-0c52F7U5NlIcNT1AXZrU2BJS/9GRJ0Hm06n0xH3ZjE3ixebJMyOqxm7vcGsKYSLzI/9/WJ4zLXy//8oIk9cTjg==","repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"_npmVersion":"11.12.1","description":"API framework used by Ghost","directories":{},"_nodeVersion":"24.15.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.2.0","@tryghost/debug":"2.2.0","@tryghost/errors":"3.2.1","@tryghost/promise":"2.2.0","@tryghost/validator":"3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.2.1_1778759114479_0.8789276734969809","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@tryghost/api-framework","version":"3.2.2","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.2.2","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"5caadddf8829936bdd82d164dd2d1caa5abcb83b","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.2.2.tgz","fileCount":20,"integrity":"sha512-XArgZbNjiFTxTiehvH91g+TlpjQB1DLspayLcMoA60tw+QPVoD4dMVe1S2HVFzrXX1bZG6EH+BsCLnW4hE0V7Q==","signatures":[{"sig":"MEYCIQDz+TXz9NCSBFKy8Gd1HxDvTDDnYzSzCk6TNaSaKInlVgIhAPXX4+J/KgmHLr4KSW4hOzZrmLXBiR7ibAg0tZ0LAtKr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46709},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.15.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.2.1","@tryghost/debug":"2.2.1","@tryghost/errors":"3.2.2","@tryghost/promise":"2.2.1","@tryghost/validator":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.2.2_1779807318008_0.9572814408516448","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@tryghost/api-framework","version":"3.2.3","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.2.3","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"e68ad9171f4487e9408ff0af0e4e1998befb37ad","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.2.3.tgz","fileCount":20,"integrity":"sha512-esFUvEI5z3i6khBLePa/av5GddK16FbArZL9d2EM8CNuNTPHir3lql/y+QE37D+a6Czx73GmgL0C86H3efbt/A==","signatures":[{"sig":"MEUCIQC5njW68fiVb4WbNwcGS3x6Jqxvj5+kXbT+k9OU9rq/5gIgCAE+teWF01k4ujsYIm0Iggbxibf8tZnvl7SxJtpt+Kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.16.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.2.2","@tryghost/debug":"2.2.2","@tryghost/errors":"3.2.3","@tryghost/promise":"2.2.2","@tryghost/validator":"3.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.2.3_1780317931486_0.006319536935994741","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"@tryghost/api-framework","version":"3.2.4","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.2.4","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"925ae66e6dc621153098558a467abd3cb3cbb372","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.2.4.tgz","fileCount":20,"integrity":"sha512-Otz6uxGsedTsDqQIw62sQ8pmDpiaLMyvsSvCWUBUc44eMix5LFjZ1FMxKl2jXettj6tfMa04+Qz0p71zW/g/Qg==","signatures":[{"sig":"MEUCIHdEZcRxvP7CQ5RnUCVQi4hrrz+pZKAJ11s0Hr6tnTntAiEAuzD9uk5xEVSmwW0AIbQ5sDbLGWiM1FSzo9plR0O4Ukg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.16.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.2.3","@tryghost/debug":"2.2.3","@tryghost/errors":"3.2.4","@tryghost/promise":"2.2.3","@tryghost/validator":"3.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.2.4_1781284623729_0.10996197271853902","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@tryghost/api-framework","version":"3.3.0","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.0","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"c387a01cf0871db1c55011c60eb3c427e6282b12","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.0.tgz","fileCount":20,"integrity":"sha512-nTj+LqDJcUmcevK1dmew2sZgcAqItcVXiZLKGJKUFG7V4aEqbW4FhEpKKjBXR5wS8CSpsJ7OPhx0y6uB6HvgPA==","signatures":[{"sig":"MEUCIAMCEbqsEFUSiGSHzeiY61MYkpl4vFw++M00scEfBtQUAiEA2HJks/zsAqI8vmk7PtNKDDr+jWc2XDCJsy3xo5UukbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.16.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.0","@tryghost/debug":"2.3.0","@tryghost/errors":"3.3.0","@tryghost/promise":"2.3.0","@tryghost/validator":"3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.0_1781970069207_0.4882451661769265","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@tryghost/api-framework","version":"3.3.1","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.1","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"f59df79be9eca7b79ec6e6c262d6db2e449d9d08","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.1.tgz","fileCount":20,"integrity":"sha512-m5QWOenEefARn0ko2MTFjOp2utHTwyuAbfUvyEAbXhERAZHrfRuG3vfkN1293kj44XX35zaWSF/BIp3ytHGT8w==","signatures":[{"sig":"MEQCIB1nw58QbDnvWUuyzICjIRbsoVw3qyBqpm15wUcztg5fAiBO0eebZRASQbbIHLpiLW8DKD+kdWJWHwULesUtJvHceA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.16.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.1","@tryghost/debug":"2.3.1","@tryghost/errors":"3.3.1","@tryghost/promise":"2.3.1","@tryghost/validator":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.1_1782341345525_0.8093291484742096","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"@tryghost/api-framework","version":"3.3.2","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.2","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"5c564bd9b00a41be45f603114529d836bdd0097f","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.2.tgz","fileCount":20,"integrity":"sha512-z5xbe0nYQILciHm7VySDPlsR48tWAItRhachLOb/bMPvWdP83n//2GUuUcNSQZ23pWnklpsqMtp0NNMsH2S9sw==","signatures":[{"sig":"MEUCIQCvtAjNFpHhi5vkd0OOjhS7BoZnoGRpOBspow/2GhPBGAIgY5E8NMK6z9zSiodf/EW6g8tbOD6IMQg7+iaaAm6T96g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.18.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.2","@tryghost/debug":"2.3.2","@tryghost/errors":"3.3.2","@tryghost/promise":"2.3.2","@tryghost/validator":"3.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.2_1784120966494_0.4331218357949016","host":"s3://npm-registry-packages-npm-production"}},"3.3.3":{"name":"@tryghost/api-framework","version":"3.3.3","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.3","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"10e67deee82319f0c1440e5502c5411299e1b493","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.3.tgz","fileCount":20,"integrity":"sha512-5L9VnEwyIBMHIUd2Nj1HxotPAZBRIk7BaoWkcp0Q4U4LNLIPQ6bbJ//mSb+V96sNgv7NKDiFOhJgwnhBrMR6Hg==","signatures":[{"sig":"MEYCIQC0cA8zvkE7s0RrE+to5koXUA3C7I08YnSmTSYisS1+kAIhAK+ACIHUIOD07v7bfzjOOaKnVsxNbwmmqRvS3ng1TgdW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.18.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.3","@tryghost/debug":"2.3.3","@tryghost/errors":"3.3.3","@tryghost/promise":"2.3.3","@tryghost/validator":"3.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.3_1784573619525_0.6072799695564361","host":"s3://npm-registry-packages-npm-production"}},"3.3.4":{"name":"@tryghost/api-framework","version":"3.3.4","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.4","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"577e039774334c1dfc2374d4f3b779a579f1becc","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.4.tgz","fileCount":20,"integrity":"sha512-JnegI7d2EUZC+jehRPDacVebViX2CKwnvYXC3sOajD4zPT/11veF1+BjWcNzN10X88CyLHxzxls0+rXNDvDDEA==","signatures":[{"sig":"MEYCIQDJWiUE6dUiChMlIAm5LZQNLFJulRYWftCU608ioZf/EgIhAOmA2FP0xK42yDlfY15K1VmxuuOnaeCzwQ43irBBzahM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.18.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.4","@tryghost/debug":"2.3.4","@tryghost/errors":"3.3.4","@tryghost/promise":"2.3.4","@tryghost/validator":"3.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.4_1784577797113_0.7647731914886635","host":"s3://npm-registry-packages-npm-production"}},"3.3.5":{"name":"@tryghost/api-framework","version":"3.3.5","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.5","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"4edace145938c52fc554af77254ed871f8b15ec5","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.5.tgz","fileCount":20,"integrity":"sha512-6bDBLtKAHPG82P3ZdY0gT0ZcfpfLbRiK5uwcJhLbr4CfhhH8IWvrecvjkKUskQldL18Tdr2Ct+rfbj2SOYGXog==","signatures":[{"sig":"MEQCIC9vHAiA5HxYApaiJmJIJM9UQVjzuGLvWBsX3QSPBnCwAiBe9tVVmtPNaWZrphT+86g/Ycp5QhIyr+ONdMFoBg6bKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.18.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.5","@tryghost/debug":"2.3.5","@tryghost/errors":"3.3.5","@tryghost/promise":"2.3.5","@tryghost/validator":"3.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.5_1784746105825_0.15172611437570716","host":"s3://npm-registry-packages-npm-production"}},"3.3.6":{"name":"@tryghost/api-framework","version":"3.3.6","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.6","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"jonhickman","email":"jon@theplan.co.uk"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"13c3e187326b8ab2774730b3b1cb6423ac82f85a","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.6.tgz","fileCount":20,"integrity":"sha512-QIbKYdbSfU+S6KNlTRhUay4TLO8oTJhsfDXMIeY0NY4TMYnk+vJ/gursw9NcZGLaL0DqU/RCiosUNO6FMpX9fA==","signatures":[{"sig":"MEUCIA9eswDS8mM5xxM+zGDermM8Q+166UebUeKnvbuDjAWlAiEAlAxXSzL/f5gkNWwCm7QM/hvu1J7LB7ZNGdIw33EYOls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.18.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.6","@tryghost/debug":"2.3.6","@tryghost/errors":"3.3.6","@tryghost/promise":"2.3.6","@tryghost/validator":"3.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.6_1784831128331_0.9631227984569071","host":"s3://npm-registry-packages-npm-production"}},"3.3.7":{"name":"@tryghost/api-framework","version":"3.3.7","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.7","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"77530e75dcaf4437d7927da4023bc4191742497b","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.7.tgz","fileCount":20,"integrity":"sha512-GukxuKan00caUAMgFG6IvTXT5Hdnc8t4GI53JKmuGRuxK+BWUI8Kr5owuu/mp9uBdNrkcaBeQ4AWXWIw12ltkA==","signatures":[{"sig":"MEQCICJb3uutGNVNKFO1Tcjx9x3S0bv3d9BT+j+O7pDvIR88AiBQwav+hyRg/P4CngRRRJqi/HeEeFqMRdnTgLSU4PaRKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46715},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.18.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"2.3.7","@tryghost/debug":"2.3.7","@tryghost/errors":"3.3.7","@tryghost/promise":"2.3.7","@tryghost/validator":"3.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.7_1786542127604_0.43496742351902307","host":"s3://npm-registry-packages-npm-production"}},"3.3.8":{"name":"@tryghost/api-framework","version":"3.3.8","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.8","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"cba37ca68e689b8d989c8595093aa27810ec0185","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.8.tgz","fileCount":20,"integrity":"sha512-AKF93cuc36wsRj/8bB/XVGiYmqntgto5pu4FTi6KEyJpy28kAtz9UAD1G2h52R92ZjcoF0MYy2r4DnelCki6Pg==","signatures":[{"sig":"MEUCIQDfJ+rvhLMw/9eMTf4PlhmIccJN4JkTNPWALA1z6k23IQIgOgcnAneBXllf9wg7l2Xr2GYEXNfl/dEkH8qEvWKIsC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46720},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"^2.3.8","@tryghost/debug":"^2.3.8","@tryghost/errors":"^3.3.8","@tryghost/promise":"^2.3.8","@tryghost/validator":"^3.2.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.8_1786997148783_0.8185874319330579","host":"s3://npm-registry-packages-npm-production"}},"3.3.9":{"name":"@tryghost/api-framework","version":"3.3.9","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.9","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"49b287a308a5bd3fa9f60a5100fbd75b06686432","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.9.tgz","fileCount":20,"integrity":"sha512-G05CO9tbwQnLWGlpC7c0tANQlgdQbJUK9l/j0o4ykfqz6d0W/uZ7avvniU2TKFO24D1pA+POZskZhigqMTCzDA==","signatures":[{"sig":"MEYCIQDsKnOuRjyylL/Sj7VUntQFJA1a3CF7VnMpM0SunQR5JAIhAILwVScTktX/F2Fho0k1/nk8kLIrzSHjKFmo0b5JIMVA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46720},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"^2.3.9","@tryghost/debug":"^2.3.9","@tryghost/errors":"^3.3.9","@tryghost/promise":"^2.3.9","@tryghost/validator":"^3.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.9_1787241664116_0.701274754452524","host":"s3://npm-registry-packages-npm-production"}},"3.3.10":{"name":"@tryghost/api-framework","version":"3.3.10","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.10","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"c1977da9815037e5b08ca137c4488cb63fc41e26","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.10.tgz","fileCount":20,"integrity":"sha512-NHY4ujjxnkxDUibd0tumqMv1Xx6bQaQjp7Xye5pqlbbcS3ARWIbU9+W/wxVrhPdfh7dekeq8iGthBdDs4/7n7Q==","signatures":[{"sig":"MEYCIQDjyCvAl6zM8A5PTmabHIUea5zij+s4/O5oVj2CVuPH5gIhAODgep5iGUsGNScVXkFZ9lq/5qGmEBAuFcj6G90mmFTQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46726},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"^2.3.10","@tryghost/debug":"^2.3.10","@tryghost/errors":"^3.3.10","@tryghost/promise":"^2.3.10","@tryghost/validator":"^3.2.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.10_1787710536392_0.2665881160831818","host":"s3://npm-registry-packages-npm-production"}},"3.3.11":{"name":"@tryghost/api-framework","version":"3.3.11","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.11","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"48138bbc51ee1b2bf6cddd389a8e515d575e00c1","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.11.tgz","fileCount":20,"integrity":"sha512-qAjnmP/6Beg9QhdfP8BytFp0yPzMWCygEPAOXlWCfcKoV7H5hr6FOEKpUkPuUNefz6jIItPFfU10vFM6rXFg3g==","signatures":[{"sig":"MEQCIFa/asf0np0nalni2eBi3yzYeg09XzpORmAtbHTzFvlUAiAup3YTcTXhiaourFUSNHFJnknWKcNbKZC+uN6vFyhv3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46726},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"^2.3.11","@tryghost/debug":"^2.3.11","@tryghost/errors":"^3.3.11","@tryghost/promise":"^2.3.11","@tryghost/validator":"^3.2.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.11_1788290750026_0.6022118378065813","host":"s3://npm-registry-packages-npm-production"}},"3.3.12":{"name":"@tryghost/api-framework","version":"3.3.12","author":"Ghost Foundation","_id":"@tryghost/api-framework@3.3.12","maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"dist":{"shasum":"c9cb334f0475a0099fe89cc75bd6ed91d2677ca5","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.12.tgz","fileCount":20,"integrity":"sha512-L5Q0ZOyYPlZijdo88TTlgpWWhcwvDzfg7ZJz1uzpQRPhzE2Mjo99dQyx+5JGfYhnpnR2mwfcrQStvF34FEMLkg==","signatures":[{"sig":"MEUCIDB9WTZpiE+IlS9farSFB4zco80o3UBD1aWfzj+bq6QsAiEA98W5kbYBNdXGe2a7FfluMuMrlU8zXy6b2/IkHod8pno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46726},"main":"index.js","scripts":{"dev":"echo \"Implement me!\"","lint":"oxlint -c ../../.oxlintrc.json .","test":"NODE_ENV=testing vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"repository":{"url":"git+https://github.com/TryGhost/framework.git","type":"git","directory":"packages/api-framework"},"directories":{},"_nodeVersion":"24.19.0","dependencies":{"lodash":"4.18.1","@tryghost/tpl":"^2.3.12","@tryghost/debug":"^2.3.12","@tryghost/errors":"^3.3.12","@tryghost/promise":"^2.3.12","@tryghost/validator":"^3.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"22.1.0"},"_npmOperationalInternal":{"tmp":"tmp/api-framework_3.3.12_1788291417747_0.2753682742160388","host":"s3://npm-registry-packages-npm-production"}},"3.3.13":{"name":"@tryghost/api-framework","version":"3.3.13","author":"Ghost Foundation","repository":{"type":"git","url":"git+https://github.com/TryGhost/framework.git","directory":"packages/api-framework"},"main":"index.js","publishConfig":{"access":"public"},"dependencies":{"@tryghost/debug":"^2.3.13","@tryghost/errors":"^3.3.13","@tryghost/promise":"^2.3.13","@tryghost/tpl":"^2.3.13","@tryghost/validator":"^3.2.13","lodash":"^4.18.1"},"devDependencies":{"sinon":"22.1.0"},"scripts":{"dev":"echo \"Implement me!\"","test":"NODE_ENV=testing vitest run --coverage","lint":"oxlint -c ../../.oxlintrc.json ."},"_nodeVersion":"24.19.0","_id":"@tryghost/api-framework@3.3.13","dist":{"integrity":"sha512-SXUmfdlgYunmc96hnP160i9ua11syMamDv0oUwCGd6TszLckKRZU8RRKSfjYU0MgkkrOiLuPbwUdh2bQtwnWMg==","shasum":"dd1f77e1a4047bce15e3c2ea8a6e2b1305b7dff2","tarball":"https://registry.npmjs.org/@tryghost/api-framework/-/api-framework-3.3.13.tgz","fileCount":20,"unpackedSize":46727,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tryghost%2fapi-framework@3.3.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG2LnbrkdUllFveLUJ4hbUw6ZrwUjsgPZdlWVpIFdgx/AiEArgGnVPT8Tijd/l+fJfZhL3N3otAhW4mR0ee5ditFsfs="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef2c8b6a-d0d7-4a68-a94f-80576df387b3"}},"directories":{},"maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/api-framework_3.3.13_1788469551559_0.08904012286889662"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-13T12:17:09.386Z","modified":"2026-09-03T21:05:52.070Z","1.0.0":"2025-05-13T12:17:09.775Z","1.0.1":"2025-05-13T12:23:59.316Z","1.0.2":"2025-05-25T20:40:42.001Z","1.0.3":"2026-02-12T16:45:34.161Z","1.0.4":"2026-02-20T20:48:07.035Z","1.0.5":"2026-02-20T23:14:15.870Z","1.0.6":"2026-02-20T23:39:04.974Z","1.0.7":"2026-02-20T23:54:31.691Z","2.0.0":"2026-02-21T01:37:45.173Z","2.1.0":"2026-02-21T02:13:23.967Z","2.2.0":"2026-02-21T02:36:21.360Z","2.2.1":"2026-02-21T03:02:43.991Z","3.0.0":"2026-03-02T16:58:32.029Z","3.0.1":"2026-03-10T15:50:24.447Z","3.0.2":"2026-03-11T13:56:48.055Z","3.0.3":"2026-03-16T09:58:12.536Z","3.1.0":"2026-04-22T14:41:50.052Z","3.1.1":"2026-04-23T19:19:00.554Z","3.2.0":"2026-04-27T15:41:33.353Z","3.2.1":"2026-05-14T11:45:14.606Z","3.2.2":"2026-05-26T14:55:18.162Z","3.2.3":"2026-06-01T12:45:31.644Z","3.2.4":"2026-06-12T17:17:03.861Z","3.3.0":"2026-06-20T15:41:09.366Z","3.3.1":"2026-06-24T22:49:05.669Z","3.3.2":"2026-07-15T13:09:26.657Z","3.3.3":"2026-07-20T18:53:39.674Z","3.3.4":"2026-07-20T20:03:17.273Z","3.3.5":"2026-07-22T18:48:25.968Z","3.3.6":"2026-07-23T18:25:28.464Z","3.3.7":"2026-08-12T13:42:07.754Z","3.3.8":"2026-08-17T20:05:48.985Z","3.3.9":"2026-08-20T16:01:04.269Z","3.3.10":"2026-08-26T02:15:36.528Z","3.3.11":"2026-09-01T19:25:50.154Z","3.3.12":"2026-09-01T19:36:57.878Z","3.3.13":"2026-09-03T21:05:51.691Z"},"author":"Ghost Foundation","repository":{"type":"git","url":"git+https://github.com/TryGhost/framework.git","directory":"packages/api-framework"},"maintainers":[{"name":"zimoatghost","email":"zimo@ghost.org"},{"name":"allouis","email":"fabien@allou.is"},{"name":"kernalghost","email":"matthew@ghost.org"},{"name":"chrisraible","email":"chris@ghost.org"},{"name":"erisds","email":"github.erisds@gmail.com"},{"name":"johnonolan","email":"john@onolan.org"},{"name":"kevinansfield","email":"kevin@ghost.org"},{"name":"cobbspur","email":"david@ghost.org"},{"name":"aileencgn","email":"aileen@ghost.org"},{"name":"jloh","email":"npmjs@jloh.co"},{"name":"minimaluminium","email":"sodbileg.gansukh@gmail.com"},{"name":"sam-lord","email":"hello@samlord.me"},{"name":"pauladamdavis","email":"paul@ghost.org"},{"name":"bobvaneck","email":"bobvaneck@gmail.com"},{"name":"joeegrigg","email":"account@joegrigg.com"},{"name":"hadret","email":"filip@ghost.org"},{"name":"erik-ghost","email":"erik@ghost.org"},{"name":"sagzy","email":"guptazy@gmail.com"},{"name":"vershwal","email":"vershwal.princi@gmail.com"},{"name":"zach1618","email":"zach@ghost.org"},{"name":"mike182uk","email":"mike182uk@gmail.com"},{"name":"luissazevedo","email":"luis@ghost.org"},{"name":"lsinger","email":"leif@ghost.org"},{"name":"nickmoreton","email":"nick@ghost.org"},{"name":"renatoworks","email":"renatocesarcp@gmail.com"},{"name":"rblstr-ghost","email":"rob@ghost.org"},{"name":"evanhahn-ghost","email":"evan@ghost.org"},{"name":"austin.burdine","email":"austin@ghost.org"},{"name":"weylandswart","email":"weyland.swart@gmail.com"},{"name":"ghost-slimer","email":"info@ghost.org"},{"name":"tmciesco","email":"tmciesco@gmail.com"},{"name":"jonatan-ghost","email":"jonatan@ghost.org"},{"name":"9larsons","email":"9larsons@gmail.com"}],"readme":"# API Framework\n\nAPI framework used by Ghost\n\n## Purpose\n\nComposable framework for Ghost API controllers, request framing, validation/serialization pipelines, and HTTP response helpers.\n\n## Usage\n\n### Stages\n\nEach request goes through the following stages:\n\n- input validation\n- input serialisation\n- permissions\n- query\n- output serialisation\n\nThe framework we are building pipes a request through these stages in respect of the API controller configuration.\n\n### Frame\n\nIs a class, which holds all the information for request processing. We pass this instance by reference.\nEach function can modify the original instance. No need to return the class instance.\n\n#### Structure\n\n```\n{\n  original: Object,\n  options: Object,\n  data: Object,\n  user: Object,\n  file: Object,\n  files: Array\n}\n```\n\n#### Example\n\n```\n{\n  original: {\n    include: 'tags'\n  },\n  options: {\n    withRelated: ['tags']\n  },\n  data: {\n    posts: []\n  }\n}\n```\n\n### API Controller\n\nA controller is no longer just a function, it's a set of configurations.\n\n#### Structure\n\n```\nedit: function || object\n```\n\n```\nedit: {\n  headers: object,\n  options: Array,\n  data: Array,\n  validation: object | function,\n  permissions: boolean | object | function,\n  query: function\n}\n```\n\n#### Examples\n\n```\nedit: {\n  headers: {\n    cacheInvalidate: true\n  },\n  // Allowed url/query params\n  options: ['include']\n  // Url/query param validation configuration\n  validation: {\n    options: {\n      include: {\n        required: true,\n        values: ['tags']\n      }\n    }\n  },\n  permissions: true,\n  // Returns a model response!\n  query(frame) {\n    return models.Post.edit(frame.data, frame.options);\n  }\n}\n```\n\n```\nread: {\n  // Allowed url/query params, which will be remembered inside `frame.data`\n  // This is helpful for READ requests e.g. `model.findOne(frame.data, frame.options)`.\n  // Our model layer requires sending the where clauses as first parameter.\n  data: ['slug']\n  validation: {\n    data: {\n      slug: {\n        values: ['eins']\n      }\n    }\n  },\n  permissions: true,\n  query(frame) {\n    return models.Post.findOne(frame.data, frame.options);\n  }\n}\n```\n\n```\nedit: {\n  validation() {\n    // custom validation, skip framework\n  },\n  permissions: {\n    unsafeAttrs: ['author']\n  },\n  query(frame) {\n    return models.Post.edit(frame.data, frame.options);\n  }\n}\n```\n\n## Develop\n\nThis is a monorepo package.\n\nFollow the instructions for the top-level repo.\n\n1. `git clone` this repo & `cd` into it as usual\n2. Run `pnpm install` to install top-level dependencies.\n\n## Test\n\n- `pnpm lint` runs oxlint\n- `pnpm test` runs lint and tests\n","readmeFilename":""}