{"_id":"@gfargo/doorman","_rev":"63-b09f72518bb869b3385abd7b6596d540","name":"@gfargo/doorman","dist-tags":{"latest":"3.15.4"},"versions":{"2.1.0":{"name":"@gfargo/doorman","version":"2.1.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@2.1.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"00c638a59d7e36450f333284fecbf95036f9bc08","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-2.1.0.tgz","fileCount":16,"integrity":"sha512-Y18WddHx+w1CbI7YFa3yzFs5d6T+yd0CpdJ09ur6zEgMKWjq7BTRx1lSp+EqZhv92DUJx3gKhn0NcfqMeJVQLw==","signatures":[{"sig":"MEUCIBd4XxONfGEmrORISL0U78PfBixQg42QC1ZYPQfiGwvDAiEA+o1XjXoHPNxO1RkJIX9ebwKHFbm+H5gJkTJoPw4r6Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463713},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"510145f6148db9a24beefb2f6cf0008908aa988f","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"gfargo","email":"ghfargo@gmail.com"},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"10.9.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_2.1.0_1786892736222_0.5918250688574451","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@gfargo/doorman","version":"3.0.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"8bf02cc04ed02045a1f32597b5b700f64f9d4557","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.0.tgz","fileCount":16,"integrity":"sha512-sMsy02oGjZWqtDz6Y+lhCiHpgJkN53QuE3vYeqnUlcmhunwTykGAugLv5iSif2gOu+K/V6A0g1ktgDKsqJ/qog==","signatures":[{"sig":"MEQCID81+UXO4GHGVaRonxNFAdQfKFVmuVEZo4y3K7h5pfV3AiBTWP7Lv0nUJprwVPWRZg9CqO+Mpg+3TPskgpDUjkOoNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":463531},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"f74189b64d3a1b62595644d42757917f4024df3f","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.0_1786893308065_0.4823049693324737","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@gfargo/doorman","version":"3.0.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"4ed80a5d7c7240574db101efcf782b0dc6f4f475","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.1.tgz","fileCount":16,"integrity":"sha512-drLR/QsU5L16iltEekxcCaHRAmCwQ/dk/tEo061vQRgF4K9kdcD/F/Ba4PjOXqIPMDFOZRDWNmfLPMoWZ7C9sw==","signatures":[{"sig":"MEUCIQDS/ExlKqRK6+uGNvQK1kPkqdWJYPQeFLx5ToGDvEtMuQIgDdM2d5ktanwl2LDiMyoctY1bU8xhtfOgdPwcIrUnq4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":484420},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"a1d45f75ded6af3143833bc0b624f2ed682083cd","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.1_1786930346475_0.8649570155751454","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@gfargo/doorman","version":"3.0.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"c16892ceca5758cb87af5ce4f2951fd83296d91e","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.2.tgz","fileCount":16,"integrity":"sha512-PgjocKuYVgt2YYS8rPVeAWZ5Iy9Gnrrq6shAZuGsWsZ+EGDcCZjw6RY1E6WKLmiO84s6hAjSngM89qAjMfz2Dg==","signatures":[{"sig":"MEQCID7w74fgeTw2/Tz7bUPTrknDsz5QnK4rTkcxoOBSsZQ6AiADJG7bDXi0y3Px4/ZSLn6HU3Otl/T6cUl8wMjMBb/qtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":485010},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"07f508f6ceb0896a1797d42b88a3a858fbee78cb","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.2_1786938771833_0.7960750104849204","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@gfargo/doorman","version":"3.0.3","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.3","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"64b202b293cfa7934ac06738021f3696cb560ba2","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.3.tgz","fileCount":16,"integrity":"sha512-f7k6Y67coIrTrf0HE1Pg+2sOJ+NZ9o7AlSD9Py1nzo/Bk6ae1zbuahrK8QIgFX6bFuaIVeVwyhZo0W5hCmoFzg==","signatures":[{"sig":"MEQCIFVNXH+x3RXRy1yAmhLsc31bq/qJ6UI4N+4Pi8l532HQAiB5ecLr0mpPVxnZhozM+sM528SdyHl4+qMBlRULAHIy7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":485322},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"9fd42e6faa557fff0392a949dbd1d9cb70e5131b","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.3_1786939401298_0.42418935916205114","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@gfargo/doorman","version":"3.0.4","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.4","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"b9fe6c32160386670c529ca39d7a05b84c8a2b02","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.4.tgz","fileCount":16,"integrity":"sha512-05sOApweo2C4mW3Dh8TXqJelDpTtQUP39mnSp0hM2pQXJZSHO/exreDiqEaWv88tGq3nighk+a9wsDb8C8wg8g==","signatures":[{"sig":"MEUCIQDOWzAz+bEfwCedUsyB1/dHpQIpmxd/W/1TjCM77BrfCQIgCiJCpPJbv5d9KoCTOVUXalc89h993WMLzOkSHBtTdDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":485724},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"3ba88169d88bb3bc7085db4b83df79d787bfd27c","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.4_1786973011464_0.3592663354243151","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@gfargo/doorman","version":"3.0.5","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.5","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"e47b4b94bde9a84bf83cf6b0a8ebb193d83ed284","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.5.tgz","fileCount":16,"integrity":"sha512-4h2aszArFfiQioFbP/I8e8FkJvHFbI1uTlq2lYluYXGmDoTltlKs0nybPDIonDsxRsJZKY25qV0+Ci5uyhRYAw==","signatures":[{"sig":"MEQCIDQMfqwu3yGcB3CWygLuztSK3LI/BlRwhueo8L0BY6uMAiA5RJUf64o26P+fv4uQm3b3j0SueHTWEfpcn42ciRrspQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":485766},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"cb9d669726b2a3ba1c9ea3337f937e8c2fe312f9","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.5_1786974046279_0.8287648081969885","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"@gfargo/doorman","version":"3.0.6","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.6","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"de9bd0cc788a36d272f89d37a01ee3912c88632b","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.6.tgz","fileCount":16,"integrity":"sha512-TSj2VRdYvaSsvEClDI2hV4PPlnq0RNDJLeVPLW625+7Xbrp32t/H9XIMoDFFTQ3h/zr8nQhp1jLev7bc9NKgXg==","signatures":[{"sig":"MEUCICsBvsiy9MmE/p78C9hVBdU3l+lCpwHITrgGV7ORqgniAiEA7Uozzpk1HpbSYDm44JTJuGsZ908Y1BXh7Xjp0IjrjDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":486138},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"a2b682421e155312c1eec6505dfa675eca0822c7","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.6_1786981668028_0.8775459106682033","host":"s3://npm-registry-packages-npm-production"}},"3.0.7":{"name":"@gfargo/doorman","version":"3.0.7","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.7","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"c1fd1e1d69c6f1169770cb858d97c10d7c63fb9a","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.7.tgz","fileCount":16,"integrity":"sha512-lZHOYjR7FHoYUiiU6KkD+3MqtoBheNPJofss/F5TOkL1XYpEjEk/tznhY9iILbnXzn/yCIsdcIJ6AG9MnQXsAw==","signatures":[{"sig":"MEYCIQCuwvKNKI9iXYR2bLTjYpwP7+HblOlGbgH7smvuW33vxQIhAI/ALalSjBcOh1sHko9WbhRlNsz35EQbPmpcnRXiA8B9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492217},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"346900d8dfe7c03d3df754e0052d334989789365","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.7_1786995965932_0.3700679136581848","host":"s3://npm-registry-packages-npm-production"}},"3.0.8":{"name":"@gfargo/doorman","version":"3.0.8","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.8","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"d51a257a0db6cee860aba98b2bf112abac19849a","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.8.tgz","fileCount":16,"integrity":"sha512-xYpkGYWgVdzkpfcGGbt19atNgl7JOV65Tt5eLJVUhHVkO2CtaOtR6B6qfvo+kQa/shkOQmz7FG/TM5pf9RDa6A==","signatures":[{"sig":"MEQCICPYwsx0/bCIxH5ScEn+I6cwuILaPPNbY/rUu2FpM8vTAiBUC8nwivoqWAZ6qF4CrEW/PiCVkyDzMw1gfrQ1ztC3CA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492451},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"b3efbfa014ae5e922b8f5062beff6252cced4d83","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.8_1786997218799_0.8505486533751856","host":"s3://npm-registry-packages-npm-production"}},"3.0.9":{"name":"@gfargo/doorman","version":"3.0.9","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.0.9","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"4cf5bf8d3fc7839c926459e81a77e06e46b42062","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.0.9.tgz","fileCount":16,"integrity":"sha512-3YIYbIlvZB/0gOANCNsnxHLT6yO1uyE2tAxEYz5V9eQZfQ2gjNSi1QNpX9kE7KztSucwqgyMqug4iU4ZFg+SsA==","signatures":[{"sig":"MEUCIGuag4360F6yR+fkGv19ffdt1u9lMEbwrwawLFAW7OR/AiEAxYWOH8a/c4zIkm9r3+sg7uNS3D+8l71TFeDrETkTBbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492675},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"9564b6eee2cc8552eeda63e4c40141a6b57d148b","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.0.9_1786997462865_0.7902531637785803","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@gfargo/doorman","version":"3.1.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.1.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"30e7ecb6406627e1e7de27e3722da827fd104568","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.1.0.tgz","fileCount":16,"integrity":"sha512-VC5CZ4gi9OsIiBAOsUCjoctlVVEhrEfeofkNRL+G5SVl3ogzexx8XJuRAwwU1FLKdD28iTbd5hnWNdPEIVQbzA==","signatures":[{"sig":"MEUCIBNrFEgdSATyXUQLfUZ+tPQtVKo3u/qbrRumEZ0zdMFxAiEArLFQhTSh6nJX3thjuVpt6YoPoJvvp4R37MsT2bSGYCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492675},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"58264c5d3b4f513c4b8fddc40f9b9c57bf5d67b0","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.1.0_1787072314159_0.4274358542310335","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@gfargo/doorman","version":"3.2.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.2.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"fce0a8d24a851f8eab75fc09254d4fc7cfc723f6","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.2.0.tgz","fileCount":23,"integrity":"sha512-yUTpSp1LcZKvpaSsEIgyxHzEuRUQAn0mVy9SZfIS88wJ2rYsgGlzb35lOiTYz8WxWqbJIIidf1cgRoVflu6XSA==","signatures":[{"sig":"MEQCID6sH/XY80ijsARE+pcbQUR9pBGCuXz/tuLcuG8n0FbkAiA2QQwEArsd3bnXgbxR6eT6FQoPb4WMuCvkYGMKfKYkwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":513312},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"4cc826d0b8b93be55dd5a2d31f828b1b2b8f5da6","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.2.0_1787085136613_0.7620095407379635","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@gfargo/doorman","version":"3.2.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.2.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"c1d3311101a46135f2aba630c967693eed9301ac","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.2.1.tgz","fileCount":23,"integrity":"sha512-NE+PTxAhGv7Emsb0YjvTt6PJVVsuBXT8Awnp9VyvErU7rYlHXXts2PX83ggJO+tajh2rBs6O5IvkrNtF6F1R0A==","signatures":[{"sig":"MEUCIQCd2vm9qTriJmlnTjU2x2USWrW0Y9vD24jrz/xpe+ys+gIgTcXiRlvi1+mD3TQLqmKbRKwttCAC7bErS7pLTjvTE84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":514894},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"2c8e13ca89223f0cdee510523e5a84723f8677e9","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.2.1_1787155101186_0.10074506888058554","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@gfargo/doorman","version":"3.2.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.2.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"8b9a93db5dd5ec9813544349bc4d758055b0ef0a","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.2.2.tgz","fileCount":23,"integrity":"sha512-5IE+ea2/qY6AAss6GhZZve91bH6ZSS1cWZTUct3FHZAptc65E8bIe42Tf+Od6seX0CrgVPMkg9XLUmCF8h26kA==","signatures":[{"sig":"MEQCIBrRr6upSoWIYr91JARyM2Elg4aAIR+qrKsXMEUKCM/5AiAUxmiPZdhG+klX3Xq9vcBGZX3iEczx44ULq9XnzMKrxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521826},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"42dadc3ed9bb26da9336d41d90673fef9118b6eb","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.2.2_1787155980219_0.8011681950634812","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@gfargo/doorman","version":"3.2.3","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.2.3","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"f67efde951927187a373f5886136836d9526e7ff","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.2.3.tgz","fileCount":23,"integrity":"sha512-UeSazzOJFJvEeSXKqfwMUn03CFwKJP32Rke2c+NkWGA3j7WvLAQaYZHUZwZuskNMgrFf9hvNOTMd9tXTcsvmfA==","signatures":[{"sig":"MEUCIC3hxmQmo+16RiJHnImncOA4f0fpma0YyYudh52N/p1eAiEAyrqSfC9pfH16kHJTnzrxb5LlwTRUuwA0dSuKqp+BG2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":523648},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"98807d58039ee7877947f68d9e28a5eba1bbccd5","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.2.3_1787159224466_0.5655066715496544","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"@gfargo/doorman","version":"3.2.4","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.2.4","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"00a3534b3f8dc77f33de72b944a4768ab5077bef","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.2.4.tgz","fileCount":23,"integrity":"sha512-PS9cijIlnic7Nccx0OoyEH+uPYww7KuVlZqbL+eROEW5C8s2CB7mUO1oBKRJW2Tz+B4RnqzJ0Xw/GDIht/kPnw==","signatures":[{"sig":"MEYCIQDsNaz4xDajf6lfIRou/bfG00HP/yQFz55HBmGdx2ru7wIhAJEbfpFRVO3ZAnWz3Doa6T4jiVGP4sy+Sf9SRpxzzinO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":524630},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"81faf83452ffc26c758a61f7503343e9dcb468e6","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.2.4_1787162349367_0.23612905840410092","host":"s3://npm-registry-packages-npm-production"}},"3.2.5":{"name":"@gfargo/doorman","version":"3.2.5","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.2.5","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"3a9e42720553741dcf3f703d5ece04554008116c","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.2.5.tgz","fileCount":23,"integrity":"sha512-Ms7HPtNHVD5pemD0XZCt46Va05gGs5DLmf6rvAZHc+5zwaXZ00bwCC4Qu1zlFWRLfWdvGNauQfdO5vxajLnEnA==","signatures":[{"sig":"MEUCIQC8Nidx8hEs/Ra05nOhFLCyZ5GacML6h7kGic0oqHD4nAIgWLY572WllGZxT7y4sN3ue2v6tjnfXtgB7o7OkWTDS3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":525484},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"f61bdd6375659ecf4d72de303772de31e0798844","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.2.5_1787179037294_0.32615115983450615","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@gfargo/doorman","version":"3.3.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.3.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"77e1f413201f165880771d0121be57c78f1bf1b7","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.3.0.tgz","fileCount":23,"integrity":"sha512-SFKSxz2uZBu/e1BSFa1/v7lV4BX0g0tCDgW2f5dAZ+UmiyyjvsmW1mjVjC9z69Mi+JxMX7K4AkHcrH0FVjsUBQ==","signatures":[{"sig":"MEUCIQC5n3V7P4cnhhexKEyAbea/xVcmxjb9dzl4/n3DMUJouAIgJFPgHUgpNtvKVpT5YCt3GrOPbQcaebjheTbCxmfkVnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":526086},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"ca295007f1226362c5021bf64bc09c3063c61209","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.3.0_1787179693062_0.9512761862701913","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@gfargo/doorman","version":"3.3.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.3.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"bf57200acb6de6b058a6e09a3b7ab5fc24f2ee65","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.3.1.tgz","fileCount":23,"integrity":"sha512-AN2S0JQTt6c783ITky0s6XXu2oTOQaMSLOfNV0ILEc8JM3tOghS/qOGdo897hWGFMkbTIQSSZLSGhfSSF1JfmQ==","signatures":[{"sig":"MEUCIQCHkpRT5o6FH3PV1UCVEVU1ZbU3cvoXVIEwwUrfjjMwDwIgXZKL+U0y/mxejeJVd7SG/7GLoC9/PySDTU/WorTTsPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":525986},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"32f5dfe094ad6a817dddef9668484023499fccb3","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.3.1_1787180026576_0.016881634078489194","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@gfargo/doorman","version":"3.4.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.4.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"ad7bd52b5b0daec0f3e0c3f4a89ace9c038dee4a","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.4.0.tgz","fileCount":23,"integrity":"sha512-A2rpGaOObVBQKxhQYjzYEHQc5CR8+nXDmsZwNnDjOtsdkxQ0ZHGRgrKF/gSZcHbvWVvBjtG/78Ts1TNCOPW//g==","signatures":[{"sig":"MEUCIQDZa2dlkapc38TLew415eSzgvnAPkAPj3/aeNrFeFz1nwIgR8v1sECePejNucrnRrCDsZeS+XzJuEdcAVIPWsazpz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":522077},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"17e856ab9c9c6a0808efd84e21d32a1786f0f4c8","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.4.0_1787188557405_0.5853135183361753","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@gfargo/doorman","version":"3.5.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.5.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"050da7b2685bacb84a8e4e63d96fa24fe1ac2d83","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.5.0.tgz","fileCount":23,"integrity":"sha512-iFe3TmTIgOLWte7mgXXNUqlGwQ0cHgzZX5K330aA/KFLkG3c5Vo8BXDHuktvh8XzLB4/PMthiXtZmg+hoCDSKQ==","signatures":[{"sig":"MEUCIFm+z4yoCG4J9D56VC4myPsPz87iYJ5HSLNUGG1btarYAiEA0KLji7x0yiRvkEa2tLHQQ4S8pRjfEeid0KZyx77HOQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":495562},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"a268a07fd7ed6ffd1b5abf794c42f0a436796dc6","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.5.0_1787189685837_0.2739356873779575","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@gfargo/doorman","version":"3.6.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.6.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"d74170f30adbd4651d29d4862bd876c8b217fbf2","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.6.0.tgz","fileCount":23,"integrity":"sha512-oqUQAW1Vj0hWFP44IvGsInDDpHn7aKrcHctgqN3dC98ISEXbahUdQTyOyJmxCcA118v/1t5N//YwwXo1vf9Vmw==","signatures":[{"sig":"MEUCIQCH/j3Z2g3vHLhXpf/g8Yjon1sTQVdPaD+HL5F0djquCQIgVqG1t0Qgpynl6kRZlViMT7JDk9hUKUNJen1FgTFcPaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":494950},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"43560aecffbc47657c72d4aba8487edfab86ba6b","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.6.0_1787190223146_0.6521097025130744","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@gfargo/doorman","version":"3.7.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.7.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"1ba8396cf4741b98e81f24606a55138815d65273","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.7.0.tgz","fileCount":23,"integrity":"sha512-gw9mkHaONwsqkOQ6kxZ1B1pY1UN8doZesslXzGU03DWgy39eZrSphflSKJ9km2d0+7tJAEEARpGI5ySqp8W9RA==","signatures":[{"sig":"MEQCICbCkQLLhQqOTV6LaUfRTwjZCPC8sF3f9Bbb5R8VM2xyAiA0Zj3rAbLveUrP/pPM9+FBiT3Cs+hwm0uSfRiAlGENiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474267},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"ecfcc317e0756e72c8da5e22e9800e636e982a8c","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.7.0_1787190971435_0.47149390883231534","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"@gfargo/doorman","version":"3.7.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.7.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"68728e0f9b4dc83dcaecac7a49e238dfb9ed0fd3","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.7.1.tgz","fileCount":23,"integrity":"sha512-2mykIF9drKHBfpfbofqnyxQk3m1K2NawH9hyN3oZnB+Mbb5IKvneUpsWLS1KMZ3y+TZwi4QjkkUlZlJF3p8MRg==","signatures":[{"sig":"MEUCIAjtnYY1AybXHtZmKFzf0lWuxAW+O38idnnsvk3nuK6+AiEAy9lVFAd7KpjBpsv7wORYmBRh6FjPUcD3Tr8hC9KUIwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":476048},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"8e1e9be09132b91972971e72db2a59998997f6c6","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.7.1_1787193300190_0.2843263935160367","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"@gfargo/doorman","version":"3.8.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.8.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"a4b1d45f587336d355706ab4d902fea6aa0e6730","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.8.0.tgz","fileCount":23,"integrity":"sha512-VXTQn8/1hqSkysJeUCgTZtB/85Pu1njMiZOX1w01jDx9CC9Cg7756I9ivTlDmsCD3lauq0koSUKYGnWHuZKEaw==","signatures":[{"sig":"MEQCIAp5061EDk0ov0Xmg7m9RqwaUm37S1dTeFNoUiVWK2LQAiBtbWzPY5NdfHu0LcwyzAQlozLHcMRC9QbPTqP4KFZpUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":486230},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"5dfa1999376d1ed492f44cf273085468581cc2ce","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.8.0_1787195345189_0.14577707273823282","host":"s3://npm-registry-packages-npm-production"}},"3.8.1":{"name":"@gfargo/doorman","version":"3.8.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.8.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"be32d9c18fa83ac30cf52bc75b9d86c78698f07f","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.8.1.tgz","fileCount":23,"integrity":"sha512-jrdNf3qNZ0I6Ca/mZsFOy0sdbaHwHX1vSTzvfV/Vl7mZSO0jt8EGByXFyVPb4p737mS7oW3p6np/Zt6bbOB/oQ==","signatures":[{"sig":"MEUCIAs495HubXS1koH5BGegoGZ8IvQOGD1HI8NGFmaWFqLcAiEA/GkOiF0FBTEu+DtOJSfCUzjvyD9zPG236ZJPWPwz61Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":488270},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"471dcf1cfb3b0a055ed03110fb0837d31ab637e0","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.8.1_1787199394905_0.5138314287015078","host":"s3://npm-registry-packages-npm-production"}},"3.9.0":{"name":"@gfargo/doorman","version":"3.9.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.9.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"a2c836d14772b07260615958ecd8ecaf175a9908","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.9.0.tgz","fileCount":23,"integrity":"sha512-yxY8sciQMtMYWI3K/F4mdNZ8L/v76sRgUu/Xa+zxo6U+z39SzpG2qeN1p10jVfpQGohJBEQdXzGLinWqFIfKiw==","signatures":[{"sig":"MEYCIQCXgnRA8JY04RXcWyNX94A+WRgbSCkltWmjGLXBMuf9XwIhAI0DqPOlBZP20zsvXXHchCJ72gS6RpNY7Wk6c2B1QjDn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":490294},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"67e1ffd9179f264a21f7d019bd676d28533817c7","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.9.0_1787199711531_0.6411382296917154","host":"s3://npm-registry-packages-npm-production"}},"3.9.1":{"name":"@gfargo/doorman","version":"3.9.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.9.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"e5878c79dbddb1478fa79e77768fbe217b6f722c","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.9.1.tgz","fileCount":23,"integrity":"sha512-J5KwWNeRq6NBPJ6F6b7SgQTbv7kBf9kz7fl6lmhiVw9mMTvaDdnWBxyYvtRwJ+fxIrlW8iC0atwfj3F2WavJ4w==","signatures":[{"sig":"MEUCIGhdMi0BvKX9FsogEpDL+bIzQ8qFtAjN+mKn0iiM4uRsAiEA+WK3vDpGB2oEQLl7YcMCPX3BR49kTz8qWiVlo0VWGec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491154},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"e8531ae38af585ac14afbe2ac903ec0c74667108","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.9.1_1787200748272_0.6004193635326862","host":"s3://npm-registry-packages-npm-production"}},"3.9.2":{"name":"@gfargo/doorman","version":"3.9.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.9.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"ba9e5bc410d52851d512bc4f24679d9aa1aab020","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.9.2.tgz","fileCount":23,"integrity":"sha512-iiLU53hLg6D7//kG9pSfOb3w/bM2vIXio0wkMJ+ooMDUhUD2U/xwRrwC4wGBmHwjTVqMXwx4qVlzP2IdE6wrhA==","signatures":[{"sig":"MEUCIGTpHfkGl8Xb3ugcSH4zKyG3l9u+UBz14mS7mcBAsh0dAiEAlg69PiZTwKkfTbdO9BT+yPKEm/H1hLflVGNhqodDxjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491500},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"7caa7e2f3a30dcb2e28de6e625ecec5dc9585925","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.9.2_1787201139174_0.9266617165144084","host":"s3://npm-registry-packages-npm-production"}},"3.10.0":{"name":"@gfargo/doorman","version":"3.10.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.10.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"a1272ffa41b27c8f5f580d8469afee467cef4b2b","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.10.0.tgz","fileCount":24,"integrity":"sha512-pUwfccdyO7cR8fwPOIalhjnyc9C3qbIzOm+vmuhijk+lzO62XKNcPqOhUnyl+XE24r35jgm3DhNz4Fr/GFDkJA==","signatures":[{"sig":"MEUCIQCK00BBhXSFwjut8E8qO+IcwR0+P5EIPf36iaWnCGH3wwIgA6VPJ1oXSoHoQHeOLWU/t5R0+G6ao+NDkf2CTFpRggk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":541386},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"dd65435dc5d0c32755b4d8cc05b98fb174a5c6d3","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.10.0_1787241928196_0.23650568186951348","host":"s3://npm-registry-packages-npm-production"}},"3.10.1":{"name":"@gfargo/doorman","version":"3.10.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.10.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"2412c8405221841e48c71ff2b2fc64a236b7653d","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.10.1.tgz","fileCount":24,"integrity":"sha512-zwoJzDCWC2UREiUj+WnQXJHdaS9jT335J3C5s24PZza4k8aMp88oiyOZJ5ftBY7gGeS+7GN5rhZykID8GVVcIQ==","signatures":[{"sig":"MEYCIQC/xWDmn4Hei466EpD+0i3YqAWV4HcPXOfqE4BSL7pvXQIhAImoQ/T89Tdb4mSzi1Eg9TocfVgrC+78Mz33tOCDNqUi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543773},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"9769a137f482386dcc9f294b1fc73f958720598e","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.10.1_1787330391133_0.22913483723040962","host":"s3://npm-registry-packages-npm-production"}},"3.10.2":{"name":"@gfargo/doorman","version":"3.10.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.10.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"4bb21d50d1dbf7487ae1b3f6d7ce32723b724bcc","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.10.2.tgz","fileCount":24,"integrity":"sha512-4rr5FBMQ+LAuYLrLDgXI/NGHoBU9S9kQCbsxiDGqNuUgNeDT6epKqB6RedWpmBeJm1yvXXJj97DEhzkO5a9MlQ==","signatures":[{"sig":"MEQCIDRXD07bZlBfutu1ss95o+AEj97uzSc6Gc6Xf1RDAKS5AiAGy8mSRpLiCnU0mVysSO8NElAGtoOJHLwJorX3qNOEng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543827},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"6b19f0a300f3d1de49e1b93e076d2dc6d8ed7fdf","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.10.2_1787356928678_0.13747553459992012","host":"s3://npm-registry-packages-npm-production"}},"3.11.0":{"name":"@gfargo/doorman","version":"3.11.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"61cd0cfbd57c7f41f99aa15709472cb839de6860","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.0.tgz","fileCount":24,"integrity":"sha512-N0bGKkBwDBqAz3RWfuHuP1dX05D0iNHAt0PkXkY5gpQHM+4A06s3ynSz7Sb29Utr7O7ECEMtUhGi5RFZFkDEnw==","signatures":[{"sig":"MEQCIGo924K2MPEBljkgF3cjIfvKQozdJK6yP1/MvjiM3Z6zAiBP1P7XI36DLkmr1OxKSVowYWlmBzQurzVe+brtQ5f1Ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":544815},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"ddc600a9bab16aed46749e919989b85e8faf7e86","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.0_1787358983624_0.3986538051184618","host":"s3://npm-registry-packages-npm-production"}},"3.11.1":{"name":"@gfargo/doorman","version":"3.11.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"b829389b6f14d9d2e32cd7467efd5acb2e5addb3","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.1.tgz","fileCount":24,"integrity":"sha512-PvSJAlq3MApFr1trQxQ0T50Nx9I4I6RcF/aR4KJ3g8H+2kLuqKvSL0jbAETn3UyX+9KdSyzXHSPPbk4IDeoC/A==","signatures":[{"sig":"MEUCICKTgHF5XQjh9lF9cOaSYR3M0jFgNCl/VeExLInlRSpLAiEAg4jiwPKNUWh6PPdWMD/Y08ZpnQ3syvXiu/Kk03HwXXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":546130},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"8154d015a3aef5943960e7402ae801ab78113caf","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.1_1787359062026_0.016257414963778638","host":"s3://npm-registry-packages-npm-production"}},"3.11.2":{"name":"@gfargo/doorman","version":"3.11.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"52baf4eab3b54b24d6885f2411b03602be977568","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.2.tgz","fileCount":24,"integrity":"sha512-FZxPzSretZzpsRRe7exJ7HFSBVjIJFJjok+hqRkU1l9rMqJFbPmTuBKPfTA43G2i0jFCKxZHuzQat4Ki95ApYA==","signatures":[{"sig":"MEUCIDMpCRVO4jyBJhGDWk40kYAWtERjW8eAtcCSQV+vPgsPAiEAliTcS0pyp8oZCelzd/KxAO6UqnkIn1yLCIAyFmKVZYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":547572},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"47610f51d1c4794951883daf8363058e1bfacff6","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.2_1787361755009_0.04632187244236108","host":"s3://npm-registry-packages-npm-production"}},"3.11.3":{"name":"@gfargo/doorman","version":"3.11.3","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.3","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"f344c34d94974427ac87974dd6358612bafeef00","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.3.tgz","fileCount":24,"integrity":"sha512-8Ksqf2h/5ZsHZ6A3KYkyMngDE36jOCttsfcsP5k480/ij0LcOT1GriK2AKdRDNJEXC3Uu5OCQM0Xpk+ihuHINg==","signatures":[{"sig":"MEYCIQCp6T+OSbzsRdMZ1X5i1CUw4IxaXmfW94DTmpQEQO/OMQIhAJqfpvdpm6CWyMuPrf23MRd+r2hEihxzuzUVp+u/ow4D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":548664},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"c1699aafae7220b08c7a11648d21fbd6d1486bf4","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.3_1787363541910_0.09509451474123809","host":"s3://npm-registry-packages-npm-production"}},"3.11.4":{"name":"@gfargo/doorman","version":"3.11.4","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.4","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"f4fcaf9d69ef480751b71af5d91b2960b511bd44","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.4.tgz","fileCount":24,"integrity":"sha512-0CaEGzsuTKE4ERnXke1Cn0qpJOXGgEZb3MJxdx+//Q3k4iQGu995skiwx6/1ju9/C4tlzkKh63NHo8IJvojzRg==","signatures":[{"sig":"MEUCIQC2rK2oZW8JVGx6yJp5RiRGZnOXkKGhAbEbBoBDpkVGkwIgBBW7y2ra01BhyYhaF9yM5+w/uFFAQwUIooyDUmC9nCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":549310},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"1288169d6b5331de870aee06317d20e7b3fae7eb","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.4_1787364611147_0.592525108654478","host":"s3://npm-registry-packages-npm-production"}},"3.11.5":{"name":"@gfargo/doorman","version":"3.11.5","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.5","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"abe54510bffadf96041ed031d1ae11fe256d62f0","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.5.tgz","fileCount":24,"integrity":"sha512-Rh6+qMs93u4oyv7yzuFIR6FrRk7QGecRYiFA7w38hKmluRJR1SuDQghWtYVmOLTUrKrq0tQ5w5OfYbS+kBsUIw==","signatures":[{"sig":"MEUCIAh81qDCykdRSC/DYGLsmY7CZRgetY6CZCoO3F2pI7r3AiEApI8WANDehUT4FL0xHRIm9wzm0JQjgyNS2ftRfQt3SXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550396},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"b6d082f9601b9dae185963c139c56a521217de89","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.5_1787365198847_0.9667233233954802","host":"s3://npm-registry-packages-npm-production"}},"3.11.6":{"name":"@gfargo/doorman","version":"3.11.6","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.6","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"1b39d31801da918959a7658f2cfab30762531436","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.6.tgz","fileCount":24,"integrity":"sha512-R6Ns7T5fgMZq4psoEk+4fMbM9oVRPed9S5jyR1OdRX/Ut6865jyEFZyrS5Mlj3Tncc9nVbpzhLuUGpfK8Mmkag==","signatures":[{"sig":"MEUCIFrFDxV7SPnsPMXdIjjBNjhXn45+wkK+G7EX5DZHkVH9AiEA8OLtGf3V+MueXiO/P/CGvT+92gHJRkveB+0LbxXQulE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550480},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"b172d856ab00dc9ae6180b3c9b5a28af510f75d2","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.6_1787366213533_0.6297418347785708","host":"s3://npm-registry-packages-npm-production"}},"3.11.7":{"name":"@gfargo/doorman","version":"3.11.7","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.11.7","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"130802032bba178bafdc65c064b659f3db112029","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.11.7.tgz","fileCount":24,"integrity":"sha512-ittB0jRghXwHcqaUE4d/RUSSEivnmzBvrsBR0A1r+clmL6Ebphvk5eqMse/kZZJb+YOYV6bYIsJFq/G3zeJXgQ==","signatures":[{"sig":"MEYCIQDfUyjbEBqnKzlUPesVgIkA94zqkD2W27IAnpdi+2P8AwIhAIZAd8liC8pr56F7HdzF2oFuSr6oCe+P4KIpOSmNE8yk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.11.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":534488},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"267035965b0896f93a0e6e1b635f4cbff359931f","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.11.7_1787407308192_0.4468981801043066","host":"s3://npm-registry-packages-npm-production"}},"3.12.0":{"name":"@gfargo/doorman","version":"3.12.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.12.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"7efa726d9d90ce9f799b886495baa33477962368","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.12.0.tgz","fileCount":24,"integrity":"sha512-xpMsbj1eL2y0gl3xzdWGXUyW9EMF7Me70LWfmsVCLqtnF7WJfCUMhfWkNb581miHfqDeLk8svf5iim/wCLQtmQ==","signatures":[{"sig":"MEQCIArDmtLvEncqboIxUbqWC+o0pJLfqb0nW07c7CiMJmwbAiA6TURUWlMHLWa8IOIYFH9ds8yXqPD/eHWQwgsG7rHBRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":534488},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"f0413e864b45e258c9e38b9a817165d4bec7e5b9","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.12.0_1787408085445_0.261750113276922","host":"s3://npm-registry-packages-npm-production"}},"3.12.1":{"name":"@gfargo/doorman","version":"3.12.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.12.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"6e591012f4eef27ceba5a73e63e96eeb6d888a21","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.12.1.tgz","fileCount":24,"integrity":"sha512-yzWr0Df19Q1jsKSTRrzyipkJAGcrIic2+8CQ2Lez947p5v6HEmBTrII+UNoVaNsmNKOeX9FMAn1F1OoFZBLYzQ==","signatures":[{"sig":"MEQCIA0Gl39zZjdGbvulI71fB9UARVOTq/gPk9b++D2U1v2XAiBWzW0sYjxbm3w00lBrZDhInfg/fNXBxUnsI/k3SCbaqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":534616},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"3eb6e0f7f7090d887a6a54bb3057f330093434f2","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.12.1_1787408767101_0.5791670585444346","host":"s3://npm-registry-packages-npm-production"}},"3.13.0":{"name":"@gfargo/doorman","version":"3.13.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"2db1f3e4770db8bb46cc80be8321efb74047ee8e","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.0.tgz","fileCount":24,"integrity":"sha512-6hY54vHE9z1HOns69q1fTGmD6vSLJ9C3yptmMq4nqCsbXWgdZ8OTGgtv7NgxZ8TSWql79gvErZsNAQxWjYM4mA==","signatures":[{"sig":"MEUCIDgvnI+xhx0G87y+wBXyg+iNFlZ434qkgrqfGoodLPTAAiEAiaQpxYdyfI/KZaytHErSvaEauSQ5jBa6HqcuT4162XI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":587075},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"994f107861db5aa0a6ac75c5aaefd8b041f5f9e9","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.0_1787413969408_0.37687423631270955","host":"s3://npm-registry-packages-npm-production"}},"3.13.1":{"name":"@gfargo/doorman","version":"3.13.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"f64ae814287a813dbfbb1fd2b53ea7f7c39f5c37","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.1.tgz","fileCount":24,"integrity":"sha512-wf3ZTsDn6ReyVClkPe35CInTB5HQ/KUCl/7xEP8ilinncYYlAbRjcgCGsl95ApGbH36EtQZtuiJIxm3Zxa4iAg==","signatures":[{"sig":"MEUCIArJ/uEk4ONfBhsuv+SZ01UY7Uji0yNICml4E6Hy1GTTAiEA33McTGadZaTaC1wmmq2M/v2swNkvNnoyyNwmNkgHLqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588085},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"55900571eadc6567363f44b6b62024a6ff5b0f7a","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.1_1787417970121_0.8590265689398247","host":"s3://npm-registry-packages-npm-production"}},"3.13.2":{"name":"@gfargo/doorman","version":"3.13.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"ff8981b29500797b94c44ad6ad3b627baa71f36d","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.2.tgz","fileCount":24,"integrity":"sha512-f8ki61XvtXMk9p1nGm4o2EttloTB/bXuFLHRo+Md19ZPSk28QpYaomrfpniN5Y2QR8pSz/HszTXVrpRuOJ3rXA==","signatures":[{"sig":"MEUCIEd+M9rE34lAkIZ6lo6I5U8xH/hHA7dLSMj9xl2iZsbDAiEA10A+LKx0wjQ2bMahCm9qXPqNz5Yk10dFzC4Ka1KPyK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588833},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"f129af7772de51ccaa65f0f3d3d8831a67a5a018","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.2_1787418950311_0.5837197478016254","host":"s3://npm-registry-packages-npm-production"}},"3.13.3":{"name":"@gfargo/doorman","version":"3.13.3","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.3","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"93d4904e0a6cb2116bd56cc49a1800246ae17ba6","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.3.tgz","fileCount":24,"integrity":"sha512-0v2MmkytRCZc5WMNGp/5MhsYr7zorVi/p8ga628pGVxfPhQVrfwIJb+4NpwHH/zxZf+GwUJ6g/tLFyfq+j5TCQ==","signatures":[{"sig":"MEYCIQCZvuGw8FGPqEyzVOlHTjdxLXqDNoM71Yc481PxvPLl0gIhAPOR1tZa6crr31IaVk9B05V3gFTn3oiQoH55IEXDmzwR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588761},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"fabc8c8be05610bbf678b209117d36c8753e8f5d","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.3_1787419471823_0.7897684535182992","host":"s3://npm-registry-packages-npm-production"}},"3.13.4":{"name":"@gfargo/doorman","version":"3.13.4","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.4","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"77ccd22d075bc3710bbf68d807af9ac1f75168bc","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.4.tgz","fileCount":24,"integrity":"sha512-ScLiIeH9jSE+4CUA84sHRg0V6sfh3heyDZhgXeGNztKMh4mc9nMR9Db602jglSNPYAsZW15LmSrW820X3Ua7kA==","signatures":[{"sig":"MEQCIH/oJRdvtbMF4ePi0cVaDKKQnDVtZy0MfJ9g0nUcLE17AiBmf5ChZgyeBxhQQgKJgZ0Svdty2aQfIAMwlFz1aRgaVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588409},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"2b4dc5a9dbe9125fd059c46139a44f500af4a08c","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.4_1787496780236_0.7127043260791377","host":"s3://npm-registry-packages-npm-production"}},"3.13.5":{"name":"@gfargo/doorman","version":"3.13.5","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.5","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"b8599bbb924213c20031a108c45ee700ac587df2","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.5.tgz","fileCount":24,"integrity":"sha512-Kf62TozRzms2t/m3Jm8xYQ8fN1forcxxIL+rmmtzVo4xqFHgxDV7hddwCag6WKhyWVMK/PerdgIMO+clJQdLSQ==","signatures":[{"sig":"MEUCICA5+gEz/hvltyPUGB4GA86kicPRJ68F1pF5Hp6PkJ8ZAiEAhMRglINyNgw//twFJGcopC9D0/0kuy+6O90VotDVS9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588429},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"b553607f758447dbc0a0951159f7c376cdb41131","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.5_1787497481840_0.38847602578021134","host":"s3://npm-registry-packages-npm-production"}},"3.13.6":{"name":"@gfargo/doorman","version":"3.13.6","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.6","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"c9cd4cfb174130fdf3cda73da03717c1249fbe4f","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.6.tgz","fileCount":24,"integrity":"sha512-ZKec7BQDosiUOryXQm+a42ZrzVv3TZO3JEayuSvhTgQoRuEtkU2jtHeuqUMW3kJ0wY5XKWUkwtVv0Avc5vOtmw==","signatures":[{"sig":"MEQCIAD60tiGDxIzFWtxu8FihBZvG0N0q2uNBux9r5HgTEHhAiBcewAKQvoBCQdKKZY21CNSww2XdsP0K/cYUs8C4BKAaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588477},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"5aab607884e9cfe308db839312f4141407765659","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.6_1787497960214_0.17581879382792387","host":"s3://npm-registry-packages-npm-production"}},"3.13.7":{"name":"@gfargo/doorman","version":"3.13.7","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.7","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"621dc950fb38ba7813b5535c5605b65b1ce94c87","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.7.tgz","fileCount":24,"integrity":"sha512-h/X6HCafteEjigA0dxDBk8RijotMIRVYp8B05wBybe5/YlCuGBTRb3dgnJ8oaVVosnu9I+Ak2BVpb3st/qTgBQ==","signatures":[{"sig":"MEUCICkVmv8sVRh469euCpwLLzjcwlp22ToV5V/xp0duw32YAiEA6ZjcL9C9xViBdEMXsEAtiY4uEDEdxZw0DU2W73Fz23A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588727},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"5a75c14bfad029931c143280f2cba6a909e28ce7","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.7_1787512758047_0.4377468131812361","host":"s3://npm-registry-packages-npm-production"}},"3.13.8":{"name":"@gfargo/doorman","version":"3.13.8","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.8","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"9d23c51ab5b51656fe52dfea9cda7787b08a1d57","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.8.tgz","fileCount":24,"integrity":"sha512-X+tEvx0aNFn0PddPqmMimbQJdEeyioT9ivOIACpxcM2VTNz92i5aSa0+ErgpOV8xy2VeH8I2gbv4/7hAAl/Qgg==","signatures":[{"sig":"MEUCIHPj4SLoHCi3DgoKxgLkYkN9NorQzhqnj1+/52dXmSa2AiEAgVmWKlqDOypGLM1Nl/VCxqR2nk6hH1rUFXnmkI+5YnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588913},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"9db9c390457dddafa3c6780e2746833b02effc4a","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.8_1787519485582_0.9022426700799637","host":"s3://npm-registry-packages-npm-production"}},"3.13.9":{"name":"@gfargo/doorman","version":"3.13.9","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.9","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"12d4d7c211fcc5201942fe9b612da5cdb1e34dd7","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.9.tgz","fileCount":24,"integrity":"sha512-xHi6fPzLnA/5mF2IFNZiSshtXcTR5F69NLgmAb+GjxRmHkM0YoM1lTARriW2hNlB+AFG4MGpeDYTaKCyY9unVw==","signatures":[{"sig":"MEYCIQDZs4YzqGjyGNIOpRZW/JavCmDSghf/ajupYrXojKhy1gIhAIvJ7B6VyCaGWLV4OVaSXvlKrXcqN7Gqdq89zMVoDQRz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":589413},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"00412913e83aeefdc6b40e6183b78554f3757279","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.9_1787521793419_0.3940960072392772","host":"s3://npm-registry-packages-npm-production"}},"3.13.10":{"name":"@gfargo/doorman","version":"3.13.10","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.10","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"133df0c3798264aeb83b5d68b078a9e4692aa561","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.10.tgz","fileCount":24,"integrity":"sha512-W9Wl2JJj0C+XoF9chjcwzXQPqbZ9N609uCCs0uJsL5Emuj9Rq1n68phhli/qh8IeBMYO0+4TMg1F39PJIot/tQ==","signatures":[{"sig":"MEUCICoo6G6I9xtQMZbvs3z5d72La38dKn++3jqdwPDjQbc0AiEA+sqcVzZ4hQi9WxW+g1mcTbM6QdyKJAU2zwqpOMskCgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":589400},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"c7abd27983531734086b2a09270be394dade5a8b","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.10_1787531102790_0.15554280376498264","host":"s3://npm-registry-packages-npm-production"}},"3.13.11":{"name":"@gfargo/doorman","version":"3.13.11","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.13.11","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"91c3525ab99b35c2e3e6f36d53048b65c364fef4","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.13.11.tgz","fileCount":24,"integrity":"sha512-9fCY1mizmd76ljdJb6E5feYHiN+dLJuD4qfkQu8/4XQXZ4kNPNy0AvyMuAmgzaFnryVXAh9vuUV7GXZJ/M5W7A==","signatures":[{"sig":"MEYCIQCKxyklGZJawndkZVgitVBwvYC6MbzuSu1EbP/+crN25wIhAIdkUftiL2T0SNcPwFBYLZzqRWv/RHID1xZSQMdTfVm3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.13.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":589514},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"d0d167809332fd7de7db575da59c23d24d3b2aae","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.13.11_1787538030553_0.6366167183095988","host":"s3://npm-registry-packages-npm-production"}},"3.14.0":{"name":"@gfargo/doorman","version":"3.14.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.14.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"6865a3d69822924c792dd7e1c96a0bd853698d38","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.14.0.tgz","fileCount":24,"integrity":"sha512-yC9HPgHHnAHeOJ+vWl6eYMU9TQXVZbPbXoXByv+0ntOBHfOAQAxov3FTLeMIdqPWrfSnH5yRpj3IRjMtxFG0jw==","signatures":[{"sig":"MEUCIAy+QM9kOXkTaxOsNbJmXM5i5ox4IL5bbu0cil+ecLuKAiEAuyQWarNovS1WDteHZ94KllkQG5LmJawn1aneiG57Zz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":599450},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"3a88aec61f1494d38a88bf4eaa3e8f31a82ce353","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.14.0_1787579700238_0.5610959074939219","host":"s3://npm-registry-packages-npm-production"}},"3.14.1":{"name":"@gfargo/doorman","version":"3.14.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.14.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"12b7560f3358d08c4e1c87bcc0d50e4dc55fc543","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.14.1.tgz","fileCount":24,"integrity":"sha512-CC0pkaHaE8H8snBp0y5AtNtZa2YogLFHGTP5vWyJhT97rpMQrWJd4EQiol9b3bhQa41mtIayNpizmD24fABDDA==","signatures":[{"sig":"MEUCIHfbXyEPuK46h6AlSW20BX4sOnB9Lh8zVsQVt1zBswqCAiEA64ksoVkog642u5QJP7pLvM0lYzQmZ/gvKu7Q9quwNVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":603523},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"c2836eecc18234b3912f289f7eeb4a636dbfcfa1","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.14.1_1787582713552_0.1725871655943576","host":"s3://npm-registry-packages-npm-production"}},"3.14.2":{"name":"@gfargo/doorman","version":"3.14.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.14.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"36f0faf0f22f29b9888a0f98c75d4e6b491c4a89","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.14.2.tgz","fileCount":25,"integrity":"sha512-efNRFF83bPrZi5S9TGEsk16Pxhhp8B3XFbphddJggS5RfPWgpZjtoPYq4hE540m9Y5fePdxx8YNJi7FEyI4i1g==","signatures":[{"sig":"MEYCIQCWtuE2mV2Mq+/l2t2sB5HLT1NFMjav2rLG4n9khoU+fwIhAJjCY400dlAKvIrgXxeNPqeAs7R7v5fSKgOB8wI3Lemt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":629125},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"3c6443ca130431c695c37eb52d8419b41631e325","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.14.2_1787585738584_0.9963444160325698","host":"s3://npm-registry-packages-npm-production"}},"3.15.0":{"name":"@gfargo/doorman","version":"3.15.0","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.15.0","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"367dc26227c5eb22fad11d8eb0bc3ecb2d71eeeb","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.15.0.tgz","fileCount":25,"integrity":"sha512-dESo3CziL4tRYSxwSe2YMMwKdiPNsKw7uHvGJ3uYXidKztcZpP3SCix5U0Jf4eABW82p1QxJ6sSON4IJM21bCw==","signatures":[{"sig":"MEUCIQDrKVSguQksz853iEcQNHeijiHAdCQPPTGYHIc+GtcmygIgCOcYratleoZ8CTP/r2DDv9WnMxTdZu9fLBidbNTcluU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":631675},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"a94ded4297b0be99efab29782494cca0c8435834","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.15.0_1787593084887_0.42440553437858175","host":"s3://npm-registry-packages-npm-production"}},"3.15.1":{"name":"@gfargo/doorman","version":"3.15.1","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.15.1","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"2e1846756e222df4db8d78654ec9e0e8b82a1db2","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.15.1.tgz","fileCount":25,"integrity":"sha512-Nank0gl6g4LpQEasEtU8/tgZTVEQEda5Jgor/fNPrHDkMPGlqqhuuoTBLY00OiYIVcehfFEfZM39cqs/YyPyZg==","signatures":[{"sig":"MEYCIQDuP931nLIix4mrDXQuRqFidf+2jEAN5kQdLLhfrpujJgIhAM++cQdj53a5dXT8KIFpnjXPcpWnyecA/7NdyJsySDzv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635565},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"93a59c110f4e5ca591ececc7d04c32de7b9dccce","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.15.1_1787593339404_0.5143461130760327","host":"s3://npm-registry-packages-npm-production"}},"3.15.2":{"name":"@gfargo/doorman","version":"3.15.2","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.15.2","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"dbcbf113fe403c61dd2f111c8390ec912fc699de","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.15.2.tgz","fileCount":25,"integrity":"sha512-FGuseBA8LZ17cO0gdjxTXJXx2W+XdHJpkpL7rPvhHEmbPG4IfcIlULo8j0Zdx/ZMDgfe87vYTi3rVd2GPLR36A==","signatures":[{"sig":"MEUCIBeDkHuVXgMWnt8pxkOdh9N03Xz0K/0VQ3P0+bAPplHmAiEAshXVcqSD6TFQYZ6mj23NoIeeniMxMpR40gS/QZWNrvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":639331},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"23e18bc89792eaedd2e31d60d7f870d66dae679a","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.15.2_1787604785260_0.1484548577677658","host":"s3://npm-registry-packages-npm-production"}},"3.15.3":{"name":"@gfargo/doorman","version":"3.15.3","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","_id":"@gfargo/doorman@3.15.3","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"homepage":"https://github.com/gfargo/doorman#readme","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"dist":{"shasum":"16fbb544009f6b9a181bb2fe4890c67c3ab3791b","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.15.3.tgz","fileCount":25,"integrity":"sha512-YALkOtg8V5QHjBUiWWm1j2H8nK0Gh5TMZPC7Bad4n2FMW0tKXiOTIR3sdeD1AEO7jVVvkvlndu9D6wNEGosmZw==","signatures":[{"sig":"MEYCIQDlqK8fOeQtZpceNc7ZK/cIPwOHcp7sNf/OTuUsTkQ0ZgIhAIA9J/LXrV+1jt26MoUrPjpVWxyGv9nLAQj1SaGwddJ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640081},"pnpm":{"overrides":{"tmp":">=0.2.6","braces":">=3.0.3","nanoid":">=3.3.8","undici":">=7.29.0","esbuild":">=0.25.0","js-yaml":">=4.3.1","fast-uri":">=3.1.5","handlebars":">=4.7.9","@babel/core":">=7.29.6","ajv@<6.14.0":"6.14.0","cross-spawn":"^7.0.6","@babel/helpers":">=7.26.10","flatted@<3.4.2":">=3.4.2","brace-expansion":">=5.0.9","postcss@<8.5.10":">=8.5.10","@octokit/request":">=9.2.1","lodash@<=4.17.23":">=4.18.0","minimatch@<3.1.4":">=3.1.4","picomatch@<2.3.2":">=2.3.2","@octokit/endpoint":">=10.1.3","micromatch@<4.0.8":">=4.0.8","diff@>=4.0.0 <4.0.4":">=4.0.4","lodash-es@<=4.17.23":">=4.18.0","yaml@>=2.0.0 <2.8.3":">=2.8.3","glob@>=10.2.0 <10.5.0":">=10.5.0","@octokit/request-error":">=6.1.7","rollup@>=4.0.0 <4.59.0":">=4.59.0","brace-expansion@<1.1.13":">=1.1.13","minimatch@>=9.0.0 <9.0.7":">=9.0.7","@octokit/plugin-paginate-rest":">=11.4.1","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3"}},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"77b87b47b8abd4686fea6412e74f93c743926e86","scripts":{"dev":"pnpm start","lint":"eslint .","test":"jest","build":"tsup-node","clean":"rimraf dist","start":"ts-node ./bin/run.ts","commit":"cz","format":"prettier . --check","compile":"tsc","doorman":"pnpm start","prepare":"husky","release":"semantic-release","test:ci":"jest --ci --coverage --watchAll=false","docs:dev":"echo 'Documentation server would start here'","lint:fix":"eslint . --fix","prebuild":"pnpm clean","benchmark":"echo 'Performance benchmarks would run here'","commitlint":"commitlint --edit","format:fix":"prettier . --write","start:node":"node ./bin/run","test:watch":"jest --watchAll","build:watch":"tsup-node --watch","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","test:coverage":"jest --coverage","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"repository":{"url":"git+ssh://git@github.com/gfargo/doorman.git","type":"git"},"_npmVersion":"12.0.2","description":"Manage firewall rules as code across multiple providers","directories":{"bin":"bin","lib":"src"},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.18.0","zod":"^3.23.8","chalk":"^5.3.0","yargs":"^17.7.2","dotenv":"^16.4.5","consola":"^3.4.2","find-up":"^6.3.0","cli-table3":"^0.6.5","google-auth-library":"^11.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","husky":"^9.0.11","eslint":"^9.39.4","rimraf":"^6.1.3","globals":"^17.6.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.2.5","commitizen":"^4.3.0","typescript":"^5.4.5","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/yargs":"^17.0.32","@jest/globals":"^30.3.0","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@commitlint/cli":"^20.5.3","@tsconfig/node20":"^20.1.4","semantic-release":"^25.0.3","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.6","ts-json-schema-generator":"^2.3.0","@typescript-eslint/parser":"^8.59.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","eslint-plugin-unused-imports":"^4.4.1","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.1"},"_npmOperationalInternal":{"tmp":"tmp/doorman_3.15.3_1787607802008_0.87161446588812","host":"s3://npm-registry-packages-npm-production"}},"3.15.4":{"name":"@gfargo/doorman","version":"3.15.4","description":"Manage firewall rules as code across multiple providers","publishConfig":{"access":"public"},"bin":{"doorman":"bin/run","vercel-doorman":"bin/run-deprecated"},"directories":{"lib":"src","bin":"bin"},"agents":{"skills":[{"name":"doorman","path":"./skills/doorman"}]},"repository":{"type":"git","url":"git+ssh://git@github.com/gfargo/doorman.git"},"scripts":{"prebuild":"pnpm clean","build":"tsup-node","build:schema":"ts-node ./schema/generate-schema.ts; pnpm lint:fix; pnpm format:fix","build:watch":"tsup-node --watch","clean":"rimraf dist","commit":"cz","commitlint":"commitlint --edit","compile":"tsc","format":"prettier . --check","format:fix":"prettier . --write","lint":"eslint .","lint:fix":"eslint . --fix","start":"ts-node ./bin/run.ts","start:node":"node ./bin/run","test":"jest","test:watch":"jest --watchAll","test:coverage":"jest --coverage","test:ci":"jest --ci --coverage --watchAll=false","dev":"pnpm start","doorman":"pnpm start","prepare":"husky","release":"semantic-release","docs:dev":"echo 'Documentation server would start here'","validate:examples":"find examples -name '*.json' -exec pnpm start validate --config {} \\;","benchmark":"echo 'Performance benchmarks would run here'"},"keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","devDependencies":{"@commitlint/cli":"^20.5.3","@commitlint/config-conventional":"^20.5.3","@jest/globals":"^30.3.0","@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^12.0.6","@semantic-release/npm":"^13.1.5","@tsconfig/node20":"^20.1.4","@types/jest":"^30.0.0","@types/node":"^20.12.12","@types/prompts":"^2.4.9","@types/signale":"^1.4.7","@types/yargs":"^17.0.32","@typescript-eslint/eslint-plugin":"^8.59.1","@typescript-eslint/parser":"^8.59.1","commitizen":"^4.3.0","cz-conventional-changelog":"^3.3.0","eslint":"^9.39.4","eslint-config-prettier":"^9.1.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-prettier":"^5.1.3","eslint-plugin-unused-imports":"^4.4.1","globals":"^17.6.0","husky":"^9.0.11","jest":"^30.3.0","prettier":"^3.2.5","rimraf":"^6.1.3","semantic-release":"^25.0.3","ts-jest":"^29.4.9","ts-json-schema-generator":"^2.3.0","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^5.4.5","typescript-eslint":"^8.59.1"},"dependencies":{"ajv":"^8.18.0","chalk":"^5.3.0","cli-table3":"^0.6.5","consola":"^3.4.2","dotenv":"^16.4.5","find-up":"^6.3.0","google-auth-library":"^11.0.2","yargs":"^17.7.2","zod":"^3.23.8"},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"pnpm":{"overrides":{"micromatch@<4.0.8":">=4.0.8","cross-spawn":"^7.0.6","nanoid":">=3.3.8","@octokit/request-error":">=6.1.7","@octokit/endpoint":">=10.1.3","@octokit/request":">=9.2.1","@octokit/plugin-paginate-rest":">=11.4.1","braces":">=3.0.3","tmp":">=0.2.6","esbuild":">=0.25.0","@babel/helpers":">=7.26.10","@babel/core":">=7.29.6","handlebars":">=4.7.9","minimatch@<3.1.4":">=3.1.4","minimatch@>=9.0.0 <9.0.7":">=9.0.7","glob@>=10.2.0 <10.5.0":">=10.5.0","brace-expansion@<1.1.13":">=1.1.13","brace-expansion@>=2.0.0 <2.0.3":">=2.0.3","brace-expansion":">=5.0.9","flatted@<3.4.2":">=3.4.2","picomatch@<2.3.2":">=2.3.2","js-yaml":">=4.3.1","ajv@<6.14.0":"6.14.0","lodash@<=4.17.23":">=4.18.0","lodash-es@<=4.17.23":">=4.18.0","rollup@>=4.0.0 <4.59.0":">=4.59.0","postcss@<8.5.10":">=8.5.10","yaml@>=2.0.0 <2.8.3":">=2.8.3","diff@>=4.0.0 <4.0.4":">=4.0.4","undici":">=7.29.0","fast-uri":">=3.1.5"}},"gitHead":"08aacebbfde1a308b63eb89bb4e871250b4a311f","_id":"@gfargo/doorman@3.15.4","bugs":{"url":"https://github.com/gfargo/doorman/issues"},"homepage":"https://github.com/gfargo/doorman#readme","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-0dyOpQTZyKMzyJCNH+L1AZtIp4jA8zUaPs/QDqiau7r+bg+mUHYBPpKDNbnAOkaN6RR3h3L7v5LbVkUPUeMUXg==","shasum":"365a6a5c94dd4de598d7be77de6b9d2a45f96246","tarball":"https://registry.npmjs.org/@gfargo/doorman/-/doorman-3.15.4.tgz","fileCount":25,"unpackedSize":640405,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfargo%2fdoorman@3.15.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCzrfXdtNEWWUPtBoOVYnrUiuQlR/NDtgoWEBuUDLZ0HQIhALF427aWHTZQvh61jFTnTz4/GR9KHAJO2EW1+oShVi21"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c0ed3223-285f-4161-9b12-215ba33b1f80"}},"maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/doorman_3.15.4_1787663938217_0.9382763531823017"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T15:05:36.103Z","modified":"2026-08-25T13:18:58.737Z","2.1.0":"2026-08-16T15:05:36.373Z","3.0.0":"2026-08-16T15:15:08.196Z","3.0.1":"2026-08-17T01:32:26.636Z","3.0.2":"2026-08-17T03:52:51.980Z","3.0.3":"2026-08-17T04:03:21.493Z","3.0.4":"2026-08-17T13:23:31.594Z","3.0.5":"2026-08-17T13:40:46.418Z","3.0.6":"2026-08-17T15:47:48.176Z","3.0.7":"2026-08-17T19:46:06.086Z","3.0.8":"2026-08-17T20:06:58.940Z","3.0.9":"2026-08-17T20:11:03.014Z","3.1.0":"2026-08-18T16:58:34.364Z","3.2.0":"2026-08-18T20:32:16.827Z","3.2.1":"2026-08-19T15:58:21.372Z","3.2.2":"2026-08-19T16:13:00.365Z","3.2.3":"2026-08-19T17:07:04.618Z","3.2.4":"2026-08-19T17:59:09.532Z","3.2.5":"2026-08-19T22:37:17.463Z","3.3.0":"2026-08-19T22:48:13.217Z","3.3.1":"2026-08-19T22:53:46.708Z","3.4.0":"2026-08-20T01:15:57.586Z","3.5.0":"2026-08-20T01:34:46.064Z","3.6.0":"2026-08-20T01:43:43.289Z","3.7.0":"2026-08-20T01:56:11.593Z","3.7.1":"2026-08-20T02:35:00.345Z","3.8.0":"2026-08-20T03:09:05.372Z","3.8.1":"2026-08-20T04:16:35.096Z","3.9.0":"2026-08-20T04:21:51.687Z","3.9.1":"2026-08-20T04:39:08.474Z","3.9.2":"2026-08-20T04:45:39.351Z","3.10.0":"2026-08-20T16:05:28.352Z","3.10.1":"2026-08-21T16:39:51.292Z","3.10.2":"2026-08-22T00:02:08.830Z","3.11.0":"2026-08-22T00:36:23.769Z","3.11.1":"2026-08-22T00:37:42.176Z","3.11.2":"2026-08-22T01:22:35.148Z","3.11.3":"2026-08-22T01:52:22.038Z","3.11.4":"2026-08-22T02:10:11.298Z","3.11.5":"2026-08-22T02:19:59.004Z","3.11.6":"2026-08-22T02:36:53.680Z","3.11.7":"2026-08-22T14:01:48.343Z","3.12.0":"2026-08-22T14:14:45.636Z","3.12.1":"2026-08-22T14:26:07.273Z","3.13.0":"2026-08-22T15:52:49.547Z","3.13.1":"2026-08-22T16:59:30.289Z","3.13.2":"2026-08-22T17:15:50.468Z","3.13.3":"2026-08-22T17:24:31.974Z","3.13.4":"2026-08-23T14:53:00.404Z","3.13.5":"2026-08-23T15:04:41.988Z","3.13.6":"2026-08-23T15:12:40.383Z","3.13.7":"2026-08-23T19:19:18.204Z","3.13.8":"2026-08-23T21:11:25.740Z","3.13.9":"2026-08-23T21:49:53.592Z","3.13.10":"2026-08-24T00:25:02.948Z","3.13.11":"2026-08-24T02:20:30.753Z","3.14.0":"2026-08-24T13:55:00.475Z","3.14.1":"2026-08-24T14:45:13.721Z","3.14.2":"2026-08-24T15:35:38.720Z","3.15.0":"2026-08-24T17:38:05.048Z","3.15.1":"2026-08-24T17:42:19.563Z","3.15.2":"2026-08-24T20:53:05.408Z","3.15.3":"2026-08-24T21:43:22.177Z","3.15.4":"2026-08-25T13:18:58.383Z"},"bugs":{"url":"https://github.com/gfargo/doorman/issues"},"author":{"name":"Griffen Fargo","email":"ghfargo@gmail.com"},"license":"MIT","homepage":"https://github.com/gfargo/doorman#readme","keywords":["firewall","waf","IaC","security","vercel","cloudflare","cli"],"repository":{"type":"git","url":"git+ssh://git@github.com/gfargo/doorman.git"},"description":"Manage firewall rules as code across multiple providers","maintainers":[{"name":"gfargo","email":"ghfargo@gmail.com"}],"readme":"# 🚪 Doorman\n\n[![NPM Version](https://img.shields.io/npm/v/@gfargo/doorman.svg)](https://www.npmjs.com/package/@gfargo/doorman)\n[![Typescript Support](https://img.shields.io/npm/types/@gfargo/doorman.svg)](https://www.npmjs.com/package/@gfargo/doorman)\n[![NPM Downloads](https://img.shields.io/npm/dt/@gfargo/doorman.svg)](https://www.npmjs.com/package/@gfargo/doorman)\n[![GitHub issues](https://img.shields.io/github/issues/gfargo/doorman)](https://github.com/gfargo/doorman/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/gfargo/doorman)](https://github.com/gfargo/doorman/pulls)\n[![Last Commit](https://img.shields.io/github/last-commit/gfargo/doorman)](https://github.com/gfargo/doorman/tree/main)\n\n**The complete toolkit for managing firewall rules as code across multiple providers.**\n\nDoorman enables Infrastructure as Code (IaC) for your security layer, bringing version control, automated deployment, and team collaboration to your firewall configuration. Supports Vercel Firewall and Cloudflare WAF.\n\n<p align=\"center\">\n  <img src=\"./assets/demos/quickstart.gif\" alt=\"doorman init security-focused, then doorman validate --verbose, showing a passing configuration\" width=\"720\" />\n</p>\n\n<p align=\"center\"><sub>Real terminal output — <code>doorman init security-focused</code> followed by <code>doorman validate --verbose</code>. Recorded with <a href=\"https://github.com/charmbracelet/vhs\">VHS</a>, see <a href=\"/demos\">/demos</a>.</sub></p>\n\n## ✨ Features\n\n### Core Functionality\n\n- 🔒 **Complete Rule Management** - Create, update, delete custom rules and IP blocking\n- 🔄 **Bidirectional Sync** - Keep local configs and Vercel in perfect sync\n- 📊 **Smart Status Checking** - Know exactly what needs syncing before you deploy\n- 🔍 **Detailed Diff Analysis** - See exactly what will change with color-coded output\n- ✅ **Advanced Validation** - Syntax checking plus configuration health scoring\n\n> ✅ **New in 2.0:** Cloudflare WAF support is here! Manage both Vercel and Cloudflare firewall rules from a single tool with `--provider cloudflare`.\n\n### Developer Experience\n\n- 🚀 **Interactive Setup** - Guided initialization with helpful links and validation\n- 👀 **Watch Mode** - Auto-sync during development for faster iteration\n- 📋 **Multiple Output Formats** - Table, JSON, YAML, Markdown, and Terraform export\n- 🛡️ **Safety First** - Backup/restore functionality and confirmation prompts\n- 📚 **Rich Templates** - Pre-built security rules from Vercel's template library\n\n### Enterprise Ready\n\n- 🔄 **CI/CD Integration** - JSON outputs and validation perfect for automation\n- 📈 **Health Monitoring** - Configuration scoring and best practice recommendations\n- 🏥 **Comprehensive Testing** - 50+ test scenarios covering edge cases and failures\n- 📖 **Documentation Export** - Generate team documentation in multiple formats\n\n## 🚀 Quick Start\n\n### Installation\n\n```bash\nnpm install -g @gfargo/doorman\n# or\nyarn global add @gfargo/doorman\n# or\npnpm add -g @gfargo/doorman\n```\n\n### Get Started in 30 Seconds\n\n```bash\n# 1. See the setup guide\ndoorman setup\n\n# 2. Initialize your project (interactive)\ndoorman init --interactive\n\n# 3. Check your configuration health\ndoorman status\n\n# 4. Deploy your rules\ndoorman sync\n```\n\n## 📋 Configuration\n\nDoorman uses a simple JSON configuration file with full TypeScript support and JSON Schema validation:\n\n```json\n{\n  \"$schema\": \"https://doorman.griffen.codes/schema.json\",\n  \"projectId\": \"prj_abc123\",\n  \"teamId\": \"team_xyz789\",\n  \"rules\": [\n    {\n      \"id\": \"rule_block_bots\",\n      \"name\": \"Block Bad Bots\",\n      \"description\": \"Block malicious bots and crawlers\",\n      \"active\": true,\n      \"conditionGroup\": [\n        {\n          \"conditions\": [\n            {\n              \"type\": \"user_agent\",\n              \"op\": \"sub\",\n              \"value\": \"bot\"\n            }\n          ]\n        }\n      ],\n      \"action\": {\n        \"mitigate\": {\n          \"action\": \"deny\"\n        }\n      }\n    }\n  ],\n  \"ips\": [\n    {\n      \"ip\": \"192.168.1.100\",\n      \"hostname\": \"suspicious-host\",\n      \"action\": \"deny\"\n    }\n  ]\n}\n```\n\n### 🎨 Getting Started with Rules\n\n**Option 1: Use the `add` Command** (Recommended)\n\n```bash\ndoorman add --interactive          # Guided prompts\ndoorman add --name \"Block Admin\" --field path --op pre --value \"/admin\" --action deny\n```\n\n<p align=\"center\">\n  <img src=\"./assets/demos/add-interactive.gif\" alt=\"doorman add --interactive walking through creating a Block Admin Access rule\" width=\"720\" />\n</p>\n\n**Option 2: Use Templates**\n\n```bash\ndoorman template          # Browse available templates\ndoorman template ai-bots  # Add AI bot protection\n```\n\n<p align=\"center\">\n  <img src=\"./assets/demos/template-picker.gif\" alt=\"doorman template picker adding the ai-bots template\" width=\"720\" />\n</p>\n\n**Option 3: Interactive Setup**\n\n```bash\ndoorman init security-focused  # Start with security templates\n```\n\n**Option 4: Import Existing**\n\n```bash\ndoorman download  # Import your current Vercel rules\n```\n\n### 📚 Examples & Templates\n\n- **[Template Library](https://vercel.com/templates/vercel-firewall)** - Official Vercel templates\n- **[Example Configurations](/examples)** - Real-world configuration examples\n- **[Rule Builder Guide](https://vercel.com/docs/security/vercel-firewall)** - Vercel's official documentation\n\n## 🛠️ Commands\n\n### Setup & Initialization\n\n| Command | Description                                       | Example                      |\n| ------- | ------------------------------------------------- | ---------------------------- |\n| `setup` | Show comprehensive setup guide with links         | `doorman setup`              |\n| `init`  | Create new configuration with interactive prompts | `doorman init --interactive` |\n\n### Rule Creation\n\n| Command    | Description                                         | Example                                                                           |\n| ---------- | --------------------------------------------------- | --------------------------------------------------------------------------------- |\n| `add`      | Add a new rule from the CLI (interactive or inline) | `doorman add --name \"Block\" --field path --op pre --value \"/admin\" --action deny` |\n| `template` | Add predefined rule templates                       | `doorman template ai-bots`                                                        |\n\n### Rule Management\n\n| Command    | Description                                        | Example                            |\n| ---------- | -------------------------------------------------- | ---------------------------------- |\n| `remove`   | Remove rules by name, ID, or interactive selection | `doorman remove --name \"Old Rule\"` |\n| `template` | Add predefined rule templates                      | `doorman template ai-bots`         |\n\n### Status & Information\n\n| Command  | Description                                        | Use Case                 |\n| -------- | -------------------------------------------------- | ------------------------ |\n| `status` | Show sync status and configuration health          | Before syncing changes   |\n| `list`   | Display current deployed rules                     | Audit what's live        |\n| `diff`   | Show detailed differences between local and remote | Review before deployment |\n\n### Configuration Management\n\n| Command    | Description                           | Direction        |\n| ---------- | ------------------------------------- | ---------------- |\n| `sync`     | Apply local changes to Vercel         | Local → Remote   |\n| `download` | Import Vercel rules to local config   | Remote → Local   |\n| `validate` | Check configuration syntax and health | Local validation |\n\n### Advanced Features\n\n| Command  | Description                                                  | Use Case             |\n| -------- | ------------------------------------------------------------ | -------------------- |\n| `watch`  | Auto-sync on file changes                                    | Development workflow |\n| `backup` | Create/restore configuration backups                         | Safety & rollback    |\n| `export` | Export in multiple formats (JSON, YAML, Markdown, Terraform) | Documentation & IaC  |\n\n## 🔄 Workflows\n\n### Development Workflow\n\n```bash\n# Start watching for changes\ndoorman watch\n\n# Or manual development cycle:\ndoorman status    # Check what needs syncing\ndoorman diff      # Review changes\ndoorman sync      # Deploy changes\n```\n\n### Production Deployment\n\n```bash\ndoorman backup           # Safety first\ndoorman validate         # Check syntax\ndoorman diff             # Review changes\ndoorman sync             # Deploy\ndoorman status           # Verify deployment\n```\n\n### Team Collaboration\n\n```bash\ndoorman export --format markdown  # Generate docs\ndoorman backup --list             # Manage backups\ndoorman download                  # Sync with team changes\n```\n\n## 🔧 Configuration\n\n### Environment Variables\n\nSet these environment variables to avoid passing credentials in commands:\n\n```bash\nexport VERCEL_TOKEN=\"your-api-token\"\nexport VERCEL_PROJECT_ID=\"prj_abc123\"  # Optional\nexport VERCEL_TEAM_ID=\"team_xyz789\"    # Optional if using team\n```\n\n### API Token Setup\n\n1. Visit [Vercel Account Tokens](https://vercel.com/account/tokens)\n2. Click \"Create Token\"\n3. Name: \"Doorman Firewall Management\"\n4. Scope: Select your project/team\n5. Copy token and set as `VERCEL_TOKEN`\n\n**Need help?** Run `doorman setup` for detailed instructions with direct links.\n\n## 📊 Command Examples\n\n### Basic Usage\n\n```bash\n# Quick status check\ndoorman status\n\n# See what's currently deployed\ndoorman list\n\n# Apply your local changes\ndoorman sync\n```\n\n### Advanced Usage\n\n```bash\n# Export documentation\ndoorman export --format markdown --output firewall-docs.md\n\n# Backup before major changes\ndoorman backup\n\n# Watch for changes during development\ndoorman watch\n\n# Get detailed diff in JSON for CI/CD\ndoorman diff --format json\n```\n\n### CI/CD Integration\n\n```bash\n# Validate in CI pipeline\ndoorman validate\n\n# Check for changes (exit code indicates changes)\ndoorman diff --format json > changes.json\n\n# Deploy in production\ndoorman sync --config production.config.json\n```\n\n## 🏥 Configuration Health\n\nDoorman includes a built-in health checker that scores your configuration and provides recommendations:\n\n```bash\ndoorman status  # Includes health score\n```\n\n**Health Score Factors:**\n\n- **Rule Naming** - Proper ID formats and descriptive names\n- **Security Best Practices** - Rate limiting, bot protection, etc.\n- **Performance Impact** - Rule complexity and regex usage\n- **Maintainability** - Disabled rules, duplicates, versioning\n\n**Score Ranges:**\n\n- 🟢 80-100: Excellent configuration\n- 🟡 60-79: Good with minor improvements needed\n- 🔴 0-59: Needs attention\n\n## 🔒 Security Best Practices\n\n### Token Management\n\n- Store API tokens in environment variables, never in code\n- Set token expiration dates appropriately\n- Use principle of least privilege for token scopes\n- Regularly rotate API tokens\n\n### Rule Management\n\n- Test rules in staging before production\n- Keep backups of working configurations\n- Use descriptive names and documentation\n- Start with rules disabled, enable after testing\n\n### Team Collaboration\n\n- Use version control for configuration files\n- Document rule purposes and business logic\n- Regular security audits of active rules\n- Establish approval processes for rule changes\n\n## 🚀 Advanced Features\n\n### Watch Mode for Development\n\n```bash\ndoorman watch --interval 1000\n```\n\nAutomatically syncs changes when you modify your config file. Perfect for rapid development and testing.\n\n### Backup Management\n\n```bash\ndoorman backup                    # Create backup\ndoorman backup --list             # List backups\ndoorman backup --restore backup.json  # Restore backup\n```\n\n### Multi-Format Export\n\n```bash\n# Generate team documentation\ndoorman export --format markdown\n\n# Export for Terraform (conceptual)\ndoorman export --format terraform\n\n# CI/CD integration\ndoorman export --format json --source remote\n```\n\n### Configuration Health Monitoring\n\nThe health checker evaluates:\n\n- Rule naming conventions\n- Security coverage gaps\n- Performance optimization opportunities\n- Maintenance recommendations\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n**\"Project not found\" error:**\n\n- Verify your Project ID is correct\n- Ensure your token has access to the project\n- Check that the project has Pro plan or higher\n\n**\"Unauthorized\" error:**\n\n- Confirm `VERCEL_TOKEN` is set correctly\n- Verify token hasn't expired\n- Ensure token has firewall permissions\n\n**Sync issues:**\n\n- Run `doorman status` to see what's out of sync\n- Use `doorman diff` to see detailed changes\n- Check for validation errors with `doorman validate`\n\n**Need more help?**\n\n```bash\ndoorman setup  # Comprehensive setup guide\n```\n\n## 📚 Resources\n\n- **[Setup Guide](https://github.com/gfargo/doorman#setup)** - Complete setup instructions\n- **[Example Configurations](/examples)** - Real-world examples\n- **[Vercel Firewall Docs](https://vercel.com/docs/security/vercel-firewall)** - Official documentation\n- **[Template Library](https://vercel.com/templates/vercel-firewall)** - Pre-built rule templates\n- **[API Reference](https://vercel.com/docs/rest-api/endpoints/firewall)** - Vercel Firewall API\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n### Development Setup\n\n```bash\ngit clone https://github.com/gfargo/doorman.git\ncd doorman\npnpm install\npnpm build\n```\n\n### Running Tests\n\n```bash\npnpm test              # Run test suite\npnpm test:coverage     # Run with coverage\npnpm test:watch        # Watch mode\n```\n\n### Contributing Guidelines\n\n- Follow existing code style and patterns\n- Add tests for new features\n- Update documentation for changes\n- Use conventional commit messages\n\n### Areas for Contribution\n\n- Additional export formats\n- Enhanced rule templates\n- Performance optimizations\n- Documentation improvements\n- Bug fixes and edge cases\n\n## 📈 Why Doorman?\n\n### Before Doorman\n\n- Manual firewall rule management through Vercel dashboard\n- No version control for security configurations\n- Difficult to sync rules across environments\n- No validation or testing of rule changes\n- Hard to collaborate on security policies\n\n### After Doorman\n\n- ✅ Infrastructure as Code for firewall rules\n- ✅ Full version control and change tracking\n- ✅ Automated deployment and validation\n- ✅ Team collaboration with documentation\n- ✅ Health monitoring and best practices\n- ✅ Backup/restore and safety features\n\n## 🎯 Use Cases\n\n- **Startups** - Quick security setup with templates\n- **Enterprise** - Automated compliance and governance\n- **DevOps Teams** - CI/CD integration and IaC workflows\n- **Security Teams** - Centralized policy management\n- **Development Teams** - Safe iteration and testing\n\n## 📊 Project Stats\n\n![Alt](https://repobeats.axiom.co/api/embed/34b6b913b71bcb611b939600fc579fe8ef7b00ae.svg 'Repobeats analytics image')\n\n## 🙏 Acknowledgments\n\n- **Vercel Team** - For building an excellent firewall platform\n- **Community Contributors** - For feedback, bug reports, and improvements\n- **Security Community** - For best practices and rule templates\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.\n\n---\n\n**Made with ❤️ by [Griffen Fargo](https://github.com/gfargo)**\n\n_Securing the web, one firewall rule at a time._ 🚪🔒\n","readmeFilename":"README.md"}