{"_id":"assert-json-body","_rev":"20-cdd3c9b1c3e799b9fb32fddc4c046dbb","name":"assert-json-body","dist-tags":{"latest":"1.8.1"},"versions":{"1.0.2":{"name":"assert-json-body","version":"1.0.2","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.0.2","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"3bba455781c53f7a95d76e17c78e1fcb073020c2","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.0.2.tgz","fileCount":211,"integrity":"sha512-rOGGAeJyI1yEdk1ZnFTl1j6o+MYN7IF4d617n1s9ofAg4mL1ONqebYClK0uKRsuUi5sH7s5aFVjLp+Y6nl1uwQ==","signatures":[{"sig":"MEUCICoi9dWgbT+1cfNIF/v60w8ZVxqKp+7RsZsg4xpFIPMQAiEA0Hgi75rS7OGjAJSsInkhEyQepb0rxxoHLJ85SJQwI6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329281},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"0f3e32c01ceee1918149d3d6ce02a3b94ad0437e","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.0.2_1758794781715_0.8447488695065457","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"assert-json-body","version":"1.1.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.1.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"10f9fef4581eda31ec87610c540d0d3970a259d2","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.1.0.tgz","fileCount":211,"integrity":"sha512-mSgAp+mwASw/dxgqhUVV6VzBAkkg2CMGGu7SI0hOGAYzllMwNueLG2cC6MkiYTY2eeuCr98pHYNJRv8T/q4E/g==","signatures":[{"sig":"MEYCIQCFovKGKfwmTnxyrE8whN72ZXtmUsplqv4p5boG92m+bwIhAKtjKp/XBQ/ZEvz1h8dOJmcipPLvi21AbQERGlvu74Js","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328996},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"1403ec3b72e675e0da00c6c58dcdae7b80288871","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.1.0_1758845830141_0.39884350808975944","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"assert-json-body","version":"1.1.1","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.1.1","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"fd170735d63f81d542c63beb934dd6ff1d5efd4d","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.1.1.tgz","fileCount":211,"integrity":"sha512-YNeUrD+u1wRrWffqKXQJpZ/WGWBsdkLsLfysq6UzCj5f7S5U4B4HGdK37f6AgkqpbS0hnLGCnht5G+i6lFg2XQ==","signatures":[{"sig":"MEYCIQD1pRZREyGgasMef5ANWqmQsPLqtdiH1lygPJPXKX0FwAIhAPT6fb92LWaGWYM4NkgvU6tKtzAGL9r5/O7l9c+TVBet","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329340},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"4738e36a537098d855dc9dc07cc362667c781b6b","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.1.1_1758848475073_0.27072983067887946","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"assert-json-body","version":"1.1.2","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.1.2","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"ed670f9631309914104e79b61e344c24219e74b0","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.1.2.tgz","fileCount":211,"integrity":"sha512-8RpZVSz35mi8qEmQkx9EPfVi2nLw9+sW8y2vZVs4k3NbGrsb5oXxbWbRwnhi1Cnvjp1RMWiLMZTZ0dHCPnAYLw==","signatures":[{"sig":"MEQCIFU8Bds1aA9Lu4drhSah82xwVqJGfdKqKlHtJm8QfChBAiBnCP33rBmMKFqTEl2alm1cEMREoUFpay4tRLfwxK9D0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333168},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"7930ad8e24fd30b015d6030d1242db7cc3cb4b46","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.1.2_1758849451055_0.09586994070361787","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"assert-json-body","version":"1.1.3","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.1.3","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"4f1b1c7e301c3b65db33a243dcc582c9e790ad0f","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.1.3.tgz","fileCount":211,"integrity":"sha512-A7z7nzs6es43IJ24bupPb5Gt/l/x0U6muxhkjYuKmBAdLJyeRwKyqZ9su9XcBbAhM2blQIGR1YI4wHsQDia1Gg==","signatures":[{"sig":"MEQCIBIUHlqwNqd9+1iYoizE70zD0TpY8/nglTNuJgwUX8M5AiBU28eeoY91mWafdn1ZmfVHI2cM5PN5IaENz5KYqxLtGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333318},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"e7e3332fc6b0ce2ab09b35e87f5d9d9e236a020f","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.1.3_1758851432121_0.20193509262675757","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"assert-json-body","version":"1.2.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.2.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"10a01d9b9efa161cd26e2eff4cf5c4538628dbee","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.2.0.tgz","fileCount":211,"integrity":"sha512-QaJBbuM/7oAhRUXRmw6+g6gCRAJxQM0lqKCzSz/rFkBHnzPmtG1R718iCcIZqgBcJPiGc0oVh2uj4iWcDCNK2Q==","signatures":[{"sig":"MEQCIHqo9NTN+3aaCc+JISPL6DrsXQ0aaqq5Vo6sC+2nFUjHAiA26FlLXanbY9Lu8mEAyfT+96L/ho0RkjHsDIv/1e3znQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328647},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"0fe8046d361f3dd552dc88cfd0ff7e150a1fe01c","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.2.0_1758853572031_0.41769704348222936","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"assert-json-body","version":"1.2.1","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.2.1","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"178b923be2ab2fab9a20f3e2a512ad26e891bd83","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.2.1.tgz","fileCount":211,"integrity":"sha512-4gJsvDyYmnrEu5bKJKrllwmsVKj6Xw3g6GM2gsd1yuds9KROFDaq//UMEs9FBzVqdOJH/cOsW+sklGMwBDYAFA==","signatures":[{"sig":"MEYCIQCURrgNrhBcEBpn1oF8F9MMlCI2vm5ULlea9URg3I3sZQIhAIr6EFg+niAD3PiuC4gEhy+JzJ7yCx4k22Axmuq9+cN6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329431},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"279cd4ebf3f5b95ec8a0e376e449ac4bf9990625","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.2.1_1759201841136_0.6212169087476587","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"assert-json-body","version":"1.2.2","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.2.2","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"21a769eaa9f5bb883d5ab89fa1f1b1a1b56e35fa","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.2.2.tgz","fileCount":211,"integrity":"sha512-K+8SPba3F62Bi0xGdl++0celpHPYLbYcwI0VSCVWA+LywqgkbIPgQkSRYfn6QhCIpHWC1KDOlUUXT1Iym1ROAg==","signatures":[{"sig":"MEUCIBAL9UK7J0jzpP5aMcn8NmxV72caKN8S99m0XXfXXnuWAiEAmkv8x0iFGsY2kp8xy+OM340GxPSLWSRHIpIRghuaDNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329413},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"63e52f14a1e7efb5a7871c5a75d2f270aba8bace","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.2.2_1759203774309_0.18898820606847155","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"assert-json-body","version":"1.2.3","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.2.3","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"53e3e6610f8df296b076ed5198308e2e8d712b24","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.2.3.tgz","fileCount":211,"integrity":"sha512-V8ZlZOuEFaJlZWvlOmv8JaaF15c510H/rYfWOQGqFBkc7MnRjlDEsh9+US7Q72B1e4Ynv5yexjRC3piZpkz0Kg==","signatures":[{"sig":"MEUCIQC+QcX0FOEg+puOaAJAvQbx6oX9IxXlO+3/glQGb7rOnQIgHEdVD+WLRs6gdrbBIkl08uu2GnK58W0byVKZ0VGqVvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330615},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"ad5e5649a12f995c5cf89a7b2e48848ccd162cad","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.2.3_1759206030049_0.7190183403718322","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"assert-json-body","version":"1.3.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.3.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"176a1886a8e99f19724192f7fef8bbebb55bc637","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.3.0.tgz","fileCount":219,"integrity":"sha512-aPYUavndk6wUNNnnWFnq2F00m7dEN7+hNxohvcd1E9r2IqBFTmKYJGjURREa6MSuW/kxIkZ0cEcXw+6sFunIYA==","signatures":[{"sig":"MEQCIGF5Dj8F2eae1kJYt/VzUYsJqjUWLkKy3m2dsT+rT+DTAiB9Tpbg2sWJ5L2/akH8m0+mlH2n5DQE3Sjsy0eCirKlwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342534},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"ff3d32fc6eab96c50c7637c9079797ea8174aa34","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.3.0_1759210156903_0.23352071363195392","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"assert-json-body","version":"1.3.1","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.3.1","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"75def856332e057c3ce5d5d73a9e8dd93e0b69db","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.3.1.tgz","fileCount":219,"integrity":"sha512-Tc64J3xig/X2qOux4sdIYumfPCYym+cPpgVVUoKbVfucv/7GRoTs1cXQdo+4TmN9cEOZjscGe3/5oh/fOd3hJQ==","signatures":[{"sig":"MEYCIQDQFqsQ4pJP/T8WHC7SMq8SiBvAe+tbFdQljzH08JVLmAIhAMvOOwaNKmlzN5z8di5bbKkz3oj1Ndyfwp3uBt19YgLm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342510},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"bf6f77d82d07f89a71520a379909836b4832fb34","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"sitapati","email":"josh@magikcraft.io"},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"10.9.3","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^20.19.17","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^23.0.0","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.3.1_1760562552457_0.32347932194376794","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"assert-json-body","version":"1.5.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.5.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"028f55125581d15db878e88960d663dfbb3015be","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.5.0.tgz","fileCount":219,"integrity":"sha512-yq63tuBS/lIbY3iqyzrqAJY2TkqmHVmqKMoblaVBPsYi0Y98L4XXH6vkyvkVRC1AdneF11EE+gMmA6TumSUzSA==","signatures":[{"sig":"MEUCIHPFCRlOah4RWrXX9OVJJX58SXRQpnraOFPKILAN+pnpAiEA/xNuqMQ7dNy3ZUG0m/mZCJtGZzUQ3+0rRljAD9t/Lq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344495},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"5cceaf33b404261fec7bddac4b9f7fd0189e02a1","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"24.12.0","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.5.0_1766156284780_0.7884226494180573","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"assert-json-body","version":"1.5.1","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.5.1","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"8b0991cd471172bf2a3a45957e4d219abbc0bf06","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.5.1.tgz","fileCount":227,"integrity":"sha512-k+dUbDU3xiRQj5sl+2Ljr6/Pr7tjC27LEwQFPDV49q1dXnMjnkXafkXb/n3r8W/LnzMpkx3WvwTXcjgeiLmzPg==","signatures":[{"sig":"MEYCIQCI/uw6WupwWVUw9+SBdvxB0LbvNZy9LfeCZjSRihZxJwIhAN3kc9esu8RAfdGa8rVnQPxCtVyVtQEatgNfZW3iBvZG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351795},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"4b8767df8ff3cebf68c0a9a12c98584008a7dda8","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"24.12.0","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.5.1_1768196643678_0.10284132834780801","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"assert-json-body","version":"1.6.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.6.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"da3201ffd6eb5ea245e628609a73bdd921973195","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.6.0.tgz","fileCount":227,"integrity":"sha512-xzgXhA3RTBaOHMBBHi4h/vibikOFEpKdmN0mkQqCQwqu14XkkhH+hBx4TYw0sr+GAbBkFuQDJ9+Jrxjl3nFwZA==","signatures":[{"sig":"MEYCIQCgmqFd12M7MtNKx58N1s0wCMmsmqmxPCiG2BvSHxDbOQIhALjvOPgX2dYHGSrLAqiI6KiyTkz4z1j1flng+EZfHFxB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352817},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"dc99b7c7dd07af4288a6fbca22e0cad4a92957a5","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.8.0","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"24.13.1","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.6.0_1771508544832_0.07638789736768192","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"assert-json-body","version":"1.6.1","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.6.1","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"5879c99c5db61bcf14eed22fffbf2c828d40d2f4","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.6.1.tgz","fileCount":227,"integrity":"sha512-AmIK3/lm/+GfZu9kyhsQQZRwKtI40FWPBODeYMZRqtFbl4nGsAcQ3DE6J4Ep71EBF3AX5345+psSnf6fWfoIOg==","signatures":[{"sig":"MEUCIQC2yLzUzQ0oF8pWO7ba1Kb6cop6ylVhnpZ92xnaxM8YowIgUdyEWNuhn7SFkF1nO5Qt9qypQFLzQtaxEBp1NZausJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353367},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"e8a4f03e9716226039613446848ae8d2add57dfe","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.6.1_1771534556520_0.23803212071727864","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"assert-json-body","version":"1.6.2","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.6.2","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"9d96fc93df89d93c2553606331aa52d696da76f2","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.6.2.tgz","fileCount":227,"integrity":"sha512-uARV5NLV/H3jp0d8sgnO2c7bIXTVytnDxiMuP41gL6wLi+6gv9BN2QmHpVY9HOIEht1Bq3f+01rFUdxJURMgMg==","signatures":[{"sig":"MEYCIQDtUkC1hNB6mlVHWN0Rq8D8+GpRYIDFgyagC7AR7KiPfwIhAJhhDLyRH+bs/FJCaj8UNvV2CN6Y7hAQButzDeh2H+1r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353551},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"4740a28113fbaf032417a1f4ed410bcdd2dc1571","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","prepare:husky":"husky install","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.8.0","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"_nodeVersion":"24.13.1","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.6.2_1772635473322_0.5971354528109929","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"assert-json-body","version":"1.7.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.7.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"d182caf725ff532fd5d38f37c8840827ed11dc5e","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.7.0.tgz","fileCount":227,"integrity":"sha512-YB6kRnPo5LZ1yN4x8nHIzh+BGxx3mCWCVPh0OnCQhCLpPrwFF+1CRhMoEXZ6cci7Q0g0jYMIoeSuHHzz5ikijw==","signatures":[{"sig":"MEQCICHPORzk1PQG0RnUoqYuFHaCDsxJjWJFK9WtMGO2tx3TAiBJza0AqXkiDb27cVAdkC8HscJEI2pp/uiW/pXKMqvDvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369010},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"49ac24f47b372ab4c63b4a97d22fad3a69779e64","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"husky && npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","lint:fix":"eslint . --fix && prettier --write .","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","build:deno":"./scripts/build-deno.sh","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","build:deno:cross":"./scripts/build-deno.sh --cross","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.9.0","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"lint-staged":{"*.{ts,js,mjs,cjs}":["eslint --fix"],"*.{ts,js,mjs,cjs,json,md,yaml,yml}":["prettier --write"]},"_nodeVersion":"24.14.0","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","lint-staged":"^16.3.2","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.7.0_1772926466969_0.8117429197804313","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"assert-json-body","version":"1.7.1","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.7.1","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"d2e855042065fe4575fc79c60d3bdc52bc7d5d2d","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.7.1.tgz","fileCount":227,"integrity":"sha512-WryQ9w0KMgSA0XYERE/BLV9BHOqyIxvTm3aE36M9ulv/UeXZHynBuizmDkLQhYj3TjyKUSoqi03E2KGQuKdfOw==","signatures":[{"sig":"MEQCIFAkueSrQg5UeDn2Ryeyg/Aoj/uJW2iUNltTSOWdSp1wAiBwkS51m5PyO1LSHVPJTrA5aYl3ya36SB4ed6XYhyFgdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369010},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"62b5f5c9b6e43ec1db4d86df2ef19c5b1811a769","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"husky && npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","lint:fix":"eslint . --fix && prettier --write .","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","build:deno":"./scripts/build-deno.sh","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","build:deno:cross":"./scripts/build-deno.sh --cross","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.9.0","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"lint-staged":{"*.{ts,js,mjs,cjs}":["eslint --fix"],"*.{ts,js,mjs,cjs,json,md,yaml,yml}":["prettier --write"]},"_nodeVersion":"24.14.0","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","lint-staged":"^16.3.2","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.7.1_1772927027726_0.3305911526546592","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"assert-json-body","version":"1.8.0","keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","_id":"assert-json-body@1.8.0","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"homepage":"https://github.com/camunda/assert-json-body#readme","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"bin":{"assert-json-body":"dist/cli/index.js"},"dist":{"shasum":"ae9eebb8ca4582aeb47f5ca5fee5c798058077d8","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.8.0.tgz","fileCount":227,"integrity":"sha512-ZpunSh3hGsGlVWZVK7mDq8ECkdvRcmQH0OVrbVOzD9eZ6P7n7Q3jU5dEnFDn3R/Dc5aq7fCUxMk5ENcVhC8qlw==","signatures":[{"sig":"MEQCIGegHF9dbXNUuI1bYqwuGXaWk9e/tX3/wOT4Ms+ybQakAiBJYhI29Sij4ulFmWfiZ+VemwWwrPR5/HO2ShZ9N3bmJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":371593},"main":"./dist-cjs/index.js","type":"module","types":"./dist-cjs/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist-cjs/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js"},"./base":{"types":"./dist/base.d.ts","import":"./dist/base.js","require":"./dist-cjs/base.js"},"./package.json":"./package.json"},"gitHead":"071a3b59e14a1386417f2f82f49de461419bcc69","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"branches":["main"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint .","test":"vitest run -c vitest.config.ts","build":"npm run build:esm && npm run build:cjs","format":"prettier --write .","dev:cli":"tsx watch src/cli/index.ts","prepare":"husky && npm run build","release":"semantic-release","generate":"node ./dist/cli/index.js extract","lint:fix":"eslint . --fix && prettier --write .","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build:esm":"tsc -p tsconfig.json","build:deno":"./scripts/build-deno.sh","test:watch":"vitest -c vitest.config.ts","config:init":"node ./dist/cli/index.js init-config","build:deno:cross":"./scripts/build-deno.sh --cross","test:integration":"vitest run -c vitest.config.integration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"repository":{"url":"git+https://github.com/camunda/assert-json-body.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","directories":{},"lint-staged":{"*.{ts,js,mjs,cjs}":["eslint --fix"],"*.{ts,js,mjs,cjs,json,md,yaml,yml}":["prettier --write"]},"_nodeVersion":"24.15.0","dependencies":{"debug":"^4.4.3","undici":"^6.19.8","js-yaml":"^4.1.0","openapi-types":"^12.1.3","@apidevtools/swagger-parser":"^12.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","husky":"^9.0.11","eslint":"^8.57.1","vitest":"^2.0.5","globals":"^16.4.0","prettier":"^3.2.5","@eslint/js":"^9.36.0","typescript":"^5.4.5","@types/node":"^24.10.4","lint-staged":"^16.3.2","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@commitlint/cli":"^19.4.0","semantic-release":"^25.0.2","typescript-eslint":"^8.44.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.0.2","@semantic-release/github":"^10.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.4.0","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/assert-json-body_1.8.0_1779218589135_0.6638647863616187","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"assert-json-body","version":"1.8.1","description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","type":"module","main":"./dist-cjs/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist-cjs/index.js","types":"./dist/index.d.ts"},"./base":{"import":"./dist/base.js","require":"./dist-cjs/base.js","types":"./dist/base.d.ts"},"./cli":{"import":"./dist/cli/index.js","require":"./dist-cjs/cli/index.js","types":"./dist/cli/index.d.ts"},"./package.json":"./package.json"},"bin":{"assert-json-body":"dist/cli/index.js"},"scripts":{"build:esm":"tsc -p tsconfig.json","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist-cjs/package.json","build":"npm run build:esm && npm run build:cjs","build:deno":"./scripts/build-deno.sh","build:deno:cross":"./scripts/build-deno.sh --cross","dev":"tsx watch src/index.ts","dev:cli":"tsx watch src/cli/index.ts","generate":"node ./dist/cli/index.js extract","config:init":"node ./dist/cli/index.js init-config","test":"vitest run -c vitest.config.ts","test:watch":"vitest -c vitest.config.ts","test:integration":"vitest run -c vitest.config.integration.ts","lint":"eslint .","lint:fix":"eslint . --fix && prettier --write .","format":"prettier --write .","prepare":"husky && npm run build","release":"semantic-release"},"repository":{"type":"git","url":"git+https://github.com/camunda/assert-json-body.git"},"keywords":["openapi","playwright","testing","assertion","cli"],"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"homepage":"https://github.com/camunda/assert-json-body#readme","dependencies":{"@apidevtools/swagger-parser":"^12.1.0","debug":"^4.4.3","js-yaml":"^4.1.0","openapi-types":"^12.1.3","undici":"^6.19.8"},"devDependencies":{"@commitlint/cli":"^19.4.0","@commitlint/config-conventional":"^19.4.0","@eslint/js":"^9.36.0","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/git":"^10.0.1","@semantic-release/github":"^10.0.6","@semantic-release/npm":"^13.0.2","@semantic-release/release-notes-generator":"^14.0.0","@types/debug":"^4.1.12","@types/js-yaml":"^4.0.9","@types/node":"^24.10.4","eslint":"^8.57.1","globals":"^16.4.0","husky":"^9.0.11","prettier":"^3.2.5","semantic-release":"^25.0.2","tsx":"^4.7.0","typescript":"^5.4.5","lint-staged":"^16.3.2","typescript-eslint":"^8.44.1","vitest":"^2.0.5"},"lint-staged":{"*.{ts,js,mjs,cjs}":["eslint --fix"],"*.{ts,js,mjs,cjs,json,md,yaml,yml}":["prettier --write"]},"publishConfig":{"access":"public","provenance":false,"registry":"https://registry.npmjs.org/"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],["@semantic-release/npm",{"npmPublish":true}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}],"@semantic-release/github"],"verifyConditions":["@semantic-release/changelog","@semantic-release/git","@semantic-release/github"]},"gitHead":"ae18fdde954d49441704e29a33ed6a35ed34c34c","types":"./dist-cjs/index.d.ts","_id":"assert-json-body@1.8.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-6doeu9SD6E0sBEaRSKUcZ+lu6QEqXugyYx18U6o2wqrokMY7HfpspvWtgkxCQRKXLnTNReuVTLnEW/vdwnvLxw==","shasum":"d60ee9a26cb864c53cf8b7135cbb7a113c959f15","tarball":"https://registry.npmjs.org/assert-json-body/-/assert-json-body-1.8.1.tgz","fileCount":227,"unpackedSize":371737,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/assert-json-body@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDRhXQgSLN3ct4OWEgLnEuu7KAoswvmbxyqyt9qKkxsYAiEA213fb+JNkpqxNnug9t78QUaKVV5XWrJaVKouCK3jd1E="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4da1e8b6-16c5-4abe-be44-33b73fe59557"}},"directories":{},"maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/assert-json-body_1.8.1_1779266190234_0.6802698675248038"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-25T10:06:21.586Z","modified":"2026-05-20T08:36:30.874Z","1.0.2":"2025-09-25T10:06:21.908Z","1.1.0":"2025-09-26T00:17:10.384Z","1.1.1":"2025-09-26T01:01:15.255Z","1.1.2":"2025-09-26T01:17:31.268Z","1.1.3":"2025-09-26T01:50:32.301Z","1.2.0":"2025-09-26T02:26:12.231Z","1.2.1":"2025-09-30T03:10:41.315Z","1.2.2":"2025-09-30T03:42:54.544Z","1.2.3":"2025-09-30T04:20:30.236Z","1.3.0":"2025-09-30T05:29:17.105Z","1.3.1":"2025-10-15T21:09:12.650Z","1.5.0":"2025-12-19T14:58:04.938Z","1.5.1":"2026-01-12T05:44:03.818Z","1.6.0":"2026-02-19T13:42:24.977Z","1.6.1":"2026-02-19T20:55:56.694Z","1.6.2":"2026-03-04T14:44:33.454Z","1.7.0":"2026-03-07T23:34:27.111Z","1.7.1":"2026-03-07T23:43:47.915Z","1.8.0":"2026-05-19T19:23:09.299Z","1.8.1":"2026-05-20T08:36:30.486Z"},"bugs":{"url":"https://github.com/camunda/assert-json-body/issues"},"author":{"name":"Josh Wulf","email":"josh.wulf@camunda.com"},"license":"ISC","homepage":"https://github.com/camunda/assert-json-body#readme","keywords":["openapi","playwright","testing","assertion","cli"],"repository":{"type":"git","url":"git+https://github.com/camunda/assert-json-body.git"},"description":"OpenAPI response body extraction and JSON shape assertion toolkit (framework-agnostic)","maintainers":[{"name":"sitapati","email":"josh@magikcraft.io"}],"readme":"# assert-json-body\n\n[![Release](https://github.com/camunda/assert-json-body/actions/workflows/release.yml/badge.svg)](https://github.com/camunda/assert-json-body/actions/workflows/release.yml)\n[![npm version](https://img.shields.io/npm/v/assert-json-body.svg)](https://www.npmjs.com/package/assert-json-body)\n\nFramework-agnostic toolkit to:\n\n- Extract OpenAPI response schemas into a compact `responses.json` artifact\n- Validate real JSON response bodies against the extracted required/optional field model\n- Assert inside any test runner (Vitest, Jest, Playwright, etc.)\n\n## Installation\n\n```\nnpm install assert-json-body\n```\n\n## Quick Start\n\n1. (Optional) Initialize a config file:\n\n   ```\n   npx assert-json-body config:init\n   ```\n\n   Produces `assert-json-body.config.json` (edit repo, spec path, output dir, etc.).\n\n2. Extract responses from your OpenAPI spec:\n\n   ```\n   npx assert-json-body extract\n   ```\n\n   This writes (by default):\n   - `./json-body-assertions/responses.json` (schema bundle)\n   - `./json-body-assertions/index.ts` (auto-generated typed wrapper)\n     or the configured `responsesFile` for the JSON schema artifact.\n\n   The init step also adds an npm script for convenience:\n\n   ```jsonc\n   // package.json\n   {\n     \"scripts\": {\n       \"responses:regenerate\": \"assert-json-body extract\",\n     },\n   }\n   ```\n\n   So you can run:\n\n   ```\n   npm run responses:regenerate\n   ```\n\n3. Validate in a test (untyped import):\n\n   ```ts\n   import { validateResponseShape, validateResponse } from 'assert-json-body';\n\n   // Suppose you just performed an HTTP request and have jsonBody\n   validateResponseShape(\n     { path: '/process-instance/create', method: 'POST', status: '200' },\n     jsonBody\n   );\n   // Throws if JSON shape violates required field presence / type rules.\n\n   // Playwright convenience helper: consumes APIResponse, checks HTTP status, then validates JSON\n   await validateResponse(\n     { path: '/process-instance/create', method: 'POST', status: '200' },\n     playwrightResponse\n   );\n   ```\n\n4. Prefer typed validation (after extract):\n\n   ```ts\n   import { validateResponseShape, validateResponse } from './json-body-assertions/index';\n\n   // Now path/method/status are constrained to extracted endpoints\n   validateResponseShape(\n     { path: '/process-instance/create', method: 'POST', status: '200' },\n     jsonBody\n   );\n   await validateResponse(\n     { path: '/process-instance/create', method: 'POST', status: '200' },\n     playwrightResponse\n   );\n\n   // @ts-expect-error invalid status not in spec\n   // validateResponseShape({ path: '/process-instance/create', method: 'POST', status: '418' }, jsonBody);\n   ```\n\nRegenerate typed file whenever the spec changes by re-running `extract` (commit both `responses.json` and `index.ts` if you track API contract changes in version control).\n\nYou can control default throw/record behavior globally via config or env (see below) and override per call.\n\n### CI Integration\n\nKeep the generated artifacts (`responses.json`, `index.ts`) in sync with the upstream spec during continuous integration:\n\nExample GitHub Actions step (add after install):\n\n```yaml\n\t- name: Regenerate response schemas\n\t\trun: npm run responses:regenerate\n```\n\nIf you commit the generated files:\n\n1. Run the regenerate step early (before tests).\n2. Add a check that the working tree is clean to ensure developers didn’t forget to re-run extraction locally:\n\n```yaml\n\t- name: Verify no uncommitted changes\n\t\trun: |\n\t\t\tgit diff --exit-code || (echo 'Generated response artifacts out of date. Run: npm run responses:regenerate' && exit 1)\n```\n\nIf you prefer not to commit generated artifacts:\n\n- Add the output directory (default `json-body-assertions/`) to `.gitignore`.\n- Always run `npm run responses:regenerate` before building / testing.\n\nCaching tip: if your spec repo is large, you can cache the sparse checkout directory by keying on the spec ref (commit SHA) to speed up subsequent runs.\n\n### Standalone Binary (no Node.js required)\n\nPre-built standalone binaries are attached to each [GitHub release](https://github.com/camunda/assert-json-body/releases). These are self-contained executables compiled with Deno — no Node.js or npm installation needed.\n\nAvailable platforms:\n\n- `x86_64-unknown-linux-gnu` / `aarch64-unknown-linux-gnu`\n- `x86_64-apple-darwin` / `aarch64-apple-darwin`\n- `x86_64-pc-windows-msvc`\n\nUsage in CI (e.g. GitHub Actions):\n\n```yaml\n- name: Download assert-json-body\n  run: |\n    curl -fsSL -o assert-json-body \\\n      \"https://github.com/camunda/assert-json-body/releases/latest/download/assert-json-body-x86_64-unknown-linux-gnu\"\n    chmod +x assert-json-body\n\n- name: Regenerate response schemas\n  run: ./assert-json-body extract\n  env:\n    AJB_REF: ${{ github.event.inputs.spec_ref || 'main' }}\n```\n\nTo build locally (requires Deno ≥ 2.x):\n\n```bash\nnpm run build:deno          # local platform\nnpm run build:deno:cross    # all platforms\n```\n\n#### Using the binary with a local spec file (`AJB_SPEC_FILE`)\n\nWhen the OpenAPI spec is already available on disk — for example, in a workflow that checks out the `camunda/camunda` repository — you can skip the git sparse-checkout entirely by pointing at the local file with `AJB_SPEC_FILE`.\n\nWhen `specFile` (or `AJB_SPEC_FILE`) is set, the `repo`, `specPath`, `ref`, and `preserveCheckout` options are ignored — no git operations are performed. The generated `responses.json` metadata will show `commit: \"local\"` instead of a SHA.\n\n#### Copy-paste for `camunda/camunda` QA e2e workflows\n\nThe orchestration-cluster e2e test suite lives at `qa/c8-orchestration-cluster-e2e-test-suite/` and already checks out the branch under test. The spec file is at `zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml` in the repo root. Add these steps **before** `npm install` / `npm run test`:\n\n```yaml\n# ── Regenerate response schemas from the branch's spec ──────────\n- name: Download assert-json-body binary\n  run: |\n    curl -fsSL -o /usr/local/bin/assert-json-body \\\n      \"https://github.com/camunda/assert-json-body/releases/latest/download/assert-json-body-x86_64-unknown-linux-gnu\"\n    chmod +x /usr/local/bin/assert-json-body\n\n- name: Regenerate response schemas from local spec\n  run: assert-json-body extract\n  env:\n    AJB_SPEC_FILE: ${{ github.workspace }}/zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml\n    AJB_OUTPUT_DIR: ${{ github.workspace }}/qa/c8-orchestration-cluster-e2e-test-suite/json-body-assertions\n# ────────────────────────────────────────────────────────────────\n```\n\nThat's it — no Node.js setup, no `npm install`, and no second git clone required. The binary reads the spec file that is already on disk from the workflow's checkout step and writes `responses.json` directly into the test suite's `json-body-assertions/` directory.\n\n**Why this works:** The e2e workflows (nightly matrix across `stable/8.6` … `main`, on-demand branch, release) already `actions/checkout` the target branch. The OpenAPI spec in that checkout reflects the branch's API surface, so the generated response schemas will match the server under test.\n\n## Configuration\n\nConfig file: `assert-json-body.config.json` (created with `npx assert-json-body config:init`).\n\nThe configuration is now split into two blocks:\n\n1. `extract`: Controls OpenAPI repo checkout and artifact generation.\n2. `validate`: Controls global validation behaviour (recording & throw semantics).\n\n### extract block\n\n| Field              | Type    | Default                                                  | Description                                                | Env override(s)                                   |\n| ------------------ | ------- | -------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------- |\n| `repo`             | string  | `https://github.com/camunda/camunda`                     | Git repository containing the OpenAPI spec                 | `AJB_REPO`, `REPO`                                |\n| `specPath`         | string  | `zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml` | Path to OpenAPI spec inside the repo                       | `AJB_SPEC_PATH`, `SPEC_PATH`                      |\n| `specFile`         | string  | —                                                        | Local spec file path (skips git checkout entirely)         | `AJB_SPEC_FILE`                                   |\n| `ref`              | string  | `main`                                                   | Git ref (branch/tag/sha) to checkout                       | `AJB_REF`, `SPEC_REF`, `REF`                      |\n| `outputDir`        | string  | `json-body-assertions`                                   | Directory to write `responses.json` + generated `index.ts` | `AJB_OUTPUT_DIR`, `OUTPUT_DIR`                    |\n| `preserveCheckout` | boolean | `false`                                                  | Keep sparse checkout working copy (debug)                  | `AJB_PRESERVE_CHECKOUT`, `PRESERVE_SPEC_CHECKOUT` |\n| `dryRun`           | boolean | `false`                                                  | Parse spec but do not write files                          | `AJB_DRY_RUN`                                     |\n| `logLevel`         | enum    | `info`                                                   | `silent` `error` `warn` `info` `debug`                     | `AJB_LOG_LEVEL`                                   |\n| `failIfExists`     | boolean | `false`                                                  | Abort if target responses file already exists              | `AJB_FAIL_IF_EXISTS`                              |\n| `responsesFile`    | string  | —                                                        | Optional explicit path for responses JSON (advanced)       | `AJB_RESPONSES_FILE`, `ROUTE_TEST_RESPONSES_FILE` |\n\n### validate block\n\n| Field                   | Type    | Default | Description                               | Env override(s)                           |\n| ----------------------- | ------- | ------- | ----------------------------------------- | ----------------------------------------- |\n| `recordResponses`       | boolean | `false` | Globally enable body recording            | `AJB_RECORD`, `TEST_RESPONSE_BODY_RECORD` |\n| `throwOnValidationFail` | boolean | `true`  | Throw vs structured `{ ok:false }` result | `AJB_THROW_ON_FAIL`                       |\n\nAdditional env variables:\n\n| Env                             | Purpose                                                                        |\n| ------------------------------- | ------------------------------------------------------------------------------ |\n| `TEST_RESPONSE_BODY_RECORD_DIR` | Override directory for JSONL body recordings (default `<outputDir>/recording`) |\n\nExample full config:\n\n```json\n{\n  \"extract\": {\n    \"repo\": \"https://github.com/camunda/camunda\",\n    \"specPath\": \"zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml\",\n    \"ref\": \"main\",\n    \"outputDir\": \"json-body-assertions\",\n    \"preserveCheckout\": false,\n    \"dryRun\": false,\n    \"logLevel\": \"info\",\n    \"failIfExists\": false\n  },\n  \"validate\": {\n    \"recordResponses\": false,\n    \"throwOnValidationFail\": true\n  }\n}\n```\n\nNotes:\n\n- The responses schema file defaults to `<outputDir>/responses.json` unless overridden.\n- Boolean env overrides accept `1|true|yes` (case-insensitive).\n- Precedence per value: CLI flag > environment variable > config file > built-in default.\n\n## Schema Resolution Precedence\n\nWhen `validateResponseShape` looks for the schema artifact, precedence is:\n\n1. Explicit option: `responsesFilePath` passed to the function\n2. Environment variable: `ROUTE_TEST_RESPONSES_FILE` or `AJB_RESPONSES_FILE`\n3. Config file: `extract.responsesFile` or `<outputDir>/responses.json`\n4. Default fallback: `./json-body-assertions/responses.json`\n\nAll file issues (missing, unreadable, parse errors, malformed structure) throw clear errors.\n\n## API Reference\n\n### `validateResponseShape(spec, body, options?)`\n\nSingle unified API: validates `body` against the schema entry. Supports optional structured result mode and recording.\n\n```ts\nvalidateResponseShape({ path: '/foo', method: 'GET', status: '200' }, jsonBody, {\n  responsesFilePath: './custom/responses.json',\n  configPath: './custom-config.json',\n});\n```\n\nDefault behavior: throws on mismatch (configurable). If you pass `throw:false` (or set global flag) it returns a structured object:\n\n```ts\ninterface ValidateResultBase {\n  ok: boolean;\n  errors?: string[]; // present when ok === false\n  response: unknown; // the original response body you passed in\n  routeContext: RouteContext; // resolved route/method/status + flattened field specs\n}\n```\n\nExamples:\n\n```ts\n// Success (non-throw mode)\nconst r1 = validateResponseShape({ path: '/foo', method: 'GET', status: '200' }, body, {\n  throw: false,\n});\nif (!r1.ok) throw new Error('unexpected');\nconsole.log(r1.routeContext.requiredFields.map((f) => f.name));\n\n// Failure (non-throw mode)\nconst r2 = validateResponseShape({ path: '/foo', method: 'GET', status: '200' }, otherBody, {\n  throw: false,\n});\nif (!r2.ok) {\n  console.warn(r2.errors); // array of error lines\n  console.log(r2.routeContext.status); // resolved status used\n}\n```\n\n#### Options\n\n- `responsesFilePath` / `configPath` – override resolution\n- `throw?: boolean` – override global throw setting\n- `record?: boolean | { label?: string }` – enable recording for this call\n- `truncateValidationErrors?: boolean` – defaults to `true`; set `false` to include every validation error\n\n### `validateResponse(spec, playwrightResponse, options?)`\n\nPlaywright-friendly wrapper: reads `await response.json()`, optionally enforces the expected status, then routes through `validateResponseShape`.\n\n```ts\nconst apiResponse = await request.post('/process-instance/create', { data: payload });\nawait validateResponse(\n  { path: '/process-instance/create', method: 'POST', status: '200' },\n  apiResponse\n);\n```\n\n- `spec.status` is required when you need HTTP status enforcement; the helper throws if it does not match `response.status()`.\n- `options` shares the same shape as `validateResponseShape` (file resolution, throw, record, config overrides).\n- Returns the same `ValidateResultBase` promise (use `{ throw:false }` for structured result mode).\n\n### Nullable Fields\n\nThe validator respects the OpenAPI `nullable: true` property. When a field in the spec is marked `nullable`, `null` values pass validation without error. When `nullable` is absent or `false`, a `null` value produces a `[TYPE]` error:\n\n```\n[TYPE] /label expected string but got null\n```\n\nThe `nullable` flag is extracted automatically during `assert-json-body extract` and stored in `responses.json`. You can also set it manually in a custom responses file:\n\n```json\n{ \"name\": \"label\", \"type\": \"string\", \"nullable\": true }\n```\n\n### Types\n\n`FieldSpec`, `RouteContext`, `PlaywrightAPIResponse`, and other structural types are exported from `@/types`.\n\n### Generated Typed Entry (after extract)\n\nAfter running the extractor you can import strongly-typed versions of `validateResponseShape` and `validateResponse` that constrain `path`, `method` and `status` to only the extracted endpoints:\n\n```ts\nimport { validateResponseShape, validateResponse } from './json-body-assertions/index';\n\n// Autocomplete + compile-time safety for path/method/status\nvalidateResponseShape({ path: '/process-instance/create', method: 'POST', status: '200' }, body);\nawait validateResponse(\n  { path: '/process-instance/create', method: 'POST', status: '200' },\n  playwrightResponse\n);\n\n// @ts-expect-error invalid status for that route will fail type-check\n// validateResponseShape({ path: '/process-instance/create', method: 'POST', status: '418' }, body);\n```\n\nYou can also use the exported helper types:\n\n```ts\nimport type { RoutePath, MethodFor, StatusFor } from './json-body-assertions/index';\n\ntype AnyRoute = RoutePath;\ntype GetStatus<P extends RoutePath> = StatusFor<P, MethodFor<P>>;\n```\n\n## FAQ\n\n**Why do I get two files (`responses.json` and `index.ts`)?**  \n`responses.json` is the runtime artifact used for validation. `index.ts` adds compile-time safety and autocomplete for route specifications.\n\n**Do I need to commit `index.ts`?**  \nRecommended: yes. Changes in that file make API evolution explicit in diffs. If you prefer to ignore it, ensure your build pipeline runs `assert-json-body extract` first.\n\n**Can I disable type emission?**  \nNot yet—emission is always on. Open an issue if you need a toggle.\n\n**Large spec performance concerns?**  \nThe generated `index.ts` only stores a nested map of route/method/status flags, not full schema trees, keeping file size modest. Extremely large specs are still typically < a few hundred KB.\n\n**How do I update types after the spec changes?**  \nRe-run `npx assert-json-body extract`. The `index.ts` file is regenerated deterministically.\n\n**Do I still need to import from the package root?**  \nUse the package root for generic validation utilities (`validateResponseShape`), and the generated `./json-body-assertions/index` for strongly typed validation.\n\n**Does it support multi-file OpenAPI specs?**  \nYes. The extractor automatically bundles referenced files (via `$ref`) as long as they are within the same directory structure as the entry file.\n\n## Releasing & Versioning\n\nThis project uses [semantic-release](https://semantic-release.gitbook.io/) with Conventional Commits to automate:\n\n- Version determination (based on commit messages)\n- CHANGELOG generation (`CHANGELOG.md`)\n- GitHub release notes\n- npm publication\n\nEvery push to `main` triggers the release workflow. Ensure your commits follow Conventional Commit prefixes so changes are categorized correctly:\n\nCommon types:\n\n- `feat:` – new feature (minor release)\n- `fix:` – bug fix (patch release)\n- `docs:` – documentation only\n- `refactor:` – code change that neither fixes a bug nor adds a feature\n- `perf:` – performance improvement\n- `test:` – adding or correcting tests\n- `chore:` – build / tooling / infra\n\nBreaking changes: add a footer line `BREAKING CHANGE: <description>` (or use `!` after the type, e.g. `feat!: drop Node 16`).\n\nExample commit message:\n\n```\nfeat: add structured validation result for non-throw mode\n\nBREAKING CHANGE: removed deprecated assertResponseShape in favor of unified validateResponseShape\n```\n\nManual version bumps in `package.json` are not needed; semantic-release will handle it.\n\nLocal commit messages are validated by commitlint + husky (commit-msg hook). If a commit is rejected, adjust the prefix / format to match Conventional Commits.\n\n## CLI Commands\n\n| Command                        | Description                                                                                                             |\n| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |\n| `assert-json-body extract`     | Performs sparse checkout + OpenAPI parse + response schema flattening into `responses.json` and emits typed `index.ts`. |\n| `assert-json-body config:init` | Creates a starter `assert-json-body.config.json`.                                                                       |\n\nEnvironment variables (selected):\n\n- `ROUTE_TEST_RESPONSES_FILE` / `AJB_RESPONSES_FILE` – override schema file\n- `TEST_RESPONSE_BODY_RECORD_DIR` – override recording directory (default `<outputDir>/recording`)\n- `AJB_RECORD` / `TEST_RESPONSE_BODY_RECORD` – set default recording on (true/1/yes)\n- `AJB_THROW_ON_FAIL` – set default throw behavior (true/false)\n\n## Recording (Optional)\n\nBy default, recordings are written to `<outputDir>/recording` (e.g. `json-body-assertions/recording`). Set `TEST_RESPONSE_BODY_RECORD_DIR` only if you want a custom location. To record responses, either:\n\n```ts\n// Per-call recording\nvalidateResponseShape({ path: '/foo', method: 'GET', status: '200' }, body, {\n  record: { label: 'GET /foo success' },\n});\n\n// Or enable globally (env): AJB_RECORD=true\n```\n\nProduces JSONL rows with required field list, top-level present, deep presence and body snapshot.\n\n## Integration Tests\n\nAn optional end-to-end integration test suite lives under `integration/` and is excluded from the default unit test run.\n\nRun unit tests (fast, pure):\n\n```\nnpm test\n```\n\nRun integration tests (performs real OpenAPI extraction and live HTTP calls):\n\n```\nnpm run test:integration\n```\n\nLocal requirements:\n\n- Start the target service (expected at `http://localhost:8080` by default), or\n- Set `TEST_BASE_URL` to point to a running instance\n\nCI (Docker) example:\n\n```yaml\n\t- name: Start API container\n\t\trun: |\n\t\t\tdocker run -d --name api -p 8080:8080 your/api:image\n\t\t\tfor i in {1..30}; do curl -sf http://localhost:8080/license && break; sleep 1; done\n\t- name: Run integration tests\n\t\trun: npm run test:integration\n```\n\nIf the service is unreachable, the integration test logs a warning and exits early (treated as a soft skip).\n\n## Error Messages\n\nErrors show a capped (first 15) list of issues (missing, type, enum, extra) with JSON Pointer paths. Additional errors are summarized with a count.\n\n## Precedence Test Illustration\n\nSee `src/tests/precedence.spec.ts` for an executable example verifying explicit > env > config > default ordering.\n\n## License\n\nISC (see `LICENSE`).\n","readmeFilename":"README.md"}