{"_id":"@accelerated-software-development/caddy-api-client","_rev":"16-b0a3d66eda229954eab7ff38ab46c538","name":"@accelerated-software-development/caddy-api-client","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.1.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.1.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"46c7c2c5a51a5ed418fb428a7bc0e7542bdd5e3c","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.1.0.tgz","fileCount":25,"integrity":"sha512-pCA+TZBES4EJ+x2aWpaeLDerXpGQryaGLgF9eMKlG3NEHpdqiMazBp2sNuNTMVLpdqOoX9/iopbEaBgWgpJKOQ==","signatures":[{"sig":"MEUCIHk0lzzNAtgkW2sWdHY1tP+zs12khsxbLZRLg7BjC6uHAiEAy9gE+V4F6GjYtL6CV4uQZdT6uAkYxDDxeZvdNe/cerE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1399590},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js","require":"./dist/mitm/index.cjs"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js","require":"./dist/caddy/index.cjs"}},"gitHead":"da0461fe9149de18fcf0179954ce71ee6bde724b","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","verify:publish":"npm publish --dry-run","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","test:coverage:integration":"echo '\n================================================\nRunning Integration Test Coverage\n================================================\n' && INTEGRATION_TEST=true vitest run --coverage --config vitest.integration.config.ts"},"_npmUser":{"name":"kelvin.id","email":"contact@kelvin.id"},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"10.9.2","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","prettier":"^3.6.2","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.1.0_1767618196449_0.012504794414198273","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.2.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.2.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"c2758befafe3301ca35dfc5127a7dfc4812d7360","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.2.0.tgz","fileCount":31,"integrity":"sha512-/G5IayElvPt92RYSW79+K8Ehfvqhk+UGDIAfmASgLImS4XegaNZT20IWEeNo0IC5caWu0qBpdylJ+NfUfTboGg==","signatures":[{"sig":"MEUCIQDlUbWj3iDOTyjGPhIurueT4GUxpG3cm7Wqr1BpT4RcKwIgUl1LOkucobWDJykgMC9ZEbGpsvxhAYSDBreKETO5CHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1601933},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js","require":"./dist/mitm/index.cjs"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js","require":"./dist/caddy/index.cjs"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js","require":"./dist/caddy-types.cjs"}},"gitHead":"919313d9b6250c860645b54801adf16ea1158e79","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","verify:publish":"npm publish --dry-run","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@peculiar/x509":"^1.14.2","caddy-json-types":"^1.0.4"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","prettier":"^3.6.2","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.2.0_1767886393395_0.21605868700362119","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@accelerated-software-development/caddy-api-client","version":"0.2.1","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.2.1","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"ac50b3b382ad2a1983b976ead0bd58cc6f114ca8","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.2.1.tgz","fileCount":31,"integrity":"sha512-+krieWr6wIpW3Tim2AjXERhV8fWJA15O7DcUubBzkUIpv5kCtL1hyT4+1Uy1IJ3jB629eBBQKYb5+BeQW22dgw==","signatures":[{"sig":"MEUCIQCYNljIPW95aM1MexHYH8k6xDRy4ItWyqy4HmumnXtAhAIgFPASHeTw6000CZDwuLNUV8cgRoz7aJj0XVXbN9sY6/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1601312},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js","require":"./dist/mitm/index.cjs"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js","require":"./dist/caddy/index.cjs"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js","require":"./dist/caddy-types.cjs"}},"gitHead":"1d5c64f1fa14a1f58b9b5fdecb8f7a95a3d203e7","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","verify:publish":"npm publish --dry-run","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@peculiar/x509":"^1.14.2","caddy-json-types":"^1.0.4"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","prettier":"^3.6.2","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.2.1_1767886991878_0.4650253730975633","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.3.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.3.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"137f40837844b31fefd0e58782164d61ce5ff032","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.3.0.tgz","fileCount":35,"integrity":"sha512-52PwjkF+WkAXkK1UexZz86/LbYRKNos7E7GsZRUxUTIp9Kd9UiBR9UnnYvOCl5GSuxyu0n9xzAg7/++sIOTC4A==","signatures":[{"sig":"MEQCIG5C3nByllEdLJCDQE2GmJoPMytUZxlLNzrhBiZBv+tWAiA+rY+fD83HLZU8p/CtR1cqDatviMipYsQ0MWf8H2sq5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3715390},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js","require":"./dist/mitm/index.cjs"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js","require":"./dist/caddy/index.cjs"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js","require":"./dist/caddy-types.cjs"}},"gitHead":"302101757dde3e6646c88cc8c6d0a89760af1a39","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","generate:types":"cd local/caddy && tygo generate && cd ../.. && npx tsx scripts/transform-caddy-types.ts && npx tsx scripts/generate-zod-schemas.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","verify:publish":"npm publish --dry-run","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.3.0_1768122517688_0.639776961301685","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@accelerated-software-development/caddy-api-client","version":"0.3.1","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.3.1","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"35e681c03dd4f8f57db5d6125b5621630a9483e6","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.3.1.tgz","fileCount":35,"integrity":"sha512-CCWOni5b50M8yWFc4lM+ItLhTYoE1E1KiTvxG3GfDGJNBgN3D9c4yGNajRfmT4ceeaet/gpAZzqNuCLDLJCUlg==","signatures":[{"sig":"MEUCICE8HQbgFBNur5WTNJscowAl8htWxnS7ZJj05y1OhAf4AiEA4dtSHi8PVXqhwNic4RUzS9n+DSkSJDGkgUPyMY9cwHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3715390},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js","require":"./dist/mitm/index.cjs"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js","require":"./dist/caddy/index.cjs"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js","require":"./dist/caddy-types.cjs"}},"gitHead":"9d0edea75cbd36576847a0d250a4e9f171b08480","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","generate:types":"cd local/caddy && tygo generate && cd ../.. && npx tsx scripts/transform-caddy-types.ts && npx tsx scripts/generate-zod-schemas.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","verify:publish":"npm publish --dry-run","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.3.1_1768126180975_0.6716113407617339","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.4.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.4.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"f6642eaba059be39de1e1c74ded0594a4ff11e96","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.4.0.tgz","fileCount":55,"integrity":"sha512-ojPxR3V5IXQxAQCP2L/+P5lUlVoHeARSzpNF0mOq085ostdE9FecwrEhFX55PMJNW1aa3KLk5Lmf2lw0fBCLTQ==","signatures":[{"sig":"MEUCIGuu/qIvuxs/B4iViWcD2mZnmhN3ewrBYRnid6VBFTtrAiEAt2qhxEiIDYuW5MAGfZ4zVEu8gr+aEbtevzlwIu+a+Rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5337575},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js","require":"./dist/mitm/index.cjs"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js","require":"./dist/caddy/index.cjs"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","require":"./dist/plugins/index.cjs"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js","require":"./dist/caddy-types.cjs"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js","require":"./dist/generated/extension-assets.cjs"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js","require":"./dist/plugins/caddy-security/index.cjs"}},"gitHead":"68a17396c09581803a747682133bb3ae347bf8c7","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.9.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.4.0_1770608785169_0.08143894311625832","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@accelerated-software-development/caddy-api-client","version":"0.4.1","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.4.1","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"d1f9393bd5b5f9a6e1b89c1447d5cb8e1007c079","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.4.1.tgz","fileCount":22,"integrity":"sha512-7kgHO2wfbfN+5sN4hi+vetlKzc3fPspoLY5notFfUHwf6UlrC4CFhZDRE6lNXmjBGDuJH9OHhB5pTfIWMsaLiA==","signatures":[{"sig":"MEUCIAeOCnXCgshDi4wb7VA1sLqz68LDL+g3kvau18EB14y/AiEAl5QmNT3LciT4aG4DDH2qqcfaBdqLm045IHqJuTWv/1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":978319},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"9ef55398e7290e5fbe05dea566ebb1384f8158ad","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.9.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.4.1_1770648675993_0.21848075111103205","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@accelerated-software-development/caddy-api-client","version":"0.4.2","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.4.2","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"16cadf4174c5824adf18f0afad8f070b31605843","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.4.2.tgz","fileCount":22,"integrity":"sha512-5+0pWeTQ6m386zybO2/NbIv7TQ5m79degq5FnZAjAaIk/Ytr8CPxXhQ71RlLnpih2B91PtZcRkeoxcF4CU/wvg==","signatures":[{"sig":"MEUCIHLkGuKlVqrXDuRN8nVIdtp72G5MmnIKLiGmt9oSDl1oAiEA+TwoWRSZz7qLaLPc12G/Um8ULOhCfhSGx0qkiYIpdtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":979885},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"dae9d3b34b56eeddf0b999982fe4b6d5f760e174","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.10.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.4.2_1770848276516_0.20336263792485032","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@accelerated-software-development/caddy-api-client","version":"0.4.3","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.4.3","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd-engineering.github.io/asd-caddy-api-client","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"171960a61c271f9c25cc30fab9c060fffb5cbfe7","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.4.3.tgz","fileCount":22,"integrity":"sha512-V/HzGAeNqVqzyKcCjr2KWLCmCOQe1UCbcdAN0pcHoa1smJxctVF1dZvzGkT2zde7gotD7CGwUR/7etC7s5eNBw==","signatures":[{"sig":"MEQCIGWkdYgexUZaptbhZAvIKrb2cPEVN32mOnpPIH/JMtFHAiAE10AIyWuXjrmxHm/w7CxyZUIHO78pPSuZU0de6RdTCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":979941},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"d5d9b4ab49a9a969b70b4e35e9fb49f1a6d3114a","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.10.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.4.3_1770867726371_0.748095522226885","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@accelerated-software-development/caddy-api-client","version":"0.5.1","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"url":"https://asd.host","name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.5.1","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd.host","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"f19e184021737565cbf7fee266e4c1cd5674ab32","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.5.1.tgz","fileCount":22,"integrity":"sha512-PqWaSbziIdMOC6MXE1ITiJX+MOingo2sX2LjmFhGFDoOFkaQI+RMfKrpBhV1Uiy+c/TfhnNZFNu6+qo/sP7PnQ==","signatures":[{"sig":"MEUCIGwfFjrk+EqODPVjcXduSWA7+ZneMmUlU1phc2pvcXtZAiEArbqibVi+Yj4czouS7GM6JVzkR+l6KTdFyHPTypWK7zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":981032},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"3ccbc4b53f2347a9d8b58348c17192e33a11d7dd","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.11.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.5.1_1772460128485_0.37926651566571645","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@accelerated-software-development/caddy-api-client","version":"0.5.2","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"url":"https://asd.host","name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.5.2","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd.host","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"77f04a107b43736b4650d88cb8ce4614dcd3de3d","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.5.2.tgz","fileCount":22,"integrity":"sha512-rM2Zx51KSCyq6tTL3a5o/2kVHa4nkWwcJdzUCoZhLt1JIqphiU6RAx9HMBjRSKw9UFY4AJ0UwRdIB13rvWHsxg==","signatures":[{"sig":"MEUCIDhj76UvdcIzXtsDavaLm5ezDzMox3JzBucShIdEE1JAAiEAn1pZOolJUwcBzdKygzPQN99MQTtbhpVf24aMRQGz9ZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":984038},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"1996c142a87c08ae62d1c472a3b08b0dcd6494f4","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.11.1","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.5.2_1773455349573_0.8587954313147506","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.6.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"url":"https://asd.host","name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.6.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd.host","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"5a28e9e08b7c1423221b2f2bb1fe169ad6a94c9d","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.6.0.tgz","fileCount":22,"integrity":"sha512-jXpwh+B9QfADiUzW6MyA9snbyeXw+W7FLAN9uRT1kUN2ZlvyO2I1FdGiycz1qlvXFcCP5LXuPMXgOEu06Qx6rA==","signatures":[{"sig":"MEYCIQDQKYTqu1JyuRQvpSJjtMel9ogWaFc5aaOs1OCYR+j84gIhAJXE4LBLdbmmMe5/Bs2dDvVnOAy7WG/ciwPsCCa/ljx1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":988293},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"a89aba3ad8a6bf1f05ec5cbbb0b1d69f6a0a0dc0","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.12.1","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.6.0_1775071591692_0.47894198068627625","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.7.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"url":"https://asd.host","name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.7.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd.host","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"d989514cb9adada9eb02103e73b816168934261b","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.7.0.tgz","fileCount":22,"integrity":"sha512-GB6Y+dSBQXJjgFUmQ4H6ntWMVRooQmGq55EsFgjfH3E+WbmOPtR2qDV8wjCQgzPYJe2dCwD6zfpuWdL0DpYxdg==","signatures":[{"sig":"MEQCID7r5K8rXdIKywOT3g8qdo9pqYk0EMIt1TBcsSW3CX8wAiBJuL0COZX3IFm5VK98Vy8Apz/9wENw+LMQ74a5YKSOXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1002839},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"50cf1012541bb6f8a72ed0f3f2bf4d07da3bbe73","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepack":"bun run build","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.14.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.7.0_1778185370818_0.8226035056604035","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@accelerated-software-development/caddy-api-client","version":"0.7.1","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"url":"https://asd.host","name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.7.1","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd.host","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"7552f720f8b7ba845c9303199ec33a0a4cd0e474","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.7.1.tgz","fileCount":22,"integrity":"sha512-1gkyPJENTg7hNWwENXlRAr1q/XDaE0PAbM0DbALGA7lIyZ1p0b/piGaTP9rUcN0Rs3AzdShtPjJOzP7V0pjCtg==","signatures":[{"sig":"MEQCIF1k84xZGtyvYIqtQdP1+utTVvgSZgPu7c0Z4G4771c+AiBoW2zRg/sKfdKuoHBlaU3VlZtwr2/3oeykGwxwwMU4QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1013003},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"f6617c4baa1406e352de2ec7eb5b523a9eaa2b9c","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepack":"bun run build","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.14.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.7.1_1778236134203_0.6686544448182632","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.8.0","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"url":"https://asd.host","name":"ASD Team"},"license":"MIT","_id":"@accelerated-software-development/caddy-api-client@0.8.0","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"homepage":"https://asd.host","bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"dist":{"shasum":"1d0e097c2bd333df7d9127121bc2191fd1295ebe","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.8.0.tgz","fileCount":26,"integrity":"sha512-otZN3+ZEF7N0gVVkRVh8Hbu32xu1RLRyQdrUC+d9q1nWqI5SrFZGzz0iRTUhrzK3TMqh0FNIWpSIunTcLic7og==","signatures":[{"sig":"MEUCIDsEA1nvgxW8vOd5SJcKP5JP7ggyKw+FBEdEJVr8WQlpAiEA1mutkhZjio4bXFFc4kkXnC85vZAwVvvr7wE5ypLlbiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1033755},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"},"./plugins/caddy-dns":{"types":"./dist/plugins/caddy-dns/index.d.ts","import":"./dist/plugins/caddy-dns/index.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"}},"gitHead":"e7a797a6cbdc5b72f0dcfcbd19a7f87cf7e87842","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings=0","test":"vitest run src/__tests__","build":"tsup","format":"prettier --write .","prepack":"bun run build","prepare":"husky","release":"standard-version","sync:all":"npm run sync:caddy && npm run sync:plugins","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","typecheck":"tsc --noEmit","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","sync:caddy":"git -C local/caddy pull && npm run generate:types","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:watch":"vitest watch","release:dry":"standard-version --dry-run","verify:pack":"npm pack --dry-run","format:check":"prettier --check .","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","generate:types":"npx tsx scripts/generate-caddy-types.ts","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","verify:publish":"npm publish --dry-run","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","test:auth-types":"playwright test src/__tests__/playwright/","test:playwright":"playwright test","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","generate:extension":"npx tsx scripts/extract-metadata.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"repository":{"url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git","type":"git"},"_npmVersion":"11.19.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@peculiar/x509":"^1.14.2"},"documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","zod":"^3.22.4","tsup":"^8.0.1","husky":"^9.1.6","eslint":"^9.32.0","vitest":"^1.0.0","globals":"^15.12.0","typedoc":"^0.28.14","bcryptjs":"^3.0.3","prettier":"^3.6.2","ts-to-zod":"^5.1.0","@eslint/js":"^9.32.0","typescript":"^5.3.3","@types/node":"^20.10.0","@playwright/test":"^1.57.0","standard-version":"^9.5.0","typescript-eslint":"^8.0.0","zod-to-json-schema":"^3.25.1","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/caddy-api-client_0.8.0_1786417934723_0.4828304789020741","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@accelerated-software-development/caddy-api-client","version":"0.9.0","description":"TypeScript client for Caddy Admin API with MITMproxy integration","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./caddy":{"types":"./dist/caddy/index.d.ts","import":"./dist/caddy/index.js"},"./mitm":{"types":"./dist/mitm/index.d.ts","import":"./dist/mitm/index.js"},"./caddy-types":{"types":"./dist/caddy-types.d.ts","import":"./dist/caddy-types.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./plugins/caddy-security":{"types":"./dist/plugins/caddy-security/index.d.ts","import":"./dist/plugins/caddy-security/index.js"},"./plugins/caddy-dns":{"types":"./dist/plugins/caddy-dns/index.d.ts","import":"./dist/plugins/caddy-dns/index.js"},"./extension-assets":{"types":"./dist/generated/extension-assets.d.ts","import":"./dist/generated/extension-assets.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run src/__tests__","test:watch":"vitest watch","test:coverage":"bun run test:coverage:unit && bun run test:coverage:integration && echo '\n================================================\nCoverage Reports Summary\n================================================\n' && echo 'Unit Test Coverage:       coverage/unit/index.html' && echo 'Integration Test Coverage: coverage/integration/index.html\n'","test:coverage:unit":"echo '================================================\nRunning Unit Test Coverage\n================================================\n' && vitest run --coverage","test:coverage:integration":"echo '\n================================================\nRunning Integration Tests (bun)\n================================================\n' && INTEGRATION_TEST=true bun test src/__tests__/integration/","test:integration":"INTEGRATION_TEST=true bun test src/__tests__/integration/ --no-coverage","test:playwright":"playwright test","test:auth-types":"playwright test src/__tests__/playwright/","test:oauth":"playwright test src/__tests__/playwright/oauth-flow.spec.ts","test:oauth:enhanced":"playwright test src/__tests__/playwright/oauth-flow-enhanced.spec.ts","docker:oauth:up":"docker compose -f tests/integration/docker-compose.oauth.yml up -d","docker:oauth:down":"docker compose -f tests/integration/docker-compose.oauth.yml down","test:keycloak":"playwright test src/__tests__/playwright/keycloak-oidc.spec.ts","docker:keycloak:up":"docker compose -f tests/integration/docker-compose.keycloak.yml up -d","docker:keycloak:down":"docker compose -f tests/integration/docker-compose.keycloak.yml down","test:ldap":"playwright test src/__tests__/playwright/ldap-identity-store.spec.ts","test:ldap:http":"playwright test src/__tests__/playwright/ldap-http-auth.spec.ts","docker:ldap:up":"docker compose -f tests/integration/docker-compose.ldap.yml up -d","docker:ldap:down":"docker compose -f tests/integration/docker-compose.ldap.yml down","docker:caddy-security-ldap:up":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml up -d --build","docker:caddy-security-ldap:down":"docker compose -f tests/integration/docker-compose.caddy-security-ldap.yml down","test:saml":"playwright test src/__tests__/playwright/saml-flow.spec.ts","docker:saml:up":"docker compose -f tests/integration/docker-compose.saml.yml up -d","docker:saml:down":"docker compose -f tests/integration/docker-compose.saml.yml down","test:authentik":"playwright test src/__tests__/playwright/authentik-advanced.spec.ts","docker:authentik:up":"docker compose -f tests/integration/docker-compose.authentik.yml up -d","docker:authentik:down":"docker compose -f tests/integration/docker-compose.authentik.yml down -v","test:caddy-security":"playwright test src/__tests__/playwright/caddy-security-portal.spec.ts","test:oidc-flow":"playwright test src/__tests__/playwright/caddy-security-oidc-flow.spec.ts","test:auth:security":"playwright test src/__tests__/playwright/auth-security-advanced.spec.ts","test:auth:claims":"playwright test src/__tests__/playwright/auth-claims-injection.spec.ts","docker:caddy-security:up":"docker compose -f tests/integration/docker-compose.caddy-security.yml up -d --build","docker:caddy-security:down":"docker compose -f tests/integration/docker-compose.caddy-security.yml down","typecheck":"tsc --noEmit","lint":"eslint . --max-warnings=0","format":"prettier --write .","format:check":"prettier --check .","docs:build":"typedoc","docs:serve":"typedoc && npx http-server docs/api -o","release":"standard-version","release:minor":"standard-version --release-as minor","release:major":"standard-version --release-as major","release:dry":"standard-version --dry-run","release:first":"standard-version --first-release","prerelease":"bun run build && bun run test && bun run typecheck && bun run lint","verify:pack":"npm pack --dry-run","verify:publish":"npm publish --dry-run","prepare":"husky","prepack":"bun run build","prepublishOnly":"bun run build && bun run test && bun run typecheck && bun run lint","generate:types":"npx tsx scripts/generate-caddy-types.ts","generate:plugin-types":"npx tsx scripts/generate-plugin-types.ts","generate:extension":"npx tsx scripts/extract-metadata.ts","generate:json-schemas":"npx tsx scripts/generate-json-schemas.ts","generate:all":"npm run generate:types && npm run generate:plugin-types && npm run generate:extension && npm run generate:json-schemas","sync:caddy":"git -C local/caddy pull && npm run generate:types","sync:plugins":"git -C local/caddy-security pull && npm run generate:plugin-types","sync:all":"npm run sync:caddy && npm run sync:plugins"},"keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"author":{"name":"ASD Team","url":"https://asd.host"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git"},"bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"homepage":"https://asd.host","documentation":"https://asd-engineering.github.io/asd-caddy-api-client","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"zod":"^3.22.0"},"peerDependenciesMeta":{"bcrypt":{"optional":true}},"devDependencies":{"@eslint/js":"^9.32.0","@playwright/test":"^1.57.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0","ajv":"^8.17.1","bcryptjs":"^3.0.3","eslint":"^9.32.0","globals":"^15.12.0","husky":"^9.1.6","prettier":"^3.6.2","standard-version":"^9.5.0","ts-to-zod":"^5.1.0","tsup":"^8.0.1","typedoc":"^0.28.14","typescript":"^5.3.3","typescript-eslint":"^8.0.0","vitest":"^1.0.0","zod":"^3.22.4","zod-to-json-schema":"^3.25.1"},"engines":{"node":">=18.0.0"},"dependencies":{"@peculiar/x509":"^1.14.2"},"gitHead":"f85362431f1697e8b7174210f6aa5b953cfbb615","_id":"@accelerated-software-development/caddy-api-client@0.9.0","_nodeVersion":"20.20.2","_npmVersion":"11.19.0","dist":{"integrity":"sha512-sgW/gXo7FShYhbfYCHTtwTydmxHzifpB/56VFhy4Va+n7068+A0MDqSOugmLbcjufeRSAB2DVEfSktSI2ZXZHw==","shasum":"42b2bc6f0af88dc064196d92132d871be0222253","tarball":"https://registry.npmjs.org/@accelerated-software-development/caddy-api-client/-/caddy-api-client-0.9.0.tgz","fileCount":26,"unpackedSize":1129412,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accelerated-software-development%2fcaddy-api-client@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDEy3SmOWgEWbGFKds2yK7jy+rY7JjsIspRY1+IyoIdTAiEAhUAI0tL38Ssy97Yp/EiZ2bgi4ZYMas+sYMLSI+YY4uc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:178157aa-3ffd-4ad5-8ce8-322ed27969ac"}},"directories":{},"maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/caddy-api-client_0.9.0_1786480398706_0.47434870150291175"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-05T13:03:16.348Z","modified":"2026-08-11T20:33:19.174Z","0.1.0":"2026-01-05T13:03:16.652Z","0.2.0":"2026-01-08T15:33:13.619Z","0.2.1":"2026-01-08T15:43:12.050Z","0.3.0":"2026-01-11T09:08:37.963Z","0.3.1":"2026-01-11T10:09:41.136Z","0.4.0":"2026-02-09T03:46:25.352Z","0.4.1":"2026-02-09T14:51:16.167Z","0.4.2":"2026-02-11T22:17:56.679Z","0.4.3":"2026-02-12T03:42:06.542Z","0.5.1":"2026-03-02T14:02:08.728Z","0.5.2":"2026-03-14T02:29:09.731Z","0.6.0":"2026-04-01T19:26:31.901Z","0.7.0":"2026-05-07T20:22:51.042Z","0.7.1":"2026-05-08T10:28:54.379Z","0.8.0":"2026-08-11T03:12:14.915Z","0.9.0":"2026-08-11T20:33:18.843Z"},"bugs":{"url":"https://github.com/asd-engineering/asd-caddy-api-client/issues"},"author":{"name":"ASD Team","url":"https://asd.host"},"license":"MIT","homepage":"https://asd.host","keywords":["caddy","reverse-proxy","tls","mitmproxy","api-client","typescript"],"repository":{"type":"git","url":"git+https://github.com/asd-engineering/asd-caddy-api-client.git"},"description":"TypeScript client for Caddy Admin API with MITMproxy integration","maintainers":[{"name":"kelvin.id","email":"contact@kelvin.id"}],"readme":"# @accelerated-software-development/caddy-api-client\n\nTypeScript client for Caddy Admin API with MITMproxy integration.\nMaintained by [asd.host](https://asd.host).\n\nPackage pages:\n\n- npm: https://www.npmjs.com/package/@accelerated-software-development/caddy-api-client\n- Yarn Classic: https://classic.yarnpkg.com/en/package/@accelerated-software-development/caddy-api-client\n\n## Features\n\n- ✅ **Type-safe Caddy API client** - Full TypeScript support with Zod validation\n- ✅ **Route builders** - Composable functions for building Caddy routes\n- ✅ **Domain management** - TLS automation with Let's Encrypt\n- ✅ **Load balancing** - Health checks and multiple upstream support\n- ✅ **MITMweb integration** - Traffic inspection for tunnels\n- ✅ **Minimal dependencies** - Only peer dependency: `zod` for runtime validation\n\n## Caddy Version Compatibility\n\n| npm Package | Caddy   | caddy-security | Notes                                                                                                                    |\n| ----------- | ------- | -------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| 0.9.0       | v2.11.4 | v1.1.64        | Current — security-dense dependency bump, `caddy-dns` DNS provider plugin sources, first public vscode-extension release |\n| 0.6.x–0.8.0 | v2.11.2 | v1.1.59        | First `caddy-dns` plugin (0.8.0)                                                                                         |\n| 0.4.x–0.5.x | v2.10.2 | v1.1.31        | First plugin framework release                                                                                           |\n| 0.3.x       | v2.10.2 | —              | Self-contained type generation                                                                                           |\n| 0.1.x–0.2.x | —       | —              | Used external caddy-json-types                                                                                           |\n\nSee [DEPENDENCIES.md](./DEPENDENCIES.md) for full version details including commit hashes.\n\n## Live Demo\n\nExperience the library in action with our interactive demo showing dynamic MITMproxy traffic inspection via Caddy Admin API.\n\nThe demo showcases:\n\n- **Split-screen view**: Interactive search UI + MITMproxy Web UI\n- **Zero-downtime route switching**: Toggle monitoring without restarts\n- **Library-powered routing**: All route configuration via `caddy-api-client`\n\nRun locally: `docker compose -f demo/docker-compose.yml up -d` → http://localhost:9080/dashboard\n\n## Installation\n\n```bash\nnpm install @accelerated-software-development/caddy-api-client zod\n# or\nyarn add @accelerated-software-development/caddy-api-client zod\n# or\nbun add @accelerated-software-development/caddy-api-client zod\n```\n\n## Quick Start\n\n```typescript\nimport {\n  CaddyClient,\n  buildServiceRoutes,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\n// Create client\nconst client = new CaddyClient({\n  adminUrl: \"http://127.0.0.1:2019\",\n});\n\n// Build routes with type-safe builders\nconst routes = buildServiceRoutes({\n  host: \"api.localhost\",\n  dial: \"127.0.0.1:3000\",\n  securityHeaders: {\n    enableHsts: true,\n    frameOptions: \"DENY\",\n  },\n});\n\n// Add routes to Caddy\nawait client.addRoutes(\"https_server\", routes);\n```\n\n> **⚠️ Important:** Always use our type-safe builder functions instead of constructing raw Caddy JSON objects. Our builders provide:\n>\n> - ✅ Full TypeScript type checking and IDE autocomplete\n> - ✅ Runtime Zod schema validation\n> - ✅ Protection against common configuration errors\n> - ✅ Clear documentation and examples\n>\n> **Raw Caddy JSON is error-prone and breaks easily.** Our builders are tested, validated, and prevent mistakes.\n\n## Usage\n\n### Basic Route Management\n\n```typescript\nimport {\n  CaddyClient,\n  buildServiceRoutes,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst client = new CaddyClient();\n\n// Build host-based route\nconst routes = buildServiceRoutes({\n  host: \"api.localhost\",\n  dial: \"127.0.0.1:3000\",\n  serviceId: \"my-api\",\n});\n\n// Add routes\nfor (const route of routes) {\n  await client.addRoute(\"https_server\", route);\n}\n\n// Get all routes\nconst allRoutes = await client.getRoutes(\"https_server\");\n\n// Remove routes by hostname\nconst removed = await client.removeRoutesByHost(\"old-api.localhost\");\n```\n\n### Path-based Routes\n\n```typescript\nimport { buildServiceRoutes } from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst routes = buildServiceRoutes({\n  path: \"/api\",\n  pathRouteHost: \"example.localhost\",\n  dial: \"127.0.0.1:3000\",\n  stripPrefix: true, // Strip /api before forwarding\n});\n```\n\n### Load Balancing\n\n```typescript\nimport {\n  CaddyClient,\n  buildLoadBalancerRoute,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst client = new CaddyClient();\n\nconst lbRoute = buildLoadBalancerRoute({\n  host: \"api.localhost\",\n  upstreams: [\"127.0.0.1:3000\", \"127.0.0.1:3001\", \"127.0.0.1:3002\"],\n  policy: \"round_robin\", // or \"first\", \"random\", \"least_conn\"\n  healthCheckPath: \"/health\",\n  healthCheckInterval: \"10s\",\n});\n\nawait client.addRoute(\"https_server\", lbRoute);\n```\n\n### Security Headers\n\n```typescript\nimport { buildServiceRoutes } from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst routes = buildServiceRoutes({\n  host: \"secure.localhost\",\n  dial: \"127.0.0.1:3000\",\n  securityHeaders: {\n    enableHsts: true,\n    hstsMaxAge: 31536000, // 1 year\n    frameOptions: \"DENY\",\n    enableCompression: true,\n  },\n});\n```\n\n### Basic Authentication\n\n```typescript\nimport { buildServiceRoutes } from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst routes = buildServiceRoutes({\n  host: \"admin.localhost\",\n  dial: \"127.0.0.1:3000\",\n  basicAuth: {\n    enabled: true,\n    username: \"admin\",\n    passwordHash: \"$2y$10$...\", // bcrypt hash\n    realm: \"Admin Area\",\n  },\n});\n```\n\n### MITMproxy Integration\n\nTransparently inspect HTTP traffic for debugging production services **without modifying client or backend code, and without service restarts.**\n\n#### Quick Start\n\n```bash\n# 1. Start MITMproxy in Docker\ndocker run -d \\\n  -p 8082:8080 \\\n  -p 8081:8081 \\\n  --name mitmproxy \\\n  mitmproxy/mitmproxy:10.4.2 \\\n  mitmweb \\\n  --mode reverse:http://your-backend:3000 \\\n  --web-host 0.0.0.0 \\\n  --listen-host 0.0.0.0 \\\n  --no-web-open-browser \\\n  --set keep_host_header=true\n```\n\n```typescript\n// 2. Enable traffic inspection (zero downtime)\nimport {\n  CaddyClient,\n  buildMitmproxyRoute,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst client = new CaddyClient({ adminUrl: \"http://localhost:2019\" });\n\nconst route = buildMitmproxyRoute({\n  host: \"api.example.com\",\n  mitmproxyHost: \"localhost\",\n  mitmproxyPort: 8082,\n});\n\nawait client.addRoute(\"https_server\", route, \"api_debug\");\n\n// 3. View captured traffic at http://localhost:8081\n\n// 4. Disable when done (zero downtime)\nawait client.removeRouteById(\"https_server\", \"api_debug\");\n```\n\n#### Hot-Swapping Between Direct and Proxied Routing\n\nUse `buildMitmproxyRoutePair()` to easily toggle traffic inspection on/off:\n\n```typescript\nimport {\n  CaddyClient,\n  buildMitmproxyRoutePair,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst client = new CaddyClient({ adminUrl: \"http://localhost:2019\" });\n\n// Create both direct and proxied routes\nconst routes = buildMitmproxyRoutePair({\n  host: \"api.example.com\",\n  backendHost: \"api-service\",\n  backendPort: 3000,\n  mitmproxyHost: \"localhost\",\n  mitmproxyPort: 8082,\n  routeId: \"api_route\",\n});\n\n// Start with direct routing (no inspection)\nawait client.addRoute(\"https_server\", routes.direct, routes.direct[\"@id\"]);\n\n// Hot-swap to enable inspection (zero downtime)\nawait client.removeRouteById(\"https_server\", routes.direct[\"@id\"]);\nawait client.addRoute(\"https_server\", routes.proxied, routes.proxied[\"@id\"]);\n\n// Hot-swap back to disable inspection\nawait client.removeRouteById(\"https_server\", routes.proxied[\"@id\"]);\nawait client.addRoute(\"https_server\", routes.direct, routes.direct[\"@id\"]);\n```\n\n#### Load Balancing with MITMproxy\n\nRoute some traffic through MITMproxy while keeping the rest direct:\n\n```typescript\nimport {\n  CaddyClient,\n  buildLoadBalancerRoute,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\nconst client = new CaddyClient();\nconst lbRoute = buildLoadBalancerRoute({\n  host: \"api.localhost\",\n  upstreams: [\n    \"localhost:8082\", // MITMproxy (captures traffic)\n    \"localhost:3000\", // Direct to backend\n  ],\n  policy: \"round_robin\",\n});\n\nawait client.addRoute(\"https_server\", lbRoute);\n```\n\n#### Docker Compose Setup\n\n```yaml\nservices:\n  mitmproxy:\n    image: mitmproxy/mitmproxy:10.4.2\n    ports:\n      - \"8082:8080\" # Proxy port\n      - \"8081:8081\" # Web UI\n    command: >\n      mitmweb\n      --mode reverse:http://backend:3000\n      --web-host 0.0.0.0\n      --web-port 8081\n      --listen-host 0.0.0.0\n      --listen-port 8080\n      --no-web-open-browser\n      --set keep_host_header=true\n    restart: unless-stopped\n\n  backend:\n    image: your-backend-image\n    ports:\n      - \"3000:3000\"\n```\n\n**Features:**\n\n- ✅ Zero client/backend code changes\n- ✅ Zero service restarts required\n- ✅ Hot-swappable at runtime\n- ✅ Complete request/response inspection\n- ✅ Web UI for viewing captured traffic\n- ✅ Production-safe (tested with concurrent requests)\n\n**Troubleshooting:** See the [MITMproxy Troubleshooting Guide](https://github.com/asd-engineering/asd-caddy-api-client/blob/main/docs/mitmproxy-troubleshooting.md) for common issues and solutions.\n\n### Domain Management\n\n```typescript\nimport {\n  addDomainWithAutoTls,\n  deleteDomain,\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\n// Add domain with automatic TLS (Let's Encrypt)\nconst domain = await addDomainWithAutoTls({\n  domain: \"example.com\",\n  target: \"127.0.0.1\",\n  targetPort: 3000,\n  enableHsts: true,\n  redirectMode: \"permanent\",\n});\n\n// Delete domain\nawait deleteDomain({ domain: \"example.com\" });\n```\n\n## API Reference\n\n### CaddyClient\n\n```typescript\nclass CaddyClient {\n  constructor(options?: CaddyClientOptions);\n\n  // Configuration\n  getConfig(): Promise<unknown>;\n  reload(): Promise<void>;\n  stop(): Promise<void>; // Gracefully stop Caddy server\n  adapt(config: string, adapter?: string): Promise<unknown>; // Convert Caddyfile to JSON\n\n  // Routes\n  getRoutes(server: string): Promise<CaddyRoute[]>;\n  addRoute(server: string, route: CaddyRoute): Promise<boolean>;\n  addRoutes(server: string, routes: CaddyRoute[]): Promise<{ added: number; skipped: number }>;\n  patchRoutes(server: string, routes: CaddyRoute[]): Promise<void>;\n  insertRoute(\n    server: string,\n    route: CaddyRoute,\n    position?: \"beginning\" | \"end\" | \"after-health-checks\"\n  ): Promise<void>;\n  replaceRouteById(server: string, id: string, newRoute: CaddyRoute): Promise<boolean>;\n  removeRouteById(server: string, id: string): Promise<boolean>;\n  removeRoutesByHost(hostname: string, server?: string): Promise<number>;\n\n  // Servers\n  getServers(): Promise<unknown>;\n  getServerConfig(server: string): Promise<Record<string, unknown>>;\n  patchServer(serverConfig: Record<string, unknown>): Promise<void>;\n\n  // Upstreams (reverse proxy status)\n  getUpstreams(): Promise<UpstreamStatus[]>; // Get health/status of upstream servers\n\n  // Version\n  getVersion(): Promise<unknown>;\n}\n```\n\n### Route Builders\n\n```typescript\n// Service routes (host + path based)\nbuildServiceRoutes(options: ServiceRouteOptions): CaddyRoute[];\n\n// Individual route types\nbuildHealthCheckRoute(options: HealthCheckRouteOptions): CaddyRoute;\nbuildHostRoute(options: HostRouteOptions): CaddyRoute;\nbuildPathRoute(options: PathRouteOptions): CaddyRoute;\nbuildLoadBalancerRoute(options: LoadBalancerRouteOptions): CaddyRoute;\n\n// New handler routes (v0.3.0)\nbuildFileServerRoute(options: FileServerRouteOptions): CaddyRoute;\nbuildTemplatesRoute(options: TemplatesRouteOptions): CaddyRoute;\nbuildErrorRoute(options: ErrorRouteOptions): CaddyRoute;\n\n// MITMproxy integration\nbuildMitmproxyRoute(options: MitmproxyRouteOptions): CaddyRoute;\nbuildMitmproxyRoutePair(options: MitmproxyRoutePairOptions): { direct: CaddyRoute; proxied: CaddyRoute };\n\n// Handlers\nbuildReverseProxyHandler(dial: DialAddress): CaddyRouteHandler;\nbuildSecurityHeadersHandler(headers: SecurityHeaders): CaddyRouteHandler;\nbuildBasicAuthHandler(auth: BasicAuthOptions): CaddyRouteHandler;\nbuildRewriteHandler(prefix: string): CaddyRouteHandler;\nbuildCompressionHandler(options?: CompressionOptions): CaddyRouteHandler;\nbuildIngressTagHeadersHandler(tag: string): CaddyRouteHandler;\nbuildIframeHeadersHandler(allowedOrigin?: string): CaddyRouteHandler;\n\n// New handlers (v0.3.0)\nbuildRequestBodyHandler(options: RequestBodyHandlerOptions): CaddyRouteHandler;\nbuildVarsHandler(options: VarsHandlerOptions): CaddyRouteHandler;\nbuildMapHandler(options: MapHandlerOptions): CaddyRouteHandler;\nbuildTracingHandler(options?: TracingHandlerOptions): CaddyRouteHandler;\n```\n\n### MITMweb Functions\n\n```typescript\n// Installation & status\nisMitmproxyInstalled(): Promise<boolean>;\ngetMitmproxyVersion(): Promise<string | null>;\nautoInstallMitmproxy(): Promise<boolean>;\n\n// Process management\nstartMitmweb(options?: MitmwebOptions): Promise<{ pid, webUrl, proxyUrl, pidFile }>;\nstopMitmweb(workingDir?: string): Promise<void>;\ngetMitmwebStatus(workingDir?: string): MitmwebStatus;\n```\n\n### Domain Management\n\n```typescript\naddDomainWithAutoTls(options: AddDomainWithAutoTlsOptions): Promise<DomainConfig>;\naddDomainWithTls(options: AddDomainWithTlsOptions): Promise<DomainConfig>;\nupdateDomain(options: UpdateDomainOptions): Promise<DomainConfig>;\ndeleteDomain(options: DeleteDomainOptions): Promise<void>;\ngetDomainConfig(domain: Domain, adminUrl?: string): Promise<DomainConfig | null>;\n```\n\n### Advanced Schemas\n\nZod-validated schemas for advanced Caddy configurations:\n\n```typescript\nimport {\n  // Duration (Go format)\n  CaddyDurationSchema, // \"10s\", \"1m30s\", or nanoseconds\n\n  // Health checks\n  ActiveHealthChecksSchema, // uri, interval, timeout, expect_status, expect_body\n  PassiveHealthChecksSchema, // fail_duration, max_fails, unhealthy_status\n  HealthChecksSchema, // Combined active + passive\n\n  // Load balancing\n  LoadBalancingSchema, // selection_policy, retries, try_duration\n  UpstreamSchema, // dial, max_requests\n\n  // Route matching\n  ExtendedRouteMatcherSchema, // client_ip, remote_ip, path_regexp, expression, not\n\n  // Handler\n  ReverseProxyHandlerSchema, // Full reverse proxy with health checks + load balancing\n} from \"@accelerated-software-development/caddy-api-client\";\n```\n\n### Handler Types (v0.3.0)\n\nFull TypeScript support for all 20 Caddy HTTP handlers with Zod validation:\n\n```typescript\nimport {\n  // File serving\n  FileServerHandlerSchema, // Static files with browse, precompressed\n  TemplatesHandlerSchema, // Server-side template rendering\n\n  // Request manipulation\n  RewriteHandlerSchema, // URI rewriting\n  RequestBodyHandlerSchema, // Body size limits\n  VarsHandlerSchema, // Set request variables\n  MapHandlerSchema, // Variable mapping\n\n  // Response handling\n  StaticResponseHandlerSchema, // Return static content\n  HeadersHandlerSchema, // Modify headers\n  EncodeHandlerSchema, // Compression (gzip, zstd, br)\n  ErrorHandlerSchema, // Trigger error handling\n\n  // Proxy & routing\n  ReverseProxyHandlerSchema, // Proxy to upstreams\n  SubrouteHandlerSchema, // Nested routes\n  InvokeHandlerSchema, // Call named routes\n\n  // Interception\n  InterceptHandlerSchema, // Response interception\n  CopyResponseHandlerSchema, // Copy subrequest response\n  CopyResponseHeadersHandlerSchema, // Copy headers\n\n  // Utilities\n  AuthenticationHandlerSchema, // HTTP basic auth\n  PushHandlerSchema, // HTTP/2 server push\n  TracingHandlerSchema, // Distributed tracing\n  LogAppendHandlerSchema, // Custom log fields\n} from \"@accelerated-software-development/caddy-api-client\";\n```\n\n**Route builders for common patterns:**\n\n```typescript\nimport {\n  buildFileServerRoute, // Serve static files\n  buildTemplatesRoute, // Template processing\n  buildErrorRoute, // Error responses\n  buildRequestBodyHandler, // Body limits\n  buildVarsHandler, // Set variables\n  buildMapHandler, // Variable mapping\n  buildTracingHandler, // Tracing spans\n} from \"@accelerated-software-development/caddy-api-client/caddy\";\n\n// Example: Serve static files with browsing\nconst fileRoute = buildFileServerRoute({\n  path: \"/static/*\",\n  root: \"/var/www/static\",\n  browse: true,\n  hidePatterns: [\".git\", \".env\"],\n  precompressed: true,\n});\n\n// Example: Template rendering\nconst templateRoute = buildTemplatesRoute({\n  path: \"/*.html\",\n  fileRoot: \"/var/www/templates\",\n  mimeTypes: [\"text/html\"],\n});\n\n// Example: Variable mapping for routing\nconst mapHandler = buildMapHandler({\n  source: \"{http.request.uri.path}\",\n  destinations: [\"{backend}\"],\n  mappings: [\n    { input: \"/api/*\", outputs: [\"api-server\"] },\n    { input: \"/admin/*\", outputs: [\"admin-server\"] },\n  ],\n  defaults: [\"default-server\"],\n});\n```\n\n### Extended Caddy Types\n\nFor advanced configurations beyond our Zod-validated builders, we re-export comprehensive type definitions from [caddy-json-types](https://github.com/CafuChino/caddy-json-types):\n\n```typescript\nimport type {\n  IConfig,\n  IModulesCaddyhttpRoute,\n  IModulesCaddyhttpReverseproxyHandler,\n  IModulesCaddytlsConnectionPolicy,\n} from \"@accelerated-software-development/caddy-api-client/caddy-types\";\n```\n\n**Includes 591 types covering:**\n\n- Full Caddy JSON configuration structure\n- 50+ DNS providers for ACME challenges\n- Layer 4 (TCP/UDP) proxy configuration\n- PKI/CA management types\n- Storage backends (Redis, S3, DynamoDB, etc.)\n- All HTTP handlers, matchers, and encoders\n\n## Error Handling\n\nThe library provides custom error classes:\n\n```typescript\nimport {\n  CaddyApiError,\n  ValidationError,\n  NetworkError,\n  TimeoutError,\n  DomainNotFoundError,\n  MitmproxyNotInstalledError,\n} from \"@accelerated-software-development/caddy-api-client\";\n\ntry {\n  await client.addRoute(\"https_server\", route);\n} catch (error) {\n  if (error instanceof ValidationError) {\n    console.error(\"Invalid route configuration:\", error.errors);\n  } else if (error instanceof CaddyApiError) {\n    console.error(`Caddy API error (${error.statusCode}):`, error.responseBody);\n  } else if (error instanceof NetworkError) {\n    console.error(\"Network error:\", error.cause);\n  } else if (error instanceof TimeoutError) {\n    console.error(`Request timed out after ${error.timeoutMs}ms`);\n  }\n}\n```\n\n## Examples\n\n### Tested Examples (Always Current)\n\nOur **integration tests** serve as comprehensive, tested examples that are verified in CI:\n\n- **[caddy-mitmproxy-flow.integration.test.ts](./src/__tests__/integration/caddy-mitmproxy-flow.integration.test.ts)** - Complete MITMproxy integration patterns\n- **[asd-scenarios.integration.test.ts](./src/__tests__/integration/asd-scenarios.integration.test.ts)** - Production routing scenarios (load balancing, multi-host, path-based)\n- **[critical-modules.integration.test.ts](./src/__tests__/integration/critical-modules.integration.test.ts)** - All route builders, domain management, TLS\n\n**Run examples locally:**\n\n```bash\n# Start services\ndocker compose -f docker-compose.test.yml up -d\n\n# Run all integration tests (86+ examples)\nINTEGRATION_TEST=true bun test src/__tests__/integration/\n\n# Run specific example file\nINTEGRATION_TEST=true bun test src/__tests__/integration/caddy-mitmproxy-flow.integration.test.ts\n```\n\n### Standalone Examples\n\nSee the [`examples/`](./examples/) directory for standalone examples (require published package):\n\n- [`basic-usage.ts`](./examples/basic-usage.ts) - Basic route management\n- [`load-balancer.ts`](./examples/load-balancer.ts) - Load balancing with health checks\n- [`mitmproxy-integration.ts`](./examples/mitmproxy-integration.ts) - Traffic inspection with MITMproxy\n\n## API Documentation\n\n📚 **[View Full API Documentation](https://asd-engineering.github.io/asd-caddy-api-client/)** ← Auto-generated from source code\n\nFull API documentation is generated using TypeDoc and hosted on GitHub Pages. It includes detailed information for all exported functions, classes, and types with examples.\n\n**Generate locally:**\n\n```bash\nbun run docs:build      # Generate docs\nbun run docs:serve      # Generate and open in browser\n```\n\n## Development\n\n```bash\n# Install dependencies\nbun install\n\n# Build\nbun run build\n\n# Test\nbun run test\n\n# Type check\nbun run typecheck\n\n# Lint\nbun run lint\n\n# Format\nbun run format\n```\n\n## Contributing\n\nContributions are welcome! Please [open an issue](https://github.com/asd-engineering/asd-caddy-api-client/issues) or submit a pull request if you have any improvements or fixes.\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b my-feature-branch`)\n3. Make your changes\n4. Commit your changes (`git commit -am 'Add new feature'`)\n5. Push to the branch (`git push origin my-feature-branch`)\n6. Create a new Pull Request\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Acknowledgements\n\nThis project is not affiliated with or endorsed by the Caddy project. It is an independent project created to improve the developer experience when working with Caddy JSON configurations in TypeScript.\n\nFor more information on Caddy and its configuration options, please visit the [official Caddy documentation](https://caddyserver.com/docs/).\n","readmeFilename":"README.md"}