{"_id":"@odla-ai/chapter","_rev":"110-8a4a3a8b03b796002567e759dbd4d620","name":"@odla-ai/chapter","dist-tags":{"latest":"0.56.1"},"versions":{"0.0.1":{"name":"@odla-ai/chapter","version":"0.0.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.0.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d1679fcbb4f2f49715d6a0f133392625ddfc320c","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.0.1.tgz","fileCount":17,"integrity":"sha512-XU3U491G6TkMw8UTIA2SvnzgoQ32H2ZUSZpMoRXycl+ahGuNCk1mF9r0NR7fGpud+sM89iPTpqM9vTym5fkrYQ==","signatures":[{"sig":"MEUCIC7KaaeKyngGgwoBAid/q4uMmBM4LQJDiv0IRzM/RJ0iAiEAr+qpymG+vkX9v77YkGw9qg/ExOZzcGwDxz2L/tDZX+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170007},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"e3dc525aee7874f9781514cdd692b984f74cb25b","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites — one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email, with a themeable web","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"*"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/o11y":"*","@odla-ai/email":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <0.7.0","@odla-ai/ui":">=0.7.0 <0.9.0","@odla-ai/o11y":">=2.0.0 <3.0.0","@odla-ai/email":">=0.3.0 <0.4.0","@odla-ai/calendar":">=0.2.0 <0.3.0","@odla-ai/auth-clerk":">=0.2.0 <0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/o11y":{"optional":true},"@odla-ai/email":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.0.1_1784599099270_0.4584606897204526","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@odla-ai/chapter","version":"0.0.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.0.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0b6b4b4fa0984a93d69dc394afed4c78198af6ed","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.0.2.tgz","fileCount":17,"integrity":"sha512-GiAbfxjuuootLDWYDZLOu2TJMdhdVtAwAc4N102rWyRBRe1Ur3L1p5jgsSfVqjzXtgDpbkoPvx8PeQj3X6Uo2A==","signatures":[{"sig":"MEYCIQCDRrHCbcg30ltbdceDvQtieQRMBMdfyaFORlFjiKTByAIhAIEpSWnzG1doyhlVoIxXmRXNF5ypibXB8x6EcXRfSTOq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171046},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"e4dade9dc527044f7644a4d97575a28b44b359fe","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites — one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"*"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.0.2_1784609416218_0.9391420464027178","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@odla-ai/chapter","version":"0.3.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.3.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b0bc745e818e021f6bc1fae86a8f39fa9709d3dd","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.3.0.tgz","fileCount":17,"integrity":"sha512-io715/4Gslj8bcaLjlnwnmVW4+et26A4DwjUBdhxUtWGBJUqNENMCiq1Uj79j3NzS1LKQ1vDPgt925W38Ecf5w==","signatures":[{"sig":"MEQCIGWr+cWfml9WO1pgJFYa7Mqpp12N2pD026aE8QM/pKuaAiBAn+e9D/CP39SEaQd8A9zKTIXizJ+D09p4dB+RHgMxrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367072},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"40ea914ee512e5afdcbda645875df944948a4e2f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites — one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"*"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.3.0_1784660335308_0.7080430988563622","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@odla-ai/chapter","version":"0.4.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.4.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b03be1ac6d548148f48d685e764addbf047b59da","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.4.0.tgz","fileCount":17,"integrity":"sha512-UPGOluTxaEs0Y8mrK/lRWPX9oxSgBYJi1yfwT653tunDq1fc6I+bjaD+ZJNV7DuUnP+3VQoaPXrEsQ5yLSO27Q==","signatures":[{"sig":"MEQCIHEewTazzk6fQzU1VNXXYScdmzlkQGilvlf4ErJ+unJ7AiB8JwWcnJF/pcd6GJ/eBQPoiyJBdentiElgFqzxgCvqmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711942},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"46990bf8d7ee535e6d178d325b7b712d560862f5","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites — one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"*"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.4.0_1784669814002_0.9173139330041968","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@odla-ai/chapter","version":"0.5.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.5.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"eb6e232fa52e966dccd7832c49e7883c60cd2d16","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.5.0.tgz","fileCount":17,"integrity":"sha512-WwxEFJz+thEMe7Y0N2Pb3qwuM5U9v8M00yWreWdZD27JncAGF8/JbzdU1/Qh/vxZubPGF1GXCU+mtpVfa54Q3A==","signatures":[{"sig":"MEUCICr/eUpPPdQTcCa2fkOdx2bExDcH+VUf9jeGSul9J4P3AiEA4lMS1vdeNo4xfvcQkY/QNU6b3sHLv+8h1c9+jDwQt7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":733622},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"8898e20769940cbaa8f100c5f32c0ec7ce6bba0a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites — one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"*"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.5.0_1784672919497_0.05958386509956903","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@odla-ai/chapter","version":"0.7.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.7.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"ab0dbcf848abfd2093bdf3fc430b5426f8a41cee","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.7.0.tgz","fileCount":17,"integrity":"sha512-RCLIvyX29ebS9xs20fHrEW7SpPk2KSVJaY/fcmiMokQPxd74tM6o12IOscvQpOZdG5egJsmn1t818NJ/yVGtpg==","signatures":[{"sig":"MEQCIBmm6G98Z4XK64/mSEMFwaMNVGn9gPu/Esvha7UpbFxEAiA0Y7heKdOWYciZK7w8CFkHvJb+6GsxYWiLnkdXj8Yv8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":903416},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"22afa52672d391fdcfaedbf9d54079925f40d521","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites — one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"*"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.7.0_1784679734698_0.21996541344081488","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@odla-ai/chapter","version":"0.8.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.8.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0f514972b53032997083a9ffd1a13fd2d451fee4","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.8.0.tgz","fileCount":17,"integrity":"sha512-aq07fAF+sj+KQ8+uNgk+BMt0pmIdoWxWHYfTR5MAVFplMA8MZzkU4cBVvXr7r5lnc1d1TSeNwO5hNnHtXMVcaA==","signatures":[{"sig":"MEQCIF0h5+8NHTNpkCsLEpygsfCRorCYKmsy3R3Sf43U6jb1AiBuGpRrUvBpz7eNl0oAuJPwwOGKYw2Uy/gEDhGfmeDulg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":923347},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./package.json":"./package.json"},"gitHead":"6c2f10fd27d3cf98d2a7dd7bfce36c0dbccbcc1d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.8.0_1784693307015_0.0393504562201199","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@odla-ai/chapter","version":"0.9.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.9.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b803051d424c11f69a30b663fc7b71ff4d90d06e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.9.0.tgz","fileCount":27,"integrity":"sha512-dvzjou8HZZPTf8M8CIuQbOtut0U41AC0GxftpmkxH5lVc2EeApE2YS5cYNNw94Gt89iu+r4LyvkteooA5RwwCw==","signatures":[{"sig":"MEYCIQC0SoLkZ9ta4sfzQaASMEKujC4te6iDDwZQMxLCx456WwIhAOjnRpc2k1UYlhKiFkkiT3qSYeUOiJywuXzXi2mMWc1w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":934522},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"052de4c27cab37fa05ff7788e4e105a3e5944c23","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.9.0_1784743309822_0.44001287732183614","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@odla-ai/chapter","version":"0.10.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.10.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b29ce93cc17943bcf8f88e7fb652b83552494699","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.10.0.tgz","fileCount":27,"integrity":"sha512-6nx2xQs0SSjuiLJUaNmktN8Jy5X4XxXJHbh29Yfl+IHN3ArtuhmaC5w39UL8GBw+aDgROQUwuDSiWPfOot9pTw==","signatures":[{"sig":"MEQCIG8IgIlgREPDsn40qCvn9ibkyiBTTOkTSCDfzFyTJoBPAiBi91CKm6eoZ6bqHe3ljAQ+45N/RBw4/Un7iolsmVLvVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":979747},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"1dbb5318d38adafe02d508c34beb0db5f97b883d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.10.0_1784753739891_0.1940612406045259","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@odla-ai/chapter","version":"0.10.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.10.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"22e7b58c4005663b1789f362b547bf6377d113fb","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.10.1.tgz","fileCount":27,"integrity":"sha512-+7lCsFq4eR+BpMieY9K4fE+4CJMHHJqaJ4igc2oOj5fvNlFh2+cBkuqfFToSg2EDf38+PPH08mRsO7UMXoZCaQ==","signatures":[{"sig":"MEUCIQCEPxnSSQfFIaSRiziQUzjZyAyck7yn2x4nIRGBzXmSBQIgDZjcwRbkksQYPVIWcuTzkC/VBlIXG6KWMjH/NIwGAp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":993965},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"c2c2f67c27bebcf28d3c3b1eb32bdb2e77673d90","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.10.1_1784761282800_0.9455166359096474","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@odla-ai/chapter","version":"0.11.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.11.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"dc37e786d24e6ebafaeb755325cf7472e07643da","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.11.0.tgz","fileCount":27,"integrity":"sha512-ftg19g5lP8ojWeabPuTdkK5Nxk0rIwXjn3XdTvfZqnWU96h9WTe/AO9DhRPysggQKnpfRu3P56RM4J9MxaRmHQ==","signatures":[{"sig":"MEQCIBArFDBgEOBjxKVN1DBWjMPhdW5HN77Wctn9FvwhSqDtAiAkoGj6V8DdRNbh5Uem73nzltwQJWEVMrlXLKCJecY2DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004501},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"4dd107cdb1f9b94f8856262e86b017c03c62ba37","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.11.0_1784763592881_0.9234144662590031","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@odla-ai/chapter","version":"0.12.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.12.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"85a54b8070c32ee0daacbe3b18aa47092f8e520d","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.12.0.tgz","fileCount":27,"integrity":"sha512-HjNz8ibRG+LnSfisYVxd5WvJqqIrityzdMQMvBVJc1WR4QmucDRPX5ZUgkzZzPxj/D9XY0mN7dSvOBYQcmQpyg==","signatures":[{"sig":"MEYCIQDTSwf6Q2jEmNBzvIlxX0BpxtwZPcskG07M3siGubUQKwIhAK//jJHTlVxAnbN+Y7I1vWGhZ3AfVGE7Sy62uhdiOD91","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1037858},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"68c24a9b0c6e0b20a5885c07369eec1fe20740d0","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.12.0_1784767615995_0.49215052445353424","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@odla-ai/chapter","version":"0.13.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.13.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"6415ef35e4563495d9f99a7951b4c54db39d2944","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.13.0.tgz","fileCount":27,"integrity":"sha512-NbkQOtwJlpkZgJQpWQ2H4OwdQK0WC/KKPiRqgHBFWExu36/REtL40tXRF+qsmHx5Dr/WMEHhUSECOSPwNPS7+g==","signatures":[{"sig":"MEQCIAnzCUac2g9L8ErPpVIT8cuQY1oD5jOZPd5RvvC1CyyPAiBqjx/2aaRM0sVv8zWKeWTxOfpatsups9SsGIdQqLstdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1059219},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"5064e309462c67c0edf82d273fd59c4b5cff43c6","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.13.0_1784781413746_0.5655543203684974","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@odla-ai/chapter","version":"0.14.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.14.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"5be1425a2ebfd966d9fbab9158dc717cf5516811","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.14.0.tgz","fileCount":27,"integrity":"sha512-PY/J/64tvXFzjPycSvseUczyzDttgegvLfZjQHFmEETGnIw5lzvOW4VMpqkaMrYRmCFNws4H1ZzQRDLQODjyDA==","signatures":[{"sig":"MEQCICBGY4cnSd98fAW2jkKLLjNX1ty+nUPH1uxiL71bXy1pAiACRovA7pipU7N1Ub4FFSCv1KH6UygoTNGMX/RTZvOCFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1084330},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"36a2dc0135a3552cd48ded5d7281a9e52851d5ed","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.14.0_1784783159472_0.9515918658497906","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@odla-ai/chapter","version":"0.15.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.15.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"1d46e2bd5d152e4636734700b3fe091367d4d68f","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.15.0.tgz","fileCount":27,"integrity":"sha512-OTschHuvxBqq/hmOMzH/0YRX4jGW0hHdh2VtV8b3uEArg8dp3BXsWLUEPS9fCP9yjcMEEcLyUeAEQJrX+8bLJw==","signatures":[{"sig":"MEYCIQD+zhfJGG2MS+GsyV2tWWvOjEh58btd0Ctma+MCSHYi3AIhAMjuV7/SfeKzAA1PWbps7P6qSIv4F8fSzfzQNTqfW5qL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1089697},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"e0624c8d79ce02b5d97d73e6a19f52061b1b4d8b","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.15.0_1784817232833_0.16759136719566836","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@odla-ai/chapter","version":"0.15.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.15.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"aed7221e2a844f1b255e3b8caeb7a13b96f234ec","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.15.1.tgz","fileCount":27,"integrity":"sha512-z66TXxaRneryBUJINFM+JjC8+UO9sol8QjbKwLWaAqnRqK01uMWpJoBrZDD/EWWJo6mzj5KxiEJvJ34sxR393A==","signatures":[{"sig":"MEYCIQDUBjCB3kU/7FKHuoBT3aHOOb5oeFXZIc0zJ1E5h5nzDwIhAOptFNCfVfM5Mr6Z1UEq4Aj2H7Atj6B1LdmSANO/YguG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1090741},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"a29bfaefec5f526207fb4bf34fa8c5a84ea0d5a0","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.15.1_1784820994213_0.011341680489494355","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@odla-ai/chapter","version":"0.16.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.16.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"793cc5e0dafe996c3a891ba1ab7cad253e8d607e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.16.0.tgz","fileCount":27,"integrity":"sha512-t0uVZh1VL5ZGM8i0XXsVm57BEPYVlBbcsiK3DIDVkvJiJkdHRpnpYT8A974B+5R8Zc9qU4pRqb/vfkpwJMxdNQ==","signatures":[{"sig":"MEYCIQCCUOqll9qZrw52EAQYTC9PzeBB/xDfEyhIs0QAQVjOJwIhANNckycO7NtwCBIxxVD8PpaY7mrbFrRDXQL1HI6rhvFc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1404714},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"781dfa25c1e043a198a8b03e8dad5424cb6d817a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.16.0_1784833138573_0.2558680142230625","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@odla-ai/chapter","version":"0.17.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.17.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"55a22a2867f42b06727d9a101032d627a9ffbe46","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.17.0.tgz","fileCount":27,"integrity":"sha512-Yd0/UF0s3sHDN6VaCIv0OUMPQK0ZLArcjeaFR3FdgA3+dB0bp4mexPzXk2Xmjt980NRd3TTKZ/XNr3X03vZgcg==","signatures":[{"sig":"MEQCIHqK9BYJrDl8b6DoZw13tFpVT/SWOIeR9LUWhf5djBKzAiAJLPAivDswhP9aUiQ2jM8odIbR+xDTQt2jOtC9J03eGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1461826},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"b7342e0fb5f4933f7f8b6e5a46d68d42a2d99b5e","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.17.0_1784834448649_0.8119472314571645","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@odla-ai/chapter","version":"0.18.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.18.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b53898f8172483918ffe224de2cbb7bb17276541","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.18.0.tgz","fileCount":27,"integrity":"sha512-JGA/4Tvgu1+R5JfIa1qqeIDAx88B9d0m6HfyIoXVeyElz0UOfViG6sGsUzot0HP4rqDgowBraNWeef4bpjVzZg==","signatures":[{"sig":"MEUCICVyNxrMy7IIXHQCEZ0qtSqtBo8RmWH6KRPO/VRJUMWXAiEAo2xTyYM3nhYUOPK3sIBicrwpB0oI8wwAwmn30Wf3zBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1489390},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"fff1048d9c472bc24aa0aa041bedce6af5619297","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.18.0_1784842985712_0.4910546858948499","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@odla-ai/chapter","version":"0.19.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.19.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"a25f75525b9b70780de71ad4ad11c6f13db05d20","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.19.0.tgz","fileCount":27,"integrity":"sha512-QBdofH63sfQiZxIXCpKgO6bxqu5rg8CP96Hm+iYH9AhZXMo71QuPA460IDn2lO0c1R2uBq2Pt6FCrS8BSg5VSQ==","signatures":[{"sig":"MEYCIQDE9n/cooCxviiodNEtuI3vM9f8zSWo52UAQQD4cnozkAIhAOnCLhN1XeFRO2TZv0R33koJx7lBglr2PojcFz24rgDZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1502295},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"b48afe578c84af3afeeabe80bf1ac33d5a740bdd","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A foundation for membership sites: one config (defineChapter) stands up a full member site (join, Stripe membership, Google booking, member area, admin, CRM) or an admin-only hub, on odla-db + Clerk + @odla-ai/crm + calendar + email.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.19.0_1784847879429_0.9469108024642998","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@odla-ai/chapter","version":"0.20.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.20.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"a834748597f1a6e94e7d17b6f673aaa297dcf8d4","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.20.0.tgz","fileCount":30,"integrity":"sha512-k9v6fxN88dtrLvFEIeOP088UoPqM/wirLcjX2cyFMAXngw3VPlW1RbO4+CHHH6V5LUq0a6JH958BNprxOaGC4w==","signatures":[{"sig":"MEYCIQDsycRbXw4iDrbltDcQ8TeF+lKzcVYMozpudblpkl34hgIhAKGYOhSHIXYR7M3blfoZTIwsw9/4TWeQS1zIs1BhTTZj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1657748},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"6b4c4686222bb1084d9b8ff0af7e0c9973870c61","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.20.0_1784852481582_0.979055632660313","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@odla-ai/chapter","version":"0.20.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.20.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"8935041521c728fb454349b0184af4bea8376943","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.20.1.tgz","fileCount":30,"integrity":"sha512-sb3C48ww4yi5WhEkyEModThbipVsm705kjga0fU0t6Df75WdAurMZdKXsjVF6hUki1GRnST4MdyBmakUetjSuQ==","signatures":[{"sig":"MEQCIBlOpKfWUvvgpIvrfzO/Spf1qoGIVC9W9Lf0HfvN2msEAiBrzVgTcHhIj/sgbfiW9jKzyMKQ3EulTf7fKUF6LRQ61w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1661701},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"80340d300cb91e8b004347b103671550a2a1312f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.20.1_1784855518476_0.6945556751678028","host":"s3://npm-registry-packages-npm-production"}},"0.20.2":{"name":"@odla-ai/chapter","version":"0.20.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.20.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"32ac8b7c7ca719c794e4152d0cc72ff9b8404359","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.20.2.tgz","fileCount":32,"integrity":"sha512-UFll1v6yeYK1LINzn+0xqR5wOuElFgDMFaG+fnVpuRBlL9MI9UsJMMekAr3RhZLDHl/Yo6Av1uAjFq52I4E8kg==","signatures":[{"sig":"MEUCIEcycPfjFGx0XDHRscNCRB8nw5ZMaGaG7XZyGCOci9FhAiEAvlNn4R2M2TkKYhZZbhRevmOdrLT6X5I0jndR0tONw40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1713140},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"6d1148795de9260acbedb036df043182eb132ba5","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.1.3"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.7.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.20.2_1784857423890_0.6825874940870877","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@odla-ai/chapter","version":"0.21.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.21.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"03531a200a900812053acbc00b90cbdf573818da","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.21.0.tgz","fileCount":32,"integrity":"sha512-y43Tsh28xFCoYlk7PJjiWHRMBBo+kRrGj4KWVUJjZZQ4vIpoT51qQ8frsQEkI4UAFN08SNwx89VFDr9ilRHPew==","signatures":[{"sig":"MEUCIGVKqKEn8UCGC5PuzEvYoyitPwQX66/0zUlEFevdNeLoAiEA5A3iZ97H4BuGYgeZhOpHYe/1MHdPkpeWh5FZST0GX/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1803746},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"4bdbc9542c09e028cb1ad37578871a1c82c134ea","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.2.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.11.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.21.0_1784913130925_0.8204837922552475","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@odla-ai/chapter","version":"0.22.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.22.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0eaf79a71664510f0433b7d18670f9b7b1fdf30f","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.22.0.tgz","fileCount":32,"integrity":"sha512-4eIOh3xLtI4SdcHZpjckFdX+krKqqJ2C1AEk9SMyoSb5EbwPd5Pm7jd/BmUgthKBevNB0dIq1edMy/MgmDOsjA==","signatures":[{"sig":"MEYCIQCrroc5Zv7KkhsOK1wonNFlSGkxLy83EZzAA2GsXiIcggIhAJUJfUKTxuCXazjDgdYzLAMTN4/KchTqUIwIFMvX47g2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1839879},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"76ee8389c667aa6cdcc485ed56f9d436ad2e8403","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^19.2.7","vitest":"^4.1.9","react-dom":"^19.2.7","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@types/react":"^19.2.7","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"react":">=18","@odla-ai/db":">=0.6.0 <1.0.0","@odla-ai/ui":">=0.12.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.22.0_1784918586654_0.006315086050459495","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"@odla-ai/chapter","version":"0.22.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.22.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"30dc6bbd1f67cd229d1c8b5baa503d3075ffd496","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.22.1.tgz","fileCount":32,"integrity":"sha512-gxV4Y9E5edYUVEhO9KubQP7viaIDDaCREiI1Rzs/UXmKAy8YpFRMHeQMW+zWUieiI6dw7Cth7VdQmwrp9dZWNw==","signatures":[{"sig":"MEYCIQCBIYgvmsx32KwK+AL+OQdHOIk1rGFp8lJztLg5EEztpwIhAP2wtWplto6Sr5OND52CXrjMZBdHZCuitKjMy6tYkuRj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1840277},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"27a50dfb5b18c4502cf51978e61f1dd4915fec90","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.22.1_1784927341217_0.026383325062147023","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@odla-ai/chapter","version":"0.23.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.23.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"760c0f35d9d2d86828606810d298297437441b02","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.23.0.tgz","fileCount":32,"integrity":"sha512-G1Ci0ouOqH1FDY4iVqCvTlumP/5bD5Wt0U2WVp2sGwFwOiOxj312bqL3cpnnSz/uUgPqPaghVpFhq4H0sxuN2w==","signatures":[{"sig":"MEQCIHAq6/9CDOegGFRSoF8xZQ22cngv4BXbZVDoTpO/V1caAiA7GDrPWrhilnxlgeTW6cDU044hEXQ4WXmFXPML2wct5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1997996},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"265c7601d9ee46945c55116a39cdbf211d59950d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.23.0_1784936274969_0.239643166334625","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@odla-ai/chapter","version":"0.24.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.24.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"8526125cc2facfb7bce237c6efcc0f85cea02bd8","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.24.0.tgz","fileCount":32,"integrity":"sha512-59GJeg7sWzDcnFCGi8G4waqf0WQk1X/kHF8BqQRvcfmeLEeEauFPcc9ksxz+eVjjic/aLYzwUMfwbiWR/amy5w==","signatures":[{"sig":"MEUCIAdJCrNk+gV8VcuuMv9kbC8bHvD9lUweZA6/DbCPf+ysAiEAvMUVtOICNOxMYRYx0AgEteYnpBnK6C6Y/h58vZwkvTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2018967},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"b8d66162692013a93e095f079302ecff0ec2a928","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.24.0_1785011321945_0.9286311983840772","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@odla-ai/chapter","version":"0.25.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"2acca7523a4b4867d52e1130151557263a5bc548","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.0.tgz","fileCount":32,"integrity":"sha512-grYK2/EIBaP61q4dpM/zpe0kaqH373f6/mQASxcAh8dLY5gRT1rXhPOoYEza675uhiFBokJ6/mzVowcp1rKt0A==","signatures":[{"sig":"MEUCIQCKboie7JeFuvKEk4rSYNtRQaSSUPECDSsXPw+ZJdrI1QIgDooMkCFg62m9n/p7iU+JT2VxHhnFflQQDKxWDbGEBhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2086964},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"b3d7f4bdbeaceaa08682f2e5b704904a77adf761","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.0_1785037606631_0.7618778310615508","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"@odla-ai/chapter","version":"0.25.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"c4a7bc66a0e0625c859835ba291cb7b2a7a0a7b4","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.1.tgz","fileCount":32,"integrity":"sha512-0p6ZrJy/m9ROT7hVeVt7MLQl40kY4PiWnQvTEJUOfxsqJdWKVZVsqsnpP+dYqisV+atFA6SieSSJbJykr5zw0w==","signatures":[{"sig":"MEQCIDnuu0/q93nK+RrA7XH6RYMOFNQ0tHRQsSEJiCSgZzgVAiAKxQj0Xb/Qoi1319iB/57lRbYQyuxEH0Ur5VxF1UKRlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2090206},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"6dc0856d2f400d1e6da29d893f50dfb766307c3a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.1_1785040371333_0.5957031960710708","host":"s3://npm-registry-packages-npm-production"}},"0.25.2":{"name":"@odla-ai/chapter","version":"0.25.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"a5987827279c665848fd90e1276157111b15a7b1","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.2.tgz","fileCount":32,"integrity":"sha512-2yGHlQsOOLVy2T0XSyQaW4l9CCXHg9jcTXozM8nyUKHj052Pq6yqwBEM+luSLnT+gMlDsnpBvuewYGPX5aat4A==","signatures":[{"sig":"MEUCIQC5e2DvHgNyuYjvIzoGFkIqUjQXwm68OyN9IxNwBB71pwIgAtJs1WyoN0ueo80gp+PDZEz6cE9Qkfaj11C4Cg4tWxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2097819},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"039b58640c6959dbfba0343b5de1570094389798","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.2_1785085144260_0.7094700627809674","host":"s3://npm-registry-packages-npm-production"}},"0.25.3":{"name":"@odla-ai/chapter","version":"0.25.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"de4ef8f052e9048378a70eb64bd6d7a9ee5ba35f","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.3.tgz","fileCount":32,"integrity":"sha512-5xSQ3bx7SfcrJN1Bs72yycBCGwPvCvaJB7Qp/2uabJ34YBY3QDnKoLdP0S1KkUU7bwr/IuUs0icyVJ9vPE55Wg==","signatures":[{"sig":"MEQCIBqt1loD/M6m6odmRCWcGD+Ksd9UtkfdSF/TLDlobmQeAiA39mrursM6ymddbg8w7R0ir6J2YTgctXgQBRrMldgONQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2109792},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"85e896f2df7afe98e60e6934aa94e3e1e86f396f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.3_1785105276508_0.07238566356598941","host":"s3://npm-registry-packages-npm-production"}},"0.25.4":{"name":"@odla-ai/chapter","version":"0.25.4","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.4","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"bff5693de7cd9c8c8089656b354464c085513cb0","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.4.tgz","fileCount":32,"integrity":"sha512-OYfWKKz8J7/ASmSfk0RfsLKqmvMcK/sgsAZWxK9wGlQokzAeJXFbgaBYNl7uoj044i1dLIniSDyxkXHNIUH20g==","signatures":[{"sig":"MEYCIQCv2H1F8sedzg/8ejjQB/IqP33QFacds52cSKTaqk0cJwIhAMapLHUCFOsYAENgxlXlh0jeE0gs0f234zWbvJ7AiMGz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2112381},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"e6d5a2ce516781f6e15e695158be12d7aaeb9be3","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.4_1785162041935_0.2759560406270085","host":"s3://npm-registry-packages-npm-production"}},"0.25.5":{"name":"@odla-ai/chapter","version":"0.25.5","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.5","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"72568e63a1a00199ee68d5fdb3c7bbc8055bbdc2","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.5.tgz","fileCount":32,"integrity":"sha512-Zvc07LgTyoRf3WjK/BYjf7S2+ikExG36v0GfHU0T6OpPduUlN2pHBqkZpN1ZKjN5q8mPlkkfiup0TWpp6P9R3g==","signatures":[{"sig":"MEYCIQDoHQWeh9PgAltSWG47oOrW5bP2qVZCWiLXkrf0b7L9nQIhANSd519svs8v18RM/8aGgLW4MnrftfpKI+lJZbh9NQOa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2113660},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"a2069478582c1f2bcca0d822ecb8f1068f67bd6f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.5_1785168042306_0.4385086583722235","host":"s3://npm-registry-packages-npm-production"}},"0.25.6":{"name":"@odla-ai/chapter","version":"0.25.6","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.6","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"66bf94f95bac09f49e7202481e02ca2a76fbe0c6","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.6.tgz","fileCount":32,"integrity":"sha512-HLIK/SV9nRPvGoFmjTlpHTyhz87E5X8dg01RnY7l99ZCgzum6xU45unziXkXof2RXj6ueGP7X8T9nAbuwE0vGg==","signatures":[{"sig":"MEUCIBkwuxbmuha6rTrGd1hyPGEO2cfJgY/TGdIXYa2mioIFAiEA6GTrqYc4TUnZpvS1Os9JY12TcGLB3y3jKY/RcpvL52w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2114272},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"9a267bc1aa42d7bd34c571006f88e051753dc4b3","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":"^0.3.1"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.6_1785175751297_0.872334834676413","host":"s3://npm-registry-packages-npm-production"}},"0.25.8":{"name":"@odla-ai/chapter","version":"0.25.8","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.25.8","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"406222b81dd35f36e18c57f59e925f2041b06140","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.25.8.tgz","fileCount":32,"integrity":"sha512-eo8ThGrn9XDWOwwkd8JT7EjMDmYzg7bHiutQY1Fch57Aw1vVMYtVwP48Vn+DQiC5EmeKipSFwyLXexTUVHBQyQ==","signatures":[{"sig":"MEQCICxNw0Cd0Nc1lF/pGADos07lPT2t+k6/svPoXeYrs2m4AiB3DH2YFlswxuEMqDtv0TG2kUynntr/c2t4gfy8Awj2SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2131334},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"81b462a7822d7654b5971b1a8e56a5014cf240f0","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.3.1 <0.5.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.6.7 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.25.8_1785352037659_0.000124533782502656","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@odla-ai/chapter","version":"0.26.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.26.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"cfdb88b80d94b341c59271718ca7925c12a9fed8","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.26.0.tgz","fileCount":32,"integrity":"sha512-G5l7BwHRfGnVWdCGBXYHpc1NPhI99LoTKMbM7TWKB8WU3tTWOwJPapP7vH4ltTjqXaxhF/X3TMJCuEW2Vep0eQ==","signatures":[{"sig":"MEQCIH5GgZFpYto5H3nuf3xnBalOHq15D4/0PmDv0K3SYUGrAiBEHOSMBdSE+eds9zUWAtw3ZD3c7C3eJ3B3VosREZ/1KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2313514},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"1958856a623fb01aa836c18dd29aacde8eb3b089","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.26.0_1785441380602_0.5863413628978236","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"@odla-ai/chapter","version":"0.26.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.26.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"19317f4f1b80b9c5f7b92ea6450658c7c8080764","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.26.1.tgz","fileCount":32,"integrity":"sha512-OsPRO5o8Da0eGsTYBTrOOIRNrGNAjwIQ1R422+xv7lCDV7WC2MHhImG8mkPmbAqvVtSpmQx7/F/mbm7uQv8Maw==","signatures":[{"sig":"MEYCIQDdgeXovpVTS16VDF8TGPZyrLxNunpupW0LjAsX8tstKwIhAIE/fs+4k2Rv0kb3mdQaXPsfog3+5Ilj7zsrNPc8Qw1n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2324860},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"2feab63a49f8eae357bf9ad6dadd1559ee09b309","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.26.1_1785470800309_0.5630906640903832","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@odla-ai/chapter","version":"0.27.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.27.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"aaafd9d5eed6f63345a2c8323111ec432ed2fe54","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.27.0.tgz","fileCount":32,"integrity":"sha512-SURCu+wSl4EPYwPXP/dA+jI2CStutr5LRgEzDH6mPJ2YBG33wnAXJ1OLI5kNbqxvpGWg3q8pL821qgvbXYCGkg==","signatures":[{"sig":"MEUCIQDMZkkGVNRn33u2QV9xP6T5HT44u9mGQ4Oz3cZe/cqk5gIgTF7JMss0qMH5V0NBipo+bD+XsoH+J0GSB/F+v42YiCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2500183},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"62043fa2ee368acee01903da43224c2cbd9d2996","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.27.0_1785477768948_0.2759324489320636","host":"s3://npm-registry-packages-npm-production"}},"0.27.1":{"name":"@odla-ai/chapter","version":"0.27.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.27.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d51467659ed62edd2b54268b9d482219bd6ecb9b","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.27.1.tgz","fileCount":32,"integrity":"sha512-B1QULk4q+hQ2VO6uyj02mG6o1YzwGciMlBhrmUCv2OZrsVzRHwLt1RboxxZzyvjqxQvamV6YkrKBDLK6YOqycg==","signatures":[{"sig":"MEUCIH7RRx9S4OUbsiBi32gTwFduWMLTMQV97vKXcl7//ug1AiEAy3jX4ENJCWwHJRy4ZyUjDwC6Lb/d5BpKN4NbDIZ49No=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2500027},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"a015c38e8adbeb8c809fd435c26d9fb9cea8407c","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.27.1_1785480448463_0.07967105196198987","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@odla-ai/chapter","version":"0.28.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.28.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"58c8a4d222a45edf54ad86dfca0e81f12a8ea86f","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.28.0.tgz","fileCount":32,"integrity":"sha512-mnIsNK/jANkGmrJQ1b0eDZ1KeActCr+SPnmVL1gTM7Dr/AP7GgaCC12VYyhyHzJ1zcbRVD4jiYcl+VFA0e6Bww==","signatures":[{"sig":"MEQCIDXEQ50NvJ1BKdJnwJhbirdT6SgeSfmU/LmWZ8sk/gKuAiBZeIRn4gXLkSNYqsMuQaJpwqmarNfQkZXDTfX4WmgV4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2504993},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"176b3f35f212cf97c828ebebf064141a74345871","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.28.0_1785516795809_0.24861490195783031","host":"s3://npm-registry-packages-npm-production"}},"0.28.1":{"name":"@odla-ai/chapter","version":"0.28.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.28.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"5fdeedd1c704a80d401ae0c921aaf381ac86fee9","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.28.1.tgz","fileCount":32,"integrity":"sha512-psOVZzjjQ32Qz7qnwZH0/9twmqOGs+OiHbuMJjxPBQ93u4D9Yw58vbA533/srqVKZkodEEeYmQHVvfvGvWrMyA==","signatures":[{"sig":"MEYCIQCDAAqN+qx+3bYLYtGf6PxCy9ysiqAj/1AyrUmQM3VQuQIhALAxbq3To0GL2DoFKiyilqFob75ehqQ2O7O/B9B3EOB7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2505318},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"0e8e875829725c85ef25bf1f586269de5f183c5b","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.28.1_1785538433321_0.06895211660041833","host":"s3://npm-registry-packages-npm-production"}},"0.28.2":{"name":"@odla-ai/chapter","version":"0.28.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.28.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0fc01fedf0fe933f04838ee3c232d47aed271965","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.28.2.tgz","fileCount":32,"integrity":"sha512-JBjphH+zVRP446pjB15tM+3kmzKSXKP+W24YyQYmBxAVJmwu5uh73uDBasDRuZTVQpKbqiy3x75VUefF+EX6ZA==","signatures":[{"sig":"MEQCIEu2M3iO3wWeK/i5UQspRuGCj6LQ49BlXdERohcldAxEAiA01DynII7vrZclBBT4eTiuUFaKc3NRxOOjQcDflVK9jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2505517},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"9349eb48b0fed47829f2ba41c42881f63163f1b3","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.6.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.28.2_1785599241576_0.40666044433862014","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@odla-ai/chapter","version":"0.29.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.29.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"57e0a28babd4fc612f373dc989e21e69329659c1","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.29.0.tgz","fileCount":32,"integrity":"sha512-yK+Hfa1Tfymq14jf8hX5pX6SMofZH+725cWRH/K9lfjlpBBDBrCKjq4SgvrJ/jrdgZj6gF1Vj3XB+jCMf7wxUw==","signatures":[{"sig":"MEYCIQDOzINl2rAUsU1xVnrJuagcD+b7Ri0kvjeLM+2xcV5PrAIhAKQ0CPUDOGG3nWcvPx9btt7zR1urwZLWihO8KAxe23qi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2507968},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"1884d1047bee4092e0e49ecc138ea3ccfbdfa52f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.7.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.29.0_1785603930653_0.10730167120153511","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@odla-ai/chapter","version":"0.30.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.30.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"120ab93fcff9154bd2cd09f26fc45bc192fc4e51","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.30.0.tgz","fileCount":32,"integrity":"sha512-vy6Gojsz+6R9e+is+Npp4Mr/fS6iN0c8YHR3RHvzwo5KydSxYB2o44nw85fDhKmpKwv3pC7hifiAOtqgYh1aMA==","signatures":[{"sig":"MEUCICiY31bsUb5gurVX2ad7oxh5//sTAJcTRWwcVZEufBcAAiEAqHpEfQdJQTjiJtGd32YCyH0RQsRBx1YU6IG9B31ZUWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2511104},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json"},"gitHead":"7acdcc0fe467b619f2eb74dcae7f85b18af39ec6","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.7.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.30.0_1786119247955_0.5195958311338043","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@odla-ai/chapter","version":"0.31.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.31.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"62a272a6722d7d4fdd4022c34f84128148a10027","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.31.0.tgz","fileCount":37,"integrity":"sha512-c1+leWQ/MC+0pS+MNysvj+BPlQoXczxHrq6rydIHRbbDjRyrdcXU9uaJ8cc7CvE8Xvg0lpQGdK8x7tEDXd9FoQ==","signatures":[{"sig":"MEUCIAHQz3OZuwqDyCaK6ngnzyS0KhzxkBhS3OaUuxx1JqL6AiEAl1as56QnFhZOeTBmSUbOScCCqvSnIBaTXMrmRHXDT6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2634374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"ea0e69a72e6d73b27121c43d2cf8546914835901","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.8.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.31.0_1786506722966_0.9977851871736931","host":"s3://npm-registry-packages-npm-production"}},"0.31.1":{"name":"@odla-ai/chapter","version":"0.31.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.31.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"51de299f07cb19d54f38cbf23909409727f1431e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.31.1.tgz","fileCount":37,"integrity":"sha512-ngl7ozdkiNCr6FmV5T0XUzB82k7O+jXHjqYtnK7fu0+SSsHE+xprrx0dCXr/a4xRD42MOWAgSYNS6FsOZD2uyg==","signatures":[{"sig":"MEUCIAFaKp+ESvlabkEdLSt8786GJ6tUIX7n8xaH1B8SzKU6AiEAkOsfxjw4Oho4zSqx4BgiVOlmPI9ncVbtSHuH7eQLOyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2634374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"2950a9cf88042f7bd2259fa5f2b9e545fce00de1","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.9.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.31.1_1786559449937_0.0484002057612245","host":"s3://npm-registry-packages-npm-production"}},"0.31.2":{"name":"@odla-ai/chapter","version":"0.31.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.31.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"8bdd5a8d5f22f06e7b64fff5c79b5456815a8adf","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.31.2.tgz","fileCount":37,"integrity":"sha512-1W+G05n7S/1p6UwjYNkEHGVeSVXUbjFWMicYQ1wm07f6A7V31bYaxe17hqfX9VDBuxHcE5pKIFmQ0kVtzYKo0Q==","signatures":[{"sig":"MEYCIQCi81beEE6pF3j5w97O/NS2OYqdZn6uxEvYVlRCh9yiLAIhAK+S42zx3wuWNeR6ASJNPTNI6p9eedsRg62N1qkzzjDp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2634375},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"3982e14f679c7a2c61abc68ed9c070c9d47b5def","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.31.2_1786852698451_0.0891835290648606","host":"s3://npm-registry-packages-npm-production"}},"0.31.3":{"name":"@odla-ai/chapter","version":"0.31.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.31.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"2eefc84f9c033680b6541f0b22214a44effdfdb8","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.31.3.tgz","fileCount":37,"integrity":"sha512-1pBKcIRen6GnsTx2x84tAw9cGAKU6rFg2bJyjFniD5aQggIAQ0SLYH4EXiT+Yf8s8wvCpYCCJhE+lyQ+95gvQw==","signatures":[{"sig":"MEYCIQCdVViDjetF5+3RQLB+sZxKyYRp9+uZEj3GNc5kPGNiVgIhAOWYbZs8hvWNUkE+PS/I2zLKsF/w3ofLEhXDDKtOH7RP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2605508},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"6881068a05452b5c1844dd358256da47f69bbd0d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.31.3_1786918508921_0.49725835362883264","host":"s3://npm-registry-packages-npm-production"}},"0.31.4":{"name":"@odla-ai/chapter","version":"0.31.4","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.31.4","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"96b10a958c1dc83862aa2f26e00319923f40a286","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.31.4.tgz","fileCount":37,"integrity":"sha512-Ubi5rvcScErsIQSBDuUkt/sDGFXVIKs4LO1kN6tKZaXnX/3LElvXHfEcrndTomr7rQsI8EFGvyOHAEbKx2x2rA==","signatures":[{"sig":"MEUCIDan3JiF/NWk7oVxhm9G0IW+31UqlftMr5K3/iYqXRVZAiEA9FFwwUtUcQ0UP8tJqnXh2LGt5luRb8r4Yn1XkuHpIEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2619899},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"8eb694a484fda9bfa50d4e08c7983a1aba24a96d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.31.4_1787171660458_0.09933762928287271","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@odla-ai/chapter","version":"0.32.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.32.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"422648df2b66ef2732031ca607b62c77afdf299b","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.32.0.tgz","fileCount":37,"integrity":"sha512-GBEepiRHv16H+HTeDDa0SIffbRVVM1hcOkWp+i53Hzjirs8uhdivKXQy4WL4J6xql+r1Bq9XeRfGwd8RT0RKHA==","signatures":[{"sig":"MEUCIEsF5Jdm30YHJksdNCxbBeKpMFwyt/IykKOW5wprz5GRAiEAyzL1ic9+FQ233b2zfsGntpL3MWgRk350dqDdJUGoD9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2737579},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"cb6f9d44e91f0f54c54d6894322d6c82efb719f2","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.32.0_1787521680994_0.44806196168533363","host":"s3://npm-registry-packages-npm-production"}},"0.32.1":{"name":"@odla-ai/chapter","version":"0.32.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.32.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"4c721c5325f14f63cda2469a7693c5d0745a33c3","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.32.1.tgz","fileCount":37,"integrity":"sha512-S4Zavg9TNXa1c+v+V5IjstGxMg6+VEmz83Aa/oC1NOnru7CtEZUfKrWh8PUAXGq+tIaA8Oayl1ZqFAF/YiW7qA==","signatures":[{"sig":"MEUCIQCmTQ5GiS3O9WeXWyl6JYRUKTUeNLYsvxjcnbtdwKEp8wIgHBQSN3l3kjOuXvpwF8XNmI89E+4v9uucGVL26X8zhCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2747095},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"afc6853b7a0185e54242d2a0afc72b7037c2bf26","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.32.1_1787528843526_0.5235737511363296","host":"s3://npm-registry-packages-npm-production"}},"0.32.2":{"name":"@odla-ai/chapter","version":"0.32.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.32.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"cd95131e13df6a14fc35ca964355c5e042c68968","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.32.2.tgz","fileCount":37,"integrity":"sha512-md/+66zHx8TOsx+bxw4nI3pVWrAgybzT6qQ7BtQYNCczI3grySYOqM7CZ85KFMm5/DZokHIadG6hJ/WsOruqrw==","signatures":[{"sig":"MEQCIBZmXmqhO0tGIJDVaNVfWap0b8eaz1PcF7ppS70C5vjQAiBfAUfbu/kUdQdfkLmxpvDUWKL1T1gkwKh8pxAAFWbGKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2784392},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"f2c76a554f9db699105223b0307b0f4a8ab6d8c1","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.32.2_1787535967914_0.7131313589730435","host":"s3://npm-registry-packages-npm-production"}},"0.32.3":{"name":"@odla-ai/chapter","version":"0.32.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.32.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"45c90f26dc19f28ae9b5be21d989db47bfbe0432","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.32.3.tgz","fileCount":37,"integrity":"sha512-E7ddXWafBe1dkFbT+FeMjl4i2elwBh9mKzdFrzRMg/o7GIVhtP7oW02sS/UE/VB6VFqi76yPzvR9cgAJbC1+vQ==","signatures":[{"sig":"MEUCIBCrzCgwjbdHSZwJ++VSdP5/QwrEIjtWPq/70K1y1m2tAiEA+OaCwW/sbZyzJHjVPpOTjxOCX5aHHodflvpRcRKBzYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2786380},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"a78410540089010fb0589b6d64f559200c9cc561","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.32.3_1787542941501_0.6923687505513556","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@odla-ai/chapter","version":"0.33.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.33.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"ae3d10f432231857529bc1bcb866aacee43c4a22","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.33.0.tgz","fileCount":37,"integrity":"sha512-Rvxg9sxGcJxf4IyoYLGGfcsRIJ9GXn+eQDLOXJpBiBPiFMMcZoEcpleS58iiMx+WxLRJJyV893sGBzmxa8RY5Q==","signatures":[{"sig":"MEYCIQCUDxbxyVnKfPGH5oIVHEGsl2g/b9WIGgXul48CbvDYWwIhAJs2E3jXMKXrsizbSZxaL2HB4ENzWxi2zE6RA781rjFo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3060951},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"264c2d732715da8e5cb0b9692b48a03bb0bba83e","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.33.0_1787615666173_0.9286242114762588","host":"s3://npm-registry-packages-npm-production"}},"0.33.1":{"name":"@odla-ai/chapter","version":"0.33.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.33.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"f572bfe6b0849fa741772a4146b5c9d337c98559","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.33.1.tgz","fileCount":37,"integrity":"sha512-6U2k5krGWYXRhz0+jgFabCpkbiFb6UhemJGsp8Z2GJ1aJ2xXOoNjHy2R1KQzQZpLoJcteHl7W8/1sBuU+9GfUQ==","signatures":[{"sig":"MEUCIDjmgsV9Hs5ZWXqBiUFbQdclCJg6INVCi1ufxdFkoWg3AiEA4RsA+EI+NM1qFN14xiYdPwszKBsEk9Qdob77o/SQ8vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3066618},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"e42c3fae9be8c2823a1682c291fe86175f1d4ac6","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.33.1_1787626477152_0.5892316157568143","host":"s3://npm-registry-packages-npm-production"}},"0.33.2":{"name":"@odla-ai/chapter","version":"0.33.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.33.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d92cbf1ae1b106d890058bc0896cce43ae5f5802","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.33.2.tgz","fileCount":37,"integrity":"sha512-HHrTbJqlGdBdSLyPeCrDzxyof0h1VjESj15kK4lsxt7jqHT6xwjaCueTct89GOfpkUNOiRXeVtEXXTSfWxxwEA==","signatures":[{"sig":"MEQCIGIUQyP+baOaLidd4cYtrxtmrgd8stG/TXCYRPYXfQPdAiBFjNIEAFjp0S8mdzfeytYneEVZhcoUk3AKnIBL0dH6Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3069500},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"7c8bda426007b0ab2ff5a525f2bfeb0b0f94e345","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.33.2_1787629579066_0.5635462492182499","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@odla-ai/chapter","version":"0.34.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.34.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"e460eabd03286471698e934b311a65efcf26b544","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.34.0.tgz","fileCount":37,"integrity":"sha512-/byrRhYRjEU4B7R95SonC0jlreoWxJkncwL3OPD1d30IBPBXnv+j319io6b9GUomH5YG7N4v/v/cS/trShM6PQ==","signatures":[{"sig":"MEUCIBZHoHE+3Y5XWcQxcrZfOafLEDYkZ1tYhExOt+D9h0FoAiEAhNujKrzPMXO7HmQLXZpvVeFX1QY6N+21EL/OuJ2HurA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3095367},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"44cdeb2d04ea93153297a0b661556095a956257a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.34.0_1787700456397_0.30855107453202346","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@odla-ai/chapter","version":"0.35.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.35.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"e97133083cefe5442ca08e084da55e7932fd7521","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.35.0.tgz","fileCount":37,"integrity":"sha512-pOxuw6YgY4OXZaxW/eJsobgvvS9O5dLMSUW7WKg3tlB8TSIe6TxrFfgpfs12qwhCiyCYpA2EQ926h0mJ1UyyVA==","signatures":[{"sig":"MEUCIE213DzGG+kCiG4ScFy1y5Canwox+1gr/+t3MsQw/uGEAiEApe07nVUnAkREn/gwy3dvkjcCvhKHJNymIW2UXZeN4pA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3197840},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"f1484e8a7e6e6ae250d6454ac6aa8811a7957e14","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.35.0_1787887927179_0.11473827519803903","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@odla-ai/chapter","version":"0.36.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.36.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"6988f90ca52b28ee6493922d40d5a1764882094c","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.36.0.tgz","fileCount":37,"integrity":"sha512-D1AD2Nd185H1aTarWpHc/rgYiD8CSRr+JGac/T/uXzjco3LBTMJtOhwKuwhUhSw8CKQce38TG51E+0jZ3CVx+Q==","signatures":[{"sig":"MEUCIQDsTapCzRCtuH6dijci3i5/XpeL+EVbqBSM1d6nvEsWmQIgEN3NjFT26JCp2WUY3/QMUhOLn0lMDH1H1WuKJexPDcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3770567},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"a5dd79e5f8c9f7fa4e06debe76302b90e7ac7dca","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.36.0_1787954281803_0.4750465840403164","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@odla-ai/chapter","version":"0.37.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.37.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"01a7c76ddbbdad506d540efbb448c4828c735dc4","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.37.0.tgz","fileCount":37,"integrity":"sha512-jj5t2ydxtFUL8eBKKYK9g0E9BR1zifeBqGiFW0GgF8zO8W7OLFoipgzd2iFb54m0dYYIangABlBVyLLNq+09Og==","signatures":[{"sig":"MEQCIEc6Cl+OVetm9H3WGffJ5GR1cALzO5Qkg2g240zLyQB0AiAGjRC3dN1P9s2insnzptC8E9JkkfBaDxzMIiHgwLM0BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4163603},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"93306c4a3e1cbfd539f01ddd57539e13ee4ef689","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.37.0_1787973370799_0.7718726851447508","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@odla-ai/chapter","version":"0.38.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.38.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"7cecdee5bc3f1a9dfdd44ae51c801fa047b78e1b","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.38.0.tgz","fileCount":37,"integrity":"sha512-eGUbINqaR4wNVVtLLNlXDg7EKvxVq4pD20ks98UcB0VxBwoFMSrPfWNqQPmmgLIpwzuEnRphZDNf8OBYU8MZhw==","signatures":[{"sig":"MEQCIC3b4bVNGcaqv8liDXaKWjHHwNV6gNASGgQ+FMUrj1EVAiAtfG2ReZFHW96TuBmREUDFZkHDS1BQAaUX7yJPyFpaRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4206168},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"444218ae43151cdb6bcbeb1dc2aa706ee3bb7127","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.38.0_1787975362228_0.7190887959228576","host":"s3://npm-registry-packages-npm-production"}},"0.38.1":{"name":"@odla-ai/chapter","version":"0.38.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.38.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"bf589604e11435879321761c89866d7335a33953","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.38.1.tgz","fileCount":37,"integrity":"sha512-xJwvsijcBS0Wwm9BNnyqgTARAc0m9URXZe+bBJ1zUq3Nepcq1JsE40chsNZR5yzqRwYz25l7/rqYzR9D3wFV2w==","signatures":[{"sig":"MEQCIEhGLQtjIEOiy9VyUYmrKhkrkM6/xR+pz0QwVPrmSNmaAiBAZ5KPpgMvi+C4AZ07hvUd6te7mtGvEzUcMzG+ur9whQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4204432},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"7f6697210f76cb20da1247dc35debf4cc4ee7b46","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.38.1_1788028314657_0.9830287836274718","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"@odla-ai/chapter","version":"0.39.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.39.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"17d5ce3a7b8ea65ca0b8a2b70361a930e0b00979","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.39.0.tgz","fileCount":37,"integrity":"sha512-hJoQk+PKDrFl7+olLxOuTXklPiaW3bUyzvOZZAOjennKGBP1iuy3msEw01IBmMfv2/ajTzxNTx47ioTPRx4+kw==","signatures":[{"sig":"MEYCIQC9BWCV4ONabBb//fR8m2wT2dcjLVsf6EvW7Ej02QUeegIhAJFDLoqJPOgWUgJ2I2Xk9Fulxgc9t5z2FEWSGIBs4rqd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4213108},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"7a6dd24c919a684a9e334452685b0e3c49810098","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.39.0_1788031072429_0.8382187705123036","host":"s3://npm-registry-packages-npm-production"}},"0.39.1":{"name":"@odla-ai/chapter","version":"0.39.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.39.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"cd1138de406ae8b3b5b3bdee7e622f4ed2577403","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.39.1.tgz","fileCount":37,"integrity":"sha512-XAKLgcFLbqGIEkpynPKCdQwQy92j0HgSstencQPq95oBoTfGZ1hM0f53MSCR/3a8x3LAPbQU/EzlRZmduAfENg==","signatures":[{"sig":"MEYCIQDm540I0Bv3NohmOXr7xLCMt5ZFKlRsLrJWQF7yg36wHAIhAPhVimvmho1YohVsW+zzzyhsXFsHHJD0ZWWL87epTyVm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4559531},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"80f39e65deaa7b49c5daccddfb0956ef76bf1f14","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.39.1_1788034075886_0.035042933446036706","host":"s3://npm-registry-packages-npm-production"}},"0.39.2":{"name":"@odla-ai/chapter","version":"0.39.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.39.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"e2643bdaab506e6979eded5fed597aabbf426524","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.39.2.tgz","fileCount":37,"integrity":"sha512-+OVFmFpwfpNY1YWrTnofXR9nPdIqtjhrZBEzO+TTL8APzE/o0ytON90f4+sJZTWc8lwh3weQZbt0CSmhRnshvQ==","signatures":[{"sig":"MEYCIQCTKPiQSOl7h60+o8kPWkIx3+Zm4QtPGhsslgu7X6/qzQIhAMUS59ZFsjRalnNOkV1bS/WzBroO2EhdodTIQI2Iaf60","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4565320},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"a8d79108826ee81f4b3823b8f7dacdec78e3e254","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.39.2_1788048007930_0.23840694246139305","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@odla-ai/chapter","version":"0.40.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.40.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"9d9ca2d9515cf263c96be24f6aab7f7606afa360","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.40.0.tgz","fileCount":37,"integrity":"sha512-PXMtwLf9L/0nrtZ/3YZNTe1cynVDxRD5zQj/GeAfqVPLTJeFfeCc6vHWJN2GaFc8omS1AtnicX0wTI+OlR185Q==","signatures":[{"sig":"MEQCIHRS6bX/NOa8/nUsS0qYBW49bb57rKTfK3JqlZvFmbEkAiAstOIWNzrXCBL9qdjyCgl+8k2Sj6O+QUTEmiobAW/t6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4589424},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"004ed2b6e1624412a7c53d05640ff322abf3d232","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.40.0_1788066207209_0.814426246399917","host":"s3://npm-registry-packages-npm-production"}},"0.40.1":{"name":"@odla-ai/chapter","version":"0.40.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.40.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"7d862fac294c3d1837375685acb3e5049dad4079","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.40.1.tgz","fileCount":37,"integrity":"sha512-rHwCxkcEKVg5wHMS8Tw0rnoxLFarKaWXpNCMlE4vUKg7gE4gzEUfQLdH2ATex4g5tHoMeek+ArvkAF0eoYMpPQ==","signatures":[{"sig":"MEUCIQCqNHTXlW9p0B7eWL+0AYnxJJWHavbUtVebv2//Xjd8PwIgAmES9ZyYHCZ985JDZctnGhzll9YjyOc64gZxBjvCosM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4595659},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"5410e5eb4c9d3020e3af5bf8acce4795111e517f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.40.1_1788112406423_0.07244412175089221","host":"s3://npm-registry-packages-npm-production"}},"0.40.2":{"name":"@odla-ai/chapter","version":"0.40.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.40.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"be2fbeae2dddb3a501a04cb39810cab9ce235850","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.40.2.tgz","fileCount":37,"integrity":"sha512-ItyJLEzQ7ZDzYHUlFNoK+STuFPx/HastVg5ywjoo/OupG1DEvuUZwtv5YVPhaCVx//+ozWHrsg1EVk6Nnk59wA==","signatures":[{"sig":"MEUCIB7l7rmWuM6VtT2GdwdMT2CuY2OqlAn/uRucmzDZpf1MAiEAxJta+A1e7UnkfSMWW7QjoNb7EFTreV3AxPQ5sJSbR+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4612659},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"755bdf036cebd16fec108d0ccd93089ac73ed478","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.40.2_1788114375037_0.5187446890852203","host":"s3://npm-registry-packages-npm-production"}},"0.40.3":{"name":"@odla-ai/chapter","version":"0.40.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.40.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"49c26cfed1a111fa841569bca440beaf373b9aed","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.40.3.tgz","fileCount":37,"integrity":"sha512-NbGOsm/CjTC/RBudD8ZISUivaJHnFjuTbWvcTzpF55V22SAN0jhcJNO+rkhbDvK2utR0FR7vgJRqXvbdTMOzAw==","signatures":[{"sig":"MEUCIBidWiIU6I4GallQKWfkwc0r9vRTcthQ6dtj3AC/2fM9AiEAj8RNX4mKz3kDQ0zQ+C53rE6vC7ZAdbJ38ZrpxH6gq+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4655373},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"5811d9c8b5cc82e779b00f30943c6f594e005f13","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.12.1 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.40.3_1788125030982_0.5147347448976851","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"@odla-ai/chapter","version":"0.41.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.41.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"51f36c4d4c69033a1e7b4c66154740296d781757","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.41.0.tgz","fileCount":37,"integrity":"sha512-kk/fphb3gQuBKJ5woa3QuSAndsHzSUVNFQdky/kjUCnysAyNOUj+cChX6b+3xIns5dL3x4LvNOTyB0wS3ahRSA==","signatures":[{"sig":"MEYCIQCVX3SKXzsmBO2ZXrMSxqE+8l7bFknKbF4GHTMdqQ4spAIhAOjZ3qDbVDGitolr2HyJOVn+yzIugfRvx5m5X0yw8J7a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4661564},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"cb2462eb745fc309db9f314faa1dddaf8758e720","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.41.0_1788128200259_0.21956485719217755","host":"s3://npm-registry-packages-npm-production"}},"0.41.1":{"name":"@odla-ai/chapter","version":"0.41.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.41.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d73abf3fde196e6db22030c07913468ee72e0cd8","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.41.1.tgz","fileCount":37,"integrity":"sha512-pzt3X2Z0bikOC9owWAp5fY8KY1RHw1yGUnizkCpVt8NRQdgaiQaAeceK41KmCRhCoRrgV5V5pDqDpY/WaZJftw==","signatures":[{"sig":"MEUCIQChFyEVegEcUFwdBxHX66mGikqbTm449K9COSMWe/SurwIgNKYoWitDwfMoU0mafn43RiU6ShAtqcfYKZH+94XP5h4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4665719},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"28f60098e3f45d88b0c60bd8c2823aaa19805af9","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4963cfde-7d30-4ffe-82dc-1e2a864a12a9"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.41.1_1788131233537_0.9326968008513505","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@odla-ai/chapter","version":"0.42.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.42.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"582afed40a50d2deba703b6d507911f390879ee2","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.42.0.tgz","fileCount":37,"integrity":"sha512-YuuBTZYZeQfaqOdmHWHD60nd8iJJw74wyrh8zXa0KEPvm4LC7LDExibY6k05FVUSKLGmXnt7GRZa86MpTuDkyA==","signatures":[{"sig":"MEUCIAK5v8Va55wMQ+B6XJexffzAJUkMNOI3NhP6KnJijmK1AiEApwWQunCq5uK4y+okcAxz1X5Kd97U7P0U/lrcCdnVnmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4697694},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"ba237280ef6fbd9050faa49060527ab98d79d065","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.5.0 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.42.0_1788137972110_0.33051827819404256","host":"s3://npm-registry-packages-npm-production"}},"0.42.1":{"name":"@odla-ai/chapter","version":"0.42.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.42.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b7261e6a8ec1b09c40553f07baf62f1e21007ab3","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.42.1.tgz","fileCount":37,"integrity":"sha512-/q+2FxE+TNuY6pcfQzblI2Z58JQ9u2z1pdDwl0awTYiUXkA1t8N0T8k0jRXhFaUCA0pi8L+bphjxzBLn6ok8bQ==","signatures":[{"sig":"MEQCIER56vuS/ikHRcpKNsemtf00buI818+1GaQ+qhzUussQAiAkfVpskI01UAHP0i/CxZzcARiSKbg6df8nxNdoHWTm0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4793653},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"c035af127701c3ba0e18514b80669cafb3543a9c","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.42.1_1788145985885_0.04917951191479486","host":"s3://npm-registry-packages-npm-production"}},"0.42.2":{"name":"@odla-ai/chapter","version":"0.42.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.42.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"c8a6ff334ff0cf4382f285fbf4dc6afbb254585d","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.42.2.tgz","fileCount":37,"integrity":"sha512-g7/xtAJ/vzKgwfhgt3scfxiJ2PYL2MxksZMCq8HxhrLywjYM6suNzWOeHn0eelMWlGSzkMupPQYquenXnPiCkg==","signatures":[{"sig":"MEUCIQCPdywDF2l1ufDhaHtN6Kg67m0CyoSAKizSlOOmN7YnoAIgMqjpofM016l3IrXZm3ovNW3kS0siq7OKvb1Qf/ngt5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4911142},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"ebf4e36559ed052215a0613b08e8c5ed22fddaa4","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.42.2_1788148249705_0.4953922107141753","host":"s3://npm-registry-packages-npm-production"}},"0.42.3":{"name":"@odla-ai/chapter","version":"0.42.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.42.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"c22584348cd0cac35ad42f196b3a64da0ede15f1","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.42.3.tgz","fileCount":37,"integrity":"sha512-VLPc42QenyWr3lyTyXIzkoVpy7fHrE/Kj5hqPdjedBfltOTy3hbalug+HFhhQ7nqBGZKyky3YlejP0+CIiaWdw==","signatures":[{"sig":"MEYCIQCxvZk8sJy2FgzKB7koJid3eIpuKwx5eZwzjFir05VOlAIhAMV5HiuCgJVnHHf7TsxfV8fW5po9R8oXAojXS3899xj2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4938077},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"f956044983ffa27b16f2481b84a4c0a27b782630","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.42.3_1788151637411_0.9994588699410034","host":"s3://npm-registry-packages-npm-production"}},"0.42.4":{"name":"@odla-ai/chapter","version":"0.42.4","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.42.4","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"15a4d18a31e1115e3f6481ac73f2f7135e9b3dec","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.42.4.tgz","fileCount":37,"integrity":"sha512-9mFWVjLB+QAWxRaE02DQeflxK0/msj+TMcnOj4/pB9sd1Z03SPpLQ+kigNeJeUpWoRIFTDZBRkIdvupw/77ufQ==","signatures":[{"sig":"MEUCIFQ62HJqcK85Ic40RwUs33ndfYBvmKZ+freIxOX0iNaoAiEAt+XjtLsq53GHNMuXZsDQk/qCFqJy+eOmriXFBND4fU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5047084},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"bbd4ed68cb229c302d453d6970caa16e51e8cda1","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.42.4_1788303784993_0.8196870406957775","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"@odla-ai/chapter","version":"0.43.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.43.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"943de387425d98fec1af1d059cbebcee5b83ac2e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.43.0.tgz","fileCount":37,"integrity":"sha512-MMuYsg4MgNJ+d82oS7CWPWmzas58HvCA6bprIAk5DkU/tniB+L+ks0VHADNtB6HYCcTzZ4qw4IJ7ZCer4No85w==","signatures":[{"sig":"MEQCIA1F63H4U/KVZkdYgi+ps+e/6yYdBS270DL1u+kPs/SbAiBtD9gcPfDIFDoYmpk8wThkED2Lq8qR/7Z6VrGbR5IO6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5120370},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"f8c4b65fe84c2bb75369baef153a21e5aebf3790","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.43.0_1788310662474_0.09446839626561965","host":"s3://npm-registry-packages-npm-production"}},"0.43.1":{"name":"@odla-ai/chapter","version":"0.43.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.43.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b66597c4d5277f2ae159badffa01b25592849e4a","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.43.1.tgz","fileCount":37,"integrity":"sha512-lO6xTRbjT6FODshu7yG+2nvhkP9V/HBrrniwoIY74NRnDoQ0V2rFgi7mlCG3OKbUZl5/NERF+YKw6bmaMAzILw==","signatures":[{"sig":"MEUCIQDZRsE4OOcPlADLa1ij1hqpOxjp2MMpccNdQBCMhSPdQQIgBOLTdRfFdoxGGBs57Bgr0npGexruxXsyUTXi5+iaa1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5123218},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"4d928f45fc15362f81a7364c2cd82608fa346c3a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.43.1_1788314079411_0.4658306227168858","host":"s3://npm-registry-packages-npm-production"}},"0.43.2":{"name":"@odla-ai/chapter","version":"0.43.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.43.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"8bdc815ab1347ab5d0188dcfba8553f86c1450cd","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.43.2.tgz","fileCount":37,"integrity":"sha512-eQ4N0KjIsq0nm96nAGfSAaDqmhzKZClYnnCEZlwTWKvOH9cJqU1X7NA5P810WYuYAK7Km4/ePiJPtkVEWeMDBQ==","signatures":[{"sig":"MEYCIQCmQw9/kXGG0QQRqULMiSw2+CtbDY2JQI8mvEtsv56xpQIhAMEu6fOd2FywYkzy6QfxhuVNezBgm4EDmlyc2qhZlOda","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5123976},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"856c3242811641783d3d74d9bd41b4cac9c1804f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.43.2_1788318302460_0.681776314568548","host":"s3://npm-registry-packages-npm-production"}},"0.44.0":{"name":"@odla-ai/chapter","version":"0.44.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.44.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"9af8ba3f15fa1b3995be4b48f6cfa3e6c19815b5","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.44.0.tgz","fileCount":37,"integrity":"sha512-hXeW/AXxFe/BwvQazcYkWnr3tIvz6Bea4ardu0mO0BTxfDIqdSaF4SdVDD0KwwBH4aiT3Tl2SdOmaVa4eoOkXw==","signatures":[{"sig":"MEUCIQD2AMMDr5vwI5dKAenaaqKvckvZd+USfb1jDAbi89jZ5QIgY3RRGFsq6SW2HL3B3mCk3l5LpnkIB2URi5fHiWOUgXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5344019},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"076adbfc0129c9574c05c1bee024362fa9be24bb","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.44.0_1788369168103_0.03997472901183485","host":"s3://npm-registry-packages-npm-production"}},"0.45.0":{"name":"@odla-ai/chapter","version":"0.45.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.45.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"53c311f247293a8ba273803305d1b0b41778239e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.45.0.tgz","fileCount":37,"integrity":"sha512-iWXp7JM0dUvKXd1V7aJHN8uJUJAYAhLGSNOu1qA9P+eWxgAdEkAI4LC64RNiDb1CscOQBf9RXYsR8uEyunc0Kg==","signatures":[{"sig":"MEYCIQDOVymdPbeJJht+jdcXoDbw58HW/lQI4F3toB9h93XXjAIhAPrPTbT2m5mOJEr1Ay2mG9pK105PlKPUb7xqcw+K5ZT1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5657762},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"23822aac735ff300e23d19cf547073a7e0be570d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.45.0_1788376778919_0.36605102822623636","host":"s3://npm-registry-packages-npm-production"}},"0.46.0":{"name":"@odla-ai/chapter","version":"0.46.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.46.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"4d5d91a0f6b1000c5ec4bdfcd54c904efdf675e3","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.46.0.tgz","fileCount":37,"integrity":"sha512-G+CTksvfMNU3T66dXTSdL7dScKVVzRjWaclWanLfpOO6Yf4Jd56Uc5WUCvQleNFeWH5g5UziSHkaJDeseWTcgg==","signatures":[{"sig":"MEYCIQCvfraw/KQiK0XF47ToO2rumE3lbWcSnI69gzgJL/9VwAIhAMbVTb3dmPFNPjf4pIlswIP2gNrnecDgZdTeMvKKEOGM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5803185},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"78f2b1427e715cd7496675e47bf361a03e9d269d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.46.0_1788383529073_0.901393161799593","host":"s3://npm-registry-packages-npm-production"}},"0.47.0":{"name":"@odla-ai/chapter","version":"0.47.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0c7b7f0ca6935ea24124a760b4317c14cdad150e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.0.tgz","fileCount":37,"integrity":"sha512-wpXgp+Ph94ZZxOEWJpTbCkMchiOOcz5aXvIKRUF2GtenNO7zwCE0WDTD+xCMt7a2iOh71FzteM5AJshYU6J6Ew==","signatures":[{"sig":"MEQCIFwlNU5oRiKVJMxdC6AM7yiYSh9123oCKqIdvB8rvZ5xAiAYv1kyXoEwgqVqXIH9AHIQmZub3QdlaQAmPKIpTbDiuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5810145},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"5183be2eeb721f17ab1e3a8f2b22235a5d1ea245","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.0_1788404944544_0.7094838622276878","host":"s3://npm-registry-packages-npm-production"}},"0.47.1":{"name":"@odla-ai/chapter","version":"0.47.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0887b4b525f180b92240f8e4435bc21938a785a3","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.1.tgz","fileCount":37,"integrity":"sha512-r7ZMv8o3fi9SgUIfokIqbRi1a/3ARcnYORpDSMlfc/X7+XToT8c8nni+ji5mOW0gTfFqYj7awysciOusklqMCA==","signatures":[{"sig":"MEUCIQCXfEZMX50dAAA+K0Rm9kI6yWg4S04yWGuiTtn+qcSrJQIgXJiNGutzYryKxsXaD1g2poxMZLwnzpb8H3mFv6W7jUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5827382},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"a53b27bda35767e6e319fc5d90fb5732e0116696","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.1_1788410438121_0.23444698722741486","host":"s3://npm-registry-packages-npm-production"}},"0.47.2":{"name":"@odla-ai/chapter","version":"0.47.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"6224c9813c34f0503f2de00e42e325e2cf8b5312","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.2.tgz","fileCount":37,"integrity":"sha512-MbNVcQlJoAQy8CQ8kyMbhQu2VQSiVlrqw+xK/oo7THgR41HyZvGK5sg5gcsQFmVekl/I0zmfRn/usOXIHzQy5Q==","signatures":[{"sig":"MEQCIFniyRd/0VOcs48KjJgaN7hkW3Wvnl74g2pnHa+zX0+pAiBFtxWtUPMxU5jOsQW97hPUbFI7n8VSPHRWz9Ei0M5Peg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5835532},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"938f1586ca9adab142346ac0bb489036f350a445","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.2_1788414206445_0.9140593334921088","host":"s3://npm-registry-packages-npm-production"}},"0.47.3":{"name":"@odla-ai/chapter","version":"0.47.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"bd51ffded5bed9e1314064f32e23d0b4a3281621","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.3.tgz","fileCount":37,"integrity":"sha512-6V2BjdyK32+wYccP07YTcaeueBXunHvJ8ZOT1Q4ZbOxGQw8du5PbQIZhbouwTFPufMJZ5fvDKF9d99M04TkOHg==","signatures":[{"sig":"MEQCIGHGIwQWAlIEjEbfUxtF2tpzSA0CR5Fy2YzDCEHgyScQAiAEcidsZKOLX4Qg29USmgQnrQKgrKHEdoZ2GUgC0BhAzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5848305},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"8d1cf13c35e4d867cb4e1608932af913d375d421","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.3_1788458075570_0.3544718103983395","host":"s3://npm-registry-packages-npm-production"}},"0.47.4":{"name":"@odla-ai/chapter","version":"0.47.4","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.4","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b6242d9c9b8fcd64bd7fa419aa11d61e441583fd","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.4.tgz","fileCount":37,"integrity":"sha512-LmcKDwylEN/9FHhan1KKynHiitcUQShuxQADwMXL5TCT1i0C3YzzWv9XHO4PSuUfPsrXLHvK/MnQ01URHcdWOw==","signatures":[{"sig":"MEYCIQDVUoVCL0dTjxaiK2/W02r9Io43M0qIINB2mokfPGtlbQIhALdI2guetgeVjBX1DacbsEWmvUkm2D8x9vv3z5AUKlGI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5851901},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"0748deef0a92b8b41ab2aee2b634a2bdeda4adb8","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.4_1788463421497_0.12532358475971384","host":"s3://npm-registry-packages-npm-production"}},"0.47.5":{"name":"@odla-ai/chapter","version":"0.47.5","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.5","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"f28cfac120c30defc90cab0bd9a94369001a7431","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.5.tgz","fileCount":37,"integrity":"sha512-YUgaK6/d/shUJSFvGpt4roStESxp0/+BBc4b+t87c3yOdQvRNgZblBkrsFSOqKQrYr0I6Kf77dzGojwXuIvY4w==","signatures":[{"sig":"MEUCIDTPeNXwixQ6fi2WOKKfPKu1Zq+YtoI0VLBQjr99zngBAiEAs61ZXtS4I7l++UK5h+FoKc5tv31DxUoMaSCtduyFWcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5904333},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"3e3d09f9e16c9975af0f299f62aadc0d198dae4d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.5_1788469841866_0.5472133860239965","host":"s3://npm-registry-packages-npm-production"}},"0.47.6":{"name":"@odla-ai/chapter","version":"0.47.6","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.6","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b775bd86ae1ab931070de006d3a4c88ff878e712","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.6.tgz","fileCount":37,"integrity":"sha512-TapDC/ZNVMRy204VgwXXP/1wF1IzfIf7M+CxVtz3E3SVtq5qoL2cJAAwpCxu9l6XVraIIbbhmO5LXbjFzttZSg==","signatures":[{"sig":"MEUCIQDmyJEos5zUiP85BZOGB3zDt0P5MI6qlgAi6n85eodBrAIgKENuuQ6q4PuYemaT9wGHGt/r5mBbPLQpk0Xva5LEnWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5975585},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"a6f36515ed3d355ad0713e5652e3a4acca6504b3","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.6_1788475038656_0.04106374914514466","host":"s3://npm-registry-packages-npm-production"}},"0.47.7":{"name":"@odla-ai/chapter","version":"0.47.7","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.7","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"e2e2547547d45988e10fa1464bad289ba4597fdf","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.7.tgz","fileCount":43,"integrity":"sha512-hEVqSZVJX0S9w2WTFQoGqXuxYiTHRYlVuloJbUARz/YEdHf4H53Wea8kdTpJRvsYD5a6feWwFzux9Sh7K0JUFg==","signatures":[{"sig":"MEQCIGd7hvS86jNxJAvYuRQJIh97iIDrlMzZBH1LjvQbz/ZjAiBxBpGQpqFAb5yPd/J/i/sYMtMvZxV0ZuG6GdtcLMmsCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6088363},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"66ba01e20265c7871268d9e569ea69c0980c6f6d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.7_1788492900038_0.22896519758644196","host":"s3://npm-registry-packages-npm-production"}},"0.47.8":{"name":"@odla-ai/chapter","version":"0.47.8","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.8","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"bc46d9e50d5ac8ce3f30e9017247d61409d54c46","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.8.tgz","fileCount":43,"integrity":"sha512-+LAO47QEVd+Ij5y5Kr241RZFKaiLCG3G17YCM3NduZTTEakIgiYDzDQnr0TIdmCKlAwN9UbWvaMiAOtQFL8FSQ==","signatures":[{"sig":"MEUCIGNd4euaZQ8mzVHQ9VKjrIhifla6QoyjpC48XH2fjL7MAiEA+ghgUuekq7Kb59vyfCdnAcq//TKm+ysFKS8udr4f19c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6122768},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"ff91eeb40e754fd498829e5148d33ee122f9edb4","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.8_1788499850458_0.20647084208535915","host":"s3://npm-registry-packages-npm-production"}},"0.47.9":{"name":"@odla-ai/chapter","version":"0.47.9","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.9","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"8d8527ff635fc97599972900df0b973bb84fc10b","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.9.tgz","fileCount":43,"integrity":"sha512-h3IuN3ko4YHoom/8DMLvihqBzWBIWN6jdCyiPGLycNpSUgVOFLACKAnKjA3JAFLFmS5xqLSqpnl/aoeOFw0H2g==","signatures":[{"sig":"MEQCIBBHzkvDjwyal0gfp40VPV4rsPTr/iiljkY3mzYRdpSyAiA1A6tXI+lzT5Fh3VDhRdwEwxMYgZeR2MJsREylrM6Q3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6156760},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"60f937c368b13ad79af4b0376182660e1c479d0c","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.9_1788503446294_0.38897522694417375","host":"s3://npm-registry-packages-npm-production"}},"0.47.10":{"name":"@odla-ai/chapter","version":"0.47.10","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.47.10","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0ff1677476c58a7ccd61d7f5031175b502eb99fc","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.47.10.tgz","fileCount":43,"integrity":"sha512-4KZx8+XU+U8QgkIs2DDaIrt+fH9Acqld3+tz0wI0oZE69j+iEbvh2CJd/C5SK4WovRTezkQfj70gGwMpHjhqew==","signatures":[{"sig":"MEUCIG+3LhPqRREm5NjsbLLhjJjegDLyKEa+F6KmpQ7FzhUXAiEA2em7RBm21b1GTIbf4u0Q9mnf+7Fez3Mvpo20Ami+tWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6192752},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"dfcc9c5dfe69b66fb4ddf208bf7277954ea8b6f5","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.9.2 <0.10.0","@odla-ai/stripe":">=0.1.0 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.9.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.4.1 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.47.10_1788566069166_0.6545266120981801","host":"s3://npm-registry-packages-npm-production"}},"0.48.0":{"name":"@odla-ai/chapter","version":"0.48.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.48.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"9834bae0a08481d00a3fe3f7abb115a97d2bcca6","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.48.0.tgz","fileCount":43,"integrity":"sha512-3CpVFzOYPte9v81Ize/ls9EG0mgBt1TTh/2+lQ6kheSHjxU0SPaxRVgoXDKRpsNohmn7Ax6crnk7h5Xg08l22A==","signatures":[{"sig":"MEUCIQDnZ8bmtI2igZjf0ewXwb1Y7m/IFr3IUz7Q5ro5p8caqAIgJxtqKD+NIIWbmFpspRh9EQd3lRy49SDxD2mLJGnqUzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHkRyPamF3RJ1TeXK2/M5umFLKP5ZBIZlLkDoN97TjniAiEAyjX93wEVKQ6U0ku86jnsngLoTN3n/L9q7ZXbdS/xaAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9363401},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"d5f6d4c19cbe52ddf33bbf5358ca124a89fec04c","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.48.0_1789357679417_0.3993752332434095","host":"s3://npm-registry-packages-npm-production"}},"0.48.1":{"name":"@odla-ai/chapter","version":"0.48.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.48.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d28f77e9558d02267a939c39f5bd7b34cdc3dfd3","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.48.1.tgz","fileCount":43,"integrity":"sha512-EpzhKdVx7jaISTqzsvfo2q4Irjge2uc/8XbEsDZjH76UPk8W1HH2i1cCs5hDraXQk1NEY+fk3MS3yZp1SSzv/g==","signatures":[{"sig":"MEUCIHu+sxIq9dtXXVm3qJSzyOfD4cNGd5pWIRt55VK4G4jiAiEAvvDsgx7D7RMdYVl5PkCtFnCX7p/W5AEw7XdMGkw8C2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDhzDMk+WGRmXcpCiluDv+65ZLglb+bODrScSDrh7kSNwIhAOFFkl1jzUC6tqidizdmfD1r6rxTTQlt1ya3XKpXztRQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9392477},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"97fa1a0da950f698081416ba9c5e9e617e99f40e","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.48.1_1789481749606_0.3014704492365172","host":"s3://npm-registry-packages-npm-production"}},"0.48.2":{"name":"@odla-ai/chapter","version":"0.48.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.48.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d11721d33795b31cfe59b610dafb198580829fa8","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.48.2.tgz","fileCount":43,"integrity":"sha512-wSpHhsQdQQrLS/AC1flrCytr9ZG8WV3Ijf0qNXwyKxoNR7SyvCrt6hrdXR2tcvbPFQG3ad5v0+T6edc4jbjZ7w==","signatures":[{"sig":"MEQCID4+AxGGYCkZLd1lLcxyjBBW2lHzkgU1fMQ3BOumOghmAiARgMrDLd/pA8eHI5yjjaNxd2ee76D7LdMjPKAq2qivaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCH1CWhXL2AWoogfrBdvxvAYLX30xWUfnX6y90IGOElNsCIQCPnjAPAZ00Hp6LT7orxwweNsmRFp8EAnY/okBiKzRlUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9401080},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"b1af92618d907406dc9c110459c5979af6abe6be","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.48.2_1789484649438_0.34636349678257194","host":"s3://npm-registry-packages-npm-production"}},"0.48.3":{"name":"@odla-ai/chapter","version":"0.48.3","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.48.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"ebcad0e7441366a0f11f82354a5d31e7b334be9e","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.48.3.tgz","fileCount":43,"integrity":"sha512-+u4SiRPSomR9ZYVKqu0rLZTLY7Wf5FCn4ILrJShH92Vd6JQwicSIYTOCqdchTdpKgQeuApI4thfHHfx1weeWCA==","signatures":[{"sig":"MEQCIGi9EKv5UNm2luUNgyoeF8UYpOAd6tUnPOz2DXdoaQOHAiBhMqHJ1UP7jEAxX5YEbcBYuYYrUOlQajW71ok0Pr7dcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC8+nCkZXMQt6xbqTqLi0/HyvkpUK/rsJyQA8V9ZkZeQgIgClYq1PrcVmI138cKlTSpUaVsO14TWzwJ+CmRVP0yNpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9402118},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"8e78bc169d63f440490f54a3bcca158c43654239","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.48.3_1789489540145_0.3452046379881002","host":"s3://npm-registry-packages-npm-production"}},"0.49.0":{"name":"@odla-ai/chapter","version":"0.49.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.49.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"d8eaf81ff008a260e80a9547fe5a54e36f5cda49","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.49.0.tgz","fileCount":43,"integrity":"sha512-TKbcar5OwAkpLQeqh8DM4n9EnsG8umAOBMOC493Inb+3W9iXgTao+8MkFX2i1yo9MYPItQzH318RNYJK3p7QaQ==","signatures":[{"sig":"MEUCIQCqv9x8/3BMgkp+B8zzK/gRkSatVV13TFNqL9U1Um4fXQIgEDpFWkaJzjx1f3UXle/il2y/EDtqG9wNh585irLynT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDMXDr7jdz8izCmcE7SNxvNJcGTKEjrE/FCtsNEoU39RAiEAhbqSD9ga+6ZW6kQ5WA4C3f1JMrFVfl8IpjBi9T8Gh0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9865637},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"eb21d03be6266c9abbaad4de64fe6b7a08f5ed14","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.49.0_1789527588996_0.6323432859216831","host":"s3://npm-registry-packages-npm-production"}},"0.50.0":{"name":"@odla-ai/chapter","version":"0.50.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.50.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"0f1bd6d1fc63a68423920b30ecc896a8fc1fbfff","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.50.0.tgz","fileCount":43,"integrity":"sha512-YnmeaQRIta6H4U8Zw77B5qP4XcvMNoqwx71i+h8WHQiFmVNwnjh0nU/8CVdVMsHxtGnmgxs5moCLWZbDFMHTOg==","signatures":[{"sig":"MEUCIHmGXtskE5wSmjqeq1JBHs5Pn8h5RuHDsGoCabWh55YIAiEA7Au3Ey09hYueoI61/kxZO0cqDRE6PKqqaxWFrJSUwRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGGF1ikLEx20t+zTyU/JiMn3OwZsacIjkH45whKd089hAiA8Y74/tyaFBswfU6bAa2MYzY28i7D6hXJvOcT3FTPPbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10045661},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"c8421f25c7bc88ce2cdf244d456a27d50cb72923","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.50.0_1789861735507_0.9707268972469185","host":"s3://npm-registry-packages-npm-production"}},"0.51.0":{"name":"@odla-ai/chapter","version":"0.51.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.51.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"959e73fba675bc094ca0a3b578ba894567126764","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.51.0.tgz","fileCount":43,"integrity":"sha512-wEBifpd3d0rjVGPs9R6vb7Nr0XOs4VlTmZZzQCC11L95TKBA0pXKIETTvW/J32Yps51wgiBivcHWtKzuVApdZA==","signatures":[{"sig":"MEYCIQCTgtRNlTcexqRnRBCUD1YTBuQeESQgQPQx5aE2tcTtTAIhAK8GP0ihRpzbvqqN88WjtxO5vIhBOFT5RCAfjn91/e+f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICpYDUp9gBE1Od3QQkYIPsxjqX01fLXN8HI1TWc8rm5YAiEAyS0OBoLdK/DMs6EfNgYEGYpyGMGCUebPqfPXwFZYcfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10076709},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"64198e8a179f56b7a7d328e3b0fc968d9537a3c5","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.51.0_1789864539567_0.9548528552743061","host":"s3://npm-registry-packages-npm-production"}},"0.52.0":{"name":"@odla-ai/chapter","version":"0.52.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.52.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"45cf1f5aa7354a03c7e10e24883d9c89e9861073","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.52.0.tgz","fileCount":43,"integrity":"sha512-XwcxejzU5eVPU44czH6C8NVPs238Elp0s+tbzMP4vyP+usXtLDrCRY/O8ilwYWJLd9AdZTAzj30iJ0iKRZIhuA==","signatures":[{"sig":"MEUCIQDRR+yw7XotyjgX9F1Faazu/j70jMRHpWQzLsrJfN6cDAIgWdQrgwDDDM6beNJSbmVCxTr1VvupAS9vdOn89E3rf04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDQBKPsMytwhuUGPDezHvI7Z0fOK0DAci7rm1fYjPhdcAiEAtyAwdcmXS80kPfmAyE3IHGBIGYjGBAPx65reZhkwxxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10337815},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"8a4c420fadc60004a8d006ceb5bc54b0b2ba8c6d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.52.0_1789868981535_0.6600427813762573","host":"s3://npm-registry-packages-npm-production"}},"0.52.1":{"name":"@odla-ai/chapter","version":"0.52.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.52.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"481b3db71b650dc60263187d65d8789e20c69cb3","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.52.1.tgz","fileCount":43,"integrity":"sha512-yvtZTnK4lovw7ewMgA824kzxBuMraDmG/8Hn+3v/Nw3Do8fT+pALDOmSAmvfPAVmq44hqivL/7u90MgrDRz5hw==","signatures":[{"sig":"MEYCIQD9coDyUomavmQkKoQwu3hO3bMnORts9EhoJLShsGKWTQIhAP8+WRo335v5KRFRkjdWeGc7wemCOtg0TZUaTQjFJj+D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDFnbyya+rRz+N5EtSI0ywGDDnjbFX2eCVkkWf/wM01yQIhAMqIgSlrnLiW6TJt2cLSdd3l52NmlTwX7pYYqCDn/4IG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10341730},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"5a2cd8521254591c22e093ddb04baa89d1077a8d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.52.1_1789876181054_0.9538771422317145","host":"s3://npm-registry-packages-npm-production"}},"0.53.0":{"name":"@odla-ai/chapter","version":"0.53.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.53.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"db6c9903acd1e64de92283d1d9fe17b3e26245ac","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.53.0.tgz","fileCount":43,"integrity":"sha512-9gfQHdWtzCBkfZ7PAOFYgvfyglWx3NeswUkDtAg5m7Fj9RCWZPDtFoBksR5dx5/ElWznR21/4CnCezn3m4oVYg==","signatures":[{"sig":"MEYCIQCdplEWef8uM/9oA/Awx/aYplaISswxVt4MKxllgNSoAgIhAPzZa/xSwJXjPXl9HeD/x61uX8AP+EJViCiDuCh7aQe4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUrVeCQJ0XdnQI3KXq3CIlRDOZeBrPf3N/c2v74mVgeAIhAOVYSanoKusKONeYvBJIW+RHwNZ5Q1Wpuu7EuxGHWS2W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10427578},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"c3a90f4d931528252e09453a345365e21def7620","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.53.0_1789929639172_0.21062336452555463","host":"s3://npm-registry-packages-npm-production"}},"0.54.0":{"name":"@odla-ai/chapter","version":"0.54.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.54.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"50626a710aae5374437f07aa9c551fc8f65aa46a","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.54.0.tgz","fileCount":43,"integrity":"sha512-ZU2Uu2QSu6KZb7kgoMAbICDkHoUvfIAk29s1qQaWnpiM4rJTIdicMkJ+sE7EdlZvzhZzGf7KBrlIn3+0AfgraA==","signatures":[{"sig":"MEUCIAsFEPGl18QeV0T+DxXY6xH6vlgUH08Ed7pfjXOxFJWiAiEAlaCT54Q+O6FC/ohORTbTc35LBNhjR1I6l0Fu51NQASQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH8zzoIbwb/CV2Szev5s1Ymln6G8oxNcMV69ALBwUCU0AiEAhpEan+LignT7YAvxFWGhbKNqUJsBdo+aUZfB1QTKBw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10552750},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"0e3a47387c5c1c756f104898aa9aa6e0d80eaf98","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.54.0_1789940646416_0.8400172056256894","host":"s3://npm-registry-packages-npm-production"}},"0.54.1":{"name":"@odla-ai/chapter","version":"0.54.1","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.54.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"43eb7c1d523a2f05b63ea4b4b8f712350f7a0774","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.54.1.tgz","fileCount":43,"integrity":"sha512-Q44i/HDIDIedYa95GNWhvTdcbcP6qdZjHcTtxBIsmgTS8KtHHKKsWLo7J1vDM0WySJXiRWiu7eC0hAP1J3iJlA==","signatures":[{"sig":"MEUCIQCupf9qJUaGKPkEefKcwg60x9CeyyM97IwMuwbchG6kPgIgYvsFmI0cpoiVZq18Hyu4GA/lumyiekxd6HfVuL1c7kY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDXwG977aFp7iJZ1dASWzXg0yRnS2J3cHQJrLox9Uw9OgIhANNF9SerEDmDMLpWxEC+7N1Knrq/I8Inv8NOn65d68A0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10554149},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"4f69210af295d5817ab2a60f53ccefc8f1cc3639","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.0 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.54.1_1789955726729_0.8624989392945823","host":"s3://npm-registry-packages-npm-production"}},"0.54.2":{"name":"@odla-ai/chapter","version":"0.54.2","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.54.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"6dd86fc2f3795d908dfa159638031a2753543a22","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.54.2.tgz","fileCount":43,"integrity":"sha512-Igua/YTb3qFTGfiB8Ly84bwIMIpGBzbZtGiJyPlBrblBGjJ09+V6k+fryfa2S2oS0KI9ugOKd4QzoYJbZ1yb+A==","signatures":[{"sig":"MEYCIQD6WdxGpwpwi/GPV2J1U8LkSZHOnqOqmqIq8yWt4+yd7wIhAI2hoNIJKOJkipOCI/00pK1A9nMiPbmhnMHqUF6wjFNQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfmmNykVvkCIpp8TyozxomdnrsAxWqgEJhj+plgmmK1gIgJR7/+H2dRYRCqRY1NFIDXZ3Ch3qJU+WGajpJP2Ggces=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10700291},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"5b6160c733a2a0c570559e5e9903abb8f62e2165","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.1 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.54.2_1789966765523_0.1483048692516018","host":"s3://npm-registry-packages-npm-production"}},"0.55.0":{"name":"@odla-ai/chapter","version":"0.55.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.55.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"e5d592f411f3448358172fb973b72d629855b1e2","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.55.0.tgz","fileCount":43,"integrity":"sha512-JSyDaNUq3tYaQIHxzzUw9DGCU8t6uCrKtHvem/lTiJRfziqGQRSsNTXbrhGBB8/SykWaIfxmD/FkBkyqtEE9qg==","signatures":[{"sig":"MEUCIGjBAhTwOQ6MHcdqqCxmKLr+fKnzuKzP+MomyJkc1InsAiEAyl9KSgl70p0YM9ML0xku/FFOQWz0C2NJhblPElph9ig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCKN103C9XTBQ5r9jjMG5mq3q1NxjDzOgXZEzyL/aUYNwIgQZqAhlr5qCPcEsvAoYz3wbyZMbrpdCAvKfa7Jp6PfAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10939761},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"e436f16aae42071556d26ee24fefff1468613c63","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.1 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.55.0_1789967462747_0.5210372211343506","host":"s3://npm-registry-packages-npm-production"}},"0.56.0":{"name":"@odla-ai/chapter","version":"0.56.0","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"license":"MIT","_id":"@odla-ai/chapter@0.56.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/chapter","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"a8671692757ca0f5ae8be5124b6ee13fe528904c","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.56.0.tgz","fileCount":43,"integrity":"sha512-kvObkoc5YAhO/ymGeuy1SQ2eHJCgGc6jYUq4nJm/bpZxum+v9QIpP5L2aSfVrnO+SSoUr1lVnFYue8Zsdo30sw==","signatures":[{"sig":"MEQCIDewVyv85xkLh2/BjHGv6vTKYu8jtVnopd9Sqh/dsC1QAiBBBagTsa/fuvfUwDDcMFuKVjM/EpggUVBV06SC2aSTlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3RBFKDJx2FhrLCBrVszD71mp3t009/jZh3aZh5KQE3QIhAK7j1IFSwQPEpnmyAPmbNlb+1NdsWbe46LlXVi7C1fy0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10996051},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"573f77d0de61493ed55d67d5cf54820a93b0672c","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.1 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chapter_0.56.0_1791001374810_0.914257741930806","host":"s3://npm-registry-packages-npm-production"}},"0.56.1":{"_id":"@odla-ai/chapter@0.56.1","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"f23b4c59f78f7615b4eb7078eec859c2923691b9","tarball":"https://registry.npmjs.org/@odla-ai/chapter/-/chapter-0.56.1.tgz","fileCount":43,"integrity":"sha512-f90ZpVQUkYfAM2ZPxJvij8J98Xixlr8AaG9ZGznbBge5Say73uxLBet5yvcrQCyZDG8y3tXndHIdPshtdNeCrQ==","signatures":[{"sig":"MEUCIQCeul7syYgjB9z5NBhHG8FOgqayv9cRJ3RaChDwaqtbuQIgGsnPpaIkNfD26eNNDgxE1srRCeyrpNvbPA0OgKQAdG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEdOUUkuureOYH57HvpFDiBGqWORiNFuJZbxX0WUCDg0AiADbGCFkiPQTKL2udcMNJ8p55E+tU4LHyUtaQCY4LlvfQ=="}],"unpackedSize":11011524},"main":"./dist/index.cjs","name":"@odla-ai/chapter","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","require":"./dist/worker/index.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","require":"./dist/testing.cjs"},"./ui/admin":{"types":"./dist/ui/admin/index.d.ts","import":"./dist/ui/admin/index.js"},"./ui/member":{"types":"./dist/ui/member/index.d.ts","import":"./dist/ui/member/index.js"},"./package.json":"./package.json","./ui/conditions":{"types":"./dist/ui/conditions/index.d.ts","import":"./dist/ui/conditions/index.js"}},"gitHead":"720562ef00b66e69a00b8a57de7d2dc4e5c3730b","license":"MIT","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"version":"0.56.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c2c24736-eeb1-4a10-94e3-4c0a1e910490"}},"homepage":"https://odla.ai/docs/packages/chapter","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"_npmVersion":"11.6.2","description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","directories":{},"maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"jose":"^6.2.3","@odla-ai/crm":">=0.10.1 <0.11.0","@odla-ai/stripe":">=0.1.1 <1.0.0","@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.1.0","preact":"10.29.7","vitest":"^4.1.9","typescript":"^6.0.3","@odla-ai/db":"*","@odla-ai/ui":"*","@types/node":"^26.1.0","@odla-ai/o11y":"*","@odla-ai/calendar":"*","@odla-ai/auth-clerk":"*","@vitest/coverage-v8":"^4.1.9","preact-render-to-string":"6.7.0"},"peerDependencies":{"preact":">=10.29.7 <11","@odla-ai/db":">=0.14.0 <1.0.0","@odla-ai/ui":">=0.20.0 <1.0.0","@odla-ai/calendar":">=0.2.0 <1.0.0","@odla-ai/auth-clerk":">=0.5.0 <1.0.0"},"peerDependenciesMeta":{"@odla-ai/db":{"optional":true},"@odla-ai/ui":{"optional":true},"@odla-ai/calendar":{"optional":true},"@odla-ai/auth-clerk":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chapter_0.56.1_1791003967929_0.8188656662388292"}}},"time":{"created":"2026-07-21T01:58:19.117Z","modified":"2026-10-03T05:06:08.330Z","0.0.1":"2026-07-21T01:58:19.414Z","0.0.2":"2026-07-21T04:50:16.349Z","0.3.0":"2026-07-21T18:58:55.481Z","0.4.0":"2026-07-21T21:36:54.265Z","0.5.0":"2026-07-21T22:28:39.661Z","0.7.0":"2026-07-22T00:22:14.866Z","0.8.0":"2026-07-22T04:08:27.177Z","0.9.0":"2026-07-22T18:01:50.008Z","0.10.0":"2026-07-22T20:55:40.097Z","0.10.1":"2026-07-22T23:01:23.011Z","0.11.0":"2026-07-22T23:39:53.060Z","0.12.0":"2026-07-23T00:46:56.162Z","0.13.0":"2026-07-23T04:36:53.910Z","0.14.0":"2026-07-23T05:05:59.696Z","0.15.0":"2026-07-23T14:33:53.003Z","0.15.1":"2026-07-23T15:36:34.378Z","0.16.0":"2026-07-23T18:58:58.727Z","0.17.0":"2026-07-23T19:20:48.843Z","0.18.0":"2026-07-23T21:43:05.865Z","0.19.0":"2026-07-23T23:04:39.633Z","0.20.0":"2026-07-24T00:21:21.832Z","0.20.1":"2026-07-24T01:11:58.671Z","0.20.2":"2026-07-24T01:43:44.069Z","0.21.0":"2026-07-24T17:12:11.061Z","0.22.0":"2026-07-24T18:43:06.839Z","0.22.1":"2026-07-24T21:09:01.421Z","0.23.0":"2026-07-24T23:37:55.130Z","0.24.0":"2026-07-25T20:28:42.085Z","0.25.0":"2026-07-26T03:46:46.806Z","0.25.1":"2026-07-26T04:32:51.510Z","0.25.2":"2026-07-26T16:59:04.446Z","0.25.3":"2026-07-26T22:34:36.671Z","0.25.4":"2026-07-27T14:20:42.079Z","0.25.5":"2026-07-27T16:00:42.496Z","0.25.6":"2026-07-27T18:09:11.593Z","0.25.8":"2026-07-29T19:07:17.888Z","0.26.0":"2026-07-30T19:56:20.803Z","0.26.1":"2026-07-31T04:06:40.455Z","0.27.0":"2026-07-31T06:02:49.173Z","0.27.1":"2026-07-31T06:47:28.639Z","0.28.0":"2026-07-31T16:53:15.979Z","0.28.1":"2026-07-31T22:53:53.463Z","0.28.2":"2026-08-01T15:47:21.810Z","0.29.0":"2026-08-01T17:05:30.859Z","0.30.0":"2026-08-07T16:14:08.178Z","0.31.0":"2026-08-12T03:52:03.183Z","0.31.1":"2026-08-12T18:30:50.121Z","0.31.2":"2026-08-16T03:58:18.620Z","0.31.3":"2026-08-16T22:15:09.115Z","0.31.4":"2026-08-19T20:34:20.642Z","0.32.0":"2026-08-23T21:48:01.146Z","0.32.1":"2026-08-23T23:47:23.703Z","0.32.2":"2026-08-24T01:46:08.104Z","0.32.3":"2026-08-24T03:42:21.753Z","0.33.0":"2026-08-24T23:54:26.392Z","0.33.1":"2026-08-25T02:54:37.357Z","0.33.2":"2026-08-25T03:46:19.288Z","0.34.0":"2026-08-25T23:27:36.600Z","0.35.0":"2026-08-28T03:32:07.360Z","0.36.0":"2026-08-28T21:58:01.980Z","0.37.0":"2026-08-29T03:16:10.929Z","0.38.0":"2026-08-29T03:49:22.405Z","0.38.1":"2026-08-29T18:31:54.944Z","0.39.0":"2026-08-29T19:17:52.617Z","0.39.1":"2026-08-29T20:07:56.051Z","0.39.2":"2026-08-30T00:00:08.170Z","0.40.0":"2026-08-30T05:03:27.387Z","0.40.1":"2026-08-30T17:53:26.648Z","0.40.2":"2026-08-30T18:26:15.210Z","0.40.3":"2026-08-30T21:23:51.158Z","0.41.0":"2026-08-30T22:16:40.596Z","0.41.1":"2026-08-30T23:07:13.755Z","0.42.0":"2026-08-31T00:59:32.282Z","0.42.1":"2026-08-31T03:13:06.065Z","0.42.2":"2026-08-31T03:50:49.877Z","0.42.3":"2026-08-31T04:47:17.611Z","0.42.4":"2026-09-01T23:03:05.178Z","0.43.0":"2026-09-02T00:57:42.619Z","0.43.1":"2026-09-02T01:54:39.576Z","0.43.2":"2026-09-02T03:05:02.616Z","0.44.0":"2026-09-02T17:12:48.351Z","0.45.0":"2026-09-02T19:19:39.095Z","0.46.0":"2026-09-02T21:12:09.228Z","0.47.0":"2026-09-03T03:09:04.791Z","0.47.1":"2026-09-03T04:40:38.309Z","0.47.2":"2026-09-03T05:43:26.676Z","0.47.3":"2026-09-03T17:54:35.783Z","0.47.4":"2026-09-03T19:23:41.723Z","0.47.5":"2026-09-03T21:10:42.035Z","0.47.6":"2026-09-03T22:37:18.881Z","0.47.7":"2026-09-04T03:35:00.214Z","0.47.8":"2026-09-04T05:30:50.745Z","0.47.9":"2026-09-04T06:30:46.473Z","0.47.10":"2026-09-04T23:54:29.349Z","0.48.0":"2026-09-14T03:47:59.591Z","0.48.1":"2026-09-15T14:15:49.763Z","0.48.2":"2026-09-15T15:04:09.627Z","0.48.3":"2026-09-15T16:25:40.312Z","0.49.0":"2026-09-16T02:59:49.139Z","0.50.0":"2026-09-19T23:48:55.633Z","0.51.0":"2026-09-20T00:35:39.744Z","0.52.0":"2026-09-20T01:49:41.700Z","0.52.1":"2026-09-20T03:49:41.210Z","0.53.0":"2026-09-20T18:40:39.324Z","0.54.0":"2026-09-20T21:44:06.546Z","0.54.1":"2026-09-21T01:55:26.924Z","0.54.2":"2026-09-21T04:59:25.701Z","0.55.0":"2026-09-21T05:11:02.866Z","0.56.0":"2026-10-03T04:22:55.092Z","0.56.1":"2026-10-03T05:06:08.091Z"},"bugs":{"url":"https://github.com/cory/odla-ai/issues"},"license":"MIT","homepage":"https://odla.ai/docs/packages/chapter","keywords":["odla","odla-ai","chapter","membership","members","crm","worker","cloudflare"],"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/chapter"},"description":"A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"readme":"# @odla-ai/chapter\n\nA foundation for **membership sites**. One `defineChapter({...})` config resolves\nthe shared application engine — join/apply → Stripe membership → Google booking\n→ member area — plus an admin console and CRM, or an **admin-only hub**, on\nodla-db + Clerk + [@odla-ai/crm](https://odla.ai/docs/packages/crm) + calendar +\nemail. The host still builds the public pages and routing. Chapter supplies the\napplication mechanics plus an optional, versioned membership-card renderer so\na hub preview and follower site can render the same reviewed content exactly.\n\n```sh\nnpm install @odla-ai/chapter\n```\n\n> **Agentic experiment.** Built and maintained by AI agents from bounded runbooks\n> with human review. Review the documented guarantees before relying on it.\n\n> **Pre-1.0.** The member surface, operational worker, standard admin console,\n> and leader → follower record delivery ship. APIs may still tighten before 1.0;\n> commit the lockfile and run schema/route contract tests after every update.\n\n> **Ask the runbooks first.** odla's operational procedures live in a database,\n> not in this file: `npx @odla-ai/cli runbook ask \"<question>\"` returns the current\n> steps, and unlike anything written here it cannot be out of date. Use it before\n> searching the web or working from memory. This README and the JSDoc in the\n> shipped `.d.ts` are the version-matched **API** reference; a runbook is the\n> **procedure**. Most tasks need an answer from both.\n\n## Agent runbooks\n\nThe API examples below are not a website-build plan. An LLM or coding agent must\nchoose and read one of these version-matched runbooks from the installed npm\npackage before changing a site:\n\n- **Empty repo or a genuinely new product:** read\n  [`runbooks/greenfield.md`](./runbooks/greenfield.md) completely. It covers the\n  brand brief, public information architecture, Chapter configuration,\n  member/admin surfaces, Cloudflare/ODLA setup, and visual + journey acceptance.\n- **Existing or deployed site:** read\n  [`runbooks/adopt-existing.md`](./runbooks/adopt-existing.md) completely. It\n  preserves the existing product, URLs, visual identity, data, auth, jobs, and\n  rollback boundary while Chapter becomes the primary implementation.\n\nDo not combine the two flows. A provisioned canary is not a completed adoption,\nand a greenfield build does not need migration machinery. Both runbooks keep\nsecrets out of source and require development proof before production.\n\nThe repository also contains a build-tested\n[generic Preact reference host](https://github.com/cory/odla-ai/tree/main/examples/chapter-site).\nIt is the executable companion to the greenfield runbook: site-owned global\nnavigation, public routes, brand, voice, join fields, and member framing wrap\nChapter-owned application, admin, CRM, payment, and scheduling behavior.\n\n## The shape\n\n- **One config, two profiles.** `defineChapter()` validates at import and returns\n  a resolved engine. `mode: \"chapter\"` enables the complete public-member\n  application profile; `mode: \"hub\"` is admin-only and CRM-focused. The mode\n  gates the member/join/payment route surface; everything else (auth, CRM,\n  chrome, provisioning) is shared.\n  `chapter.brand` and `chapter.network` are resolved from this same config, so\n  the browser UI does not need a second identity or follower registry.\n- **The worker is the package.** `chapterWorker({ chapter })` is the whole\n  Cloudflare `ExportedHandler`. It serves `/api/health`, `/api/config`,\n  `/api/me`, `/api/crm/*`, `/api/network/{shared,snapshot,records}`; configured\n  leaders also get `/api/admin/network/{targets,push,rollup,records,notes}`. An enabled leader\n  formation intake adds `/api/formation/{config,applications}`. Chapter mode\n  adds the public\n  member surface (`/api/join-config`, `/api/join/resume`, `/api/applications`,\n  `/api/schedule/{slots,book}`, `/api/payments/subscription`,\n  `/api/webhooks/stripe`). The `/api/admin/*` handlers are registered in both\n  modes; expose only the sections compatible with the selected profile and its\n  provisioned namespaces. The Worker then falls back to static assets. Your\n  `src/worker.ts` is ~3 lines. Observability is a host concern — wrap it with\n  `withObservability` from `@odla-ai/o11y`.\n  Unknown `/api/*` paths terminate as JSON `404` responses rather than falling\n  through to an SPA document. Operational values that owners may change (prices, policy copy, email\n  templates, scheduling rules) are read at runtime from a single odla-db\n  `groups` row. Brand identity and build-time tokens remain in the checked-in\n  Chapter config.\n- **A route seam, not a black box.** `chapterWorker({ chapter, routes })` runs\n  your handlers *before* the built-ins (add routes, or override/alias a path),\n  each receiving the same context the built-ins get. The worker entry also exports\n  `createWorkerContext` + the `WorkerContext`/`Route` types, so a wrapping worker\n  reuses chapter's JWT verify, db client, and role resolution\n  (`verifyUser`/`makeDb`/`roleFor`/`isAdmin`) instead of duplicating them.\n- **Source-aware auth.** A JWT role-claim ladder (`provisional → member → admin`)\n  *or* an odla-db `admins` allowlist, plus a read-only `superAdmins` tier —\n  selected by `auth.source`, defaulting per mode. Escalation guards\n  (`canChangeRole`) are package-enforced.\n- **Correctness is packaged, not per-site.** Durably claimed email\n  (`sendTemplated`/`isAlreadySent`; ambiguous non-idempotent provider outcomes\n  require evidence-based reconciliation rather than blind resend), a non-prod\n  delivery fail-safe (`planDelivery`), stable application replay identity (one\n  UI submission key and the same resumable canonical id), status-never-backwards\n  (`canTransition`), Stripe webhook integrity (`verifyStripeSignature`) with the\n  verified Stripe events and refund reconciliation as the payment authority,\n  one-subscription-per-application idempotency, meetings-as-canonical booking (a\n  rebooking *reschedules* the event, preserving the Meet link), Google-edit\n  adoption (`reconcileMeetings`), and a one-way CRM projection.\n- **Provisioning is declarative.** `createChapterIntegration(chapter)` composes\n  the crm namespaces + the chapter namespaces (`applications`, `groups`,\n  `meetings`, `emailLog`, plus the auth tables) + a guarded group-row seed. Drop\n  it in `odla.config.mjs` `integrations: [...]`.\n- **Network movement is explicit.** A leader lists follower origins and\n  per-target field allowlists in `network.targets`; secret *names* live in\n  config and secret *values* stay in the tenant vault. The standard record panel\n  then shows “Share with …” actions for compatible people, businesses, deals,\n  or other CRM types. The receiver validates the payload against its own CRM\n  config and stores a structured origin row, so retries update the same local\n  record. Delivery state is structured too; display tags remain a migration and\n  cohort affordance rather than the machine identity contract.\n  Shared identity/business fields move; each site's pipeline, account, and\n  billing state remain authoritative locally.\n- **The UI kit, adoptable in pieces.** Three entries, split on the dependency\n  boundary so you never pay for what you don't use:\n  - `@odla-ai/chapter/ui/member` — **Preact-only**: `SlotPicker`, the date/timezone\n    helpers, `JoinIsland` (form → payment → booking), `MembersArea`,\n    `GiftPurchases`, `GiftCodeRedeemer`, `Rescheduler`, `PaymentStep`, `<BrandStyle>`. It never imports\n    `@odla-ai/auth-clerk` or `@odla-ai/crm`, so you can adopt a single\n    presentational component without the Clerk browser SDK. (A bundle-graph test\n    enforces this.)\n  - `@odla-ai/chapter/ui/admin` — the Clerk-gated console `ChapterAdmin` + the\n    workspace catalog. In chapter mode, `<ChapterAdmin chapter={chapter}/>`\n    defaults to just three top-level workspaces: Dashboard, People, and\n    Settings. Operational detail belongs in nested page tabs; CRM record\n    operations belong in record tabs. Pass `workspaces` to transform or replace\n    that information architecture. This entry needs auth-clerk + crm/ui.\n  - `@odla-ai/chapter/ui` — the full barrel, for back-compat.\n\n  Authored and shipped against Preact. Brand tokens\n  (`brandTokens`/`<BrandStyle>`) re-skin all of it from\n  `brand` (now light **and** dark, via `brand.palette` + `brand.paletteDark`).\n- **Voice is part of the brand.** `copy` is a recursively partial\n  `ChapterCopy`; `defineChapter()` resolves it into a complete `chapter.copy`\n  contract. Packaged join, member, and admin surfaces read that contract, so a\n  follower can own terminology and tone without forking behavior. Text remains\n  serializable; use render slots when the host needs markup or a different\n  composition.\n- **The host owns global navigation.** Admin defaults to `chrome=\"embedded\"` and\n  three familiar workspaces. Dashboard/Billing and Calendar/Email remain\n  link-backed page tabs; record operations remain record tabs. A host can keep\n  one site header around public, join, member, and admin routes without Chapter\n  introducing another top-level navigation model.\n\n### Theme tokens and scoped branding\n\nThe UI reads its colors from `--ui-*` design tokens whose **values come from a\ntheme layer, not `@odla-ai/ui/index.css`.** For an admin surface isolated from\nthe public site, import one scoped theme, the shared component sheet, and the\nCRM layout:\n\n```ts\nimport \"@odla-ai/ui/fonts/plex.css\";\nimport \"@odla-ai/ui/themes/paper/scope.css\";\nimport \"@odla-ai/ui/index.css\";\nimport \"@odla-ai/crm/ui.css\";\n```\n\n`ChapterAdmin` guards against this at runtime: if a `.panel` has no background\n(the theme layer is missing), it renders a **loud red banner** at the top of the\nconsole instead of failing silently. Set `brand.theme`, `brand.colorScheme`,\nand semantic `brand.tokens` / `brand.tokensDark` for normal configuration.\n`brand.palette` / `brand.paletteDark` remain the low-level custom-property\nescape hatch. Chapter scopes these overrides to `[data-chapter-admin]`, so an\nadmin brand cannot recolor the document root or vendor sign-in UI.\n\n`brand.accent` selects a named `data-ui-accent` family supplied by the chosen\ntheme. Each `AdminWorkspace` may set its own `accent` for a scoped page-level\nvariation. For a fully custom palette, compile the brand book through the pure\ntoken entry and adapt it structurally:\n\n```ts\nimport { compileBrandTokens } from \"@odla-ai/brand/tokens\";\nimport { chapterBrandFromTokens } from \"@odla-ai/chapter\";\n\nconst compiled = compileBrandTokens({ swatches });\nconst brand = chapterBrandFromTokens(compiled, {\n  theme: \"paper\",\n  wordmark: \"Example Chapter\",\n});\n```\n\nThis carries the compiler's complete light map, derived dark map, and invert\nmap into Chapter without adding an `@odla-ai/brand` runtime dependency to\nChapter itself.\n\n#### Packaged workspaces are styled by Chapter, through `@odla-ai/ui`\n\nChapter owns the styling of every workspace it ships (Admission, Builder\nLibrary, People, Settings, and the rest) and does it only through `@odla-ai/ui`\nform components and the `--ui-*` tokens the active theme scope supplies. A\npackaged picker is always the `@odla-ai/ui` `Select`, a native select carrying\nthe `select` class, so it takes the host's theme without any host CSS, keeps\nits accessible name through its `Field` label, and keeps native keyboard\nbehaviour. A guard test in the package fails if a bare select tag reappears in\na Chapter UI source.\n\nThe boundary runs the other way too. A host must not patch package-owned\nmarkup with its own CSS: if a packaged control looks browser-default, the theme\nlayer is missing (see the banner above) or the package has a bug to report,\nnever a selector to override. Any custom picker a host adds beside a packaged\nworkspace should be the same `@odla-ai/ui` `Select` (with `Field` for its\nlabel) rather than a bare element, so host and package controls read as one\nsurface.\n\n## API quick start\n\n```ts\n// src/chapter.config.mjs\nimport { defineChapter } from \"@odla-ai/chapter\";\n\nexport const chapter = defineChapter({\n  id: \"example-chapter\",\n  name: \"Example Chapter\",\n  mode: \"chapter\",\n  brand: {\n    badge: \"EX\",\n    wordmark: \"Example Chapter\",\n    tagline: \"Capital and craft for durable local businesses.\",\n    theme: \"paper\",\n    colorScheme: \"light\",\n    tokens: {\n      accent: \"#2f6f4f\",\n      accentStrong: \"#244f3b\",\n      accentSoft: \"#dfece4\",\n    },\n    fonts: { display: \"GT Sectra\" },\n  },\n  copy: {\n    join: { form: { submit: \"Start the conversation\" } },\n    admin: { workspaces: { people: \"Community\" } },\n  },\n  prices: { standardCents: 100000, foundingDiscountCents: 10000 },\n  policy: {\n    merchantDisclosureText: \"Processed and billed by Example Merchant on behalf of Example Chapter.\",\n  },\n  emails: { notificationEmail: \"hello@example.com\" },\n  account: \"none\",\n});\n```\n\n```ts\n// src/worker.ts\nimport { chapterWorker } from \"@odla-ai/chapter/worker\";\nimport { chapter } from \"./chapter.config.mjs\";\nexport default chapterWorker({ chapter });\n```\n\n```tsx\n// src/app/admin.tsx — brand + familiar workspaces come from the same config.\nimport \"@odla-ai/ui/fonts/plex.css\";\nimport \"@odla-ai/ui/themes/paper/scope.css\";\nimport \"@odla-ai/ui/index.css\";\nimport \"@odla-ai/crm/ui.css\";\nimport { render } from \"preact\";\nimport { ChapterAdmin } from \"@odla-ai/chapter/ui/admin\";\nimport { chapter } from \"../chapter.config.mjs\";\n\nrender(<ChapterAdmin chapter={chapter} />, document.getElementById(\"admin-root\"));\n```\n\n```ts\n// odla.config.mjs\nimport { createChapterIntegration } from \"@odla-ai/chapter\";\nimport { chapter } from \"./src/chapter.config.mjs\";\nexport default {\n  app: { id: chapter.id, name: chapter.name },\n  services: chapter.services,\n  integrations: [createChapterIntegration(chapter)],\n};\n```\n\nThat is the reusable application shell. Public pages remain site-owned: start\nfrom the approved product and brand brief plus `@odla-ai/ui` marketing\ncomponents. Do not copy a reference site's identity or fork auth, admin routing,\nCRM, payment, booking, or account logic to achieve a different brand.\n\nSet `policy.merchantDisclosureText` to the exact plain-language identity the\ncustomer will see on the charge or receipt. Chapter carries that text through\nthe public join config and renders it before the payment consent control in\nmembership and gift checkout.\n\n### Join and member composition\n\nFor a centrally managed membership page, validate a bounded presentation\ndocument against the live, server-authoritative tiers, then render it with\n`MembershipCards`:\n\n```tsx\nimport {\n  MEMBERSHIP_PAGE_RENDERER,\n  membershipPageDocument,\n} from \"@odla-ai/chapter\";\nimport { MembershipCards } from \"@odla-ai/chapter/ui/member\";\nimport { ThemeScope } from \"@odla-ai/ui/components\";\n\nconst membershipPage = membershipPageDocument({\n  schemaVersion: 1,\n  renderer: MEMBERSHIP_PAGE_RENDERER,\n  tiers: [\n    {\n      tierId: \"steward\",\n      variant: \"supporting\",\n      badge: \"Sustains the collective\",\n      benefits: [\"Everything in **Founding Member**\", \"The annual retreat\"],\n      callout: {\n        label: \"A word of thanks\",\n        bodyMarkdown: \"*You are the reason this collective can exist.*\",\n      },\n      ctaLabel: \"Fund the movement\",\n    },\n    {\n      tierId: \"founding\",\n      variant: \"featured\",\n      badge: \"Most members start here\",\n      compareAtPriceCents: 100_000,\n      billingLabel: \"a year\",\n      capacity: { total: 100, label: \"only\" },\n      priceNoteMarkdown: \"Your founding rate is **held for as long as you stay**.\",\n      benefits: [\"Live pitch nights\", \"A seat in diligence\"],\n      ctaLabel: \"Join the collective\",\n    },\n    {\n      tierId: \"associate\",\n      summaryMarkdown: \"Open to everyone, anywhere\",\n      benefits: [\"Founder pitch recordings\", \"The monthly member letter\"],\n      ctaLabel: \"Join for free\",\n    },\n  ],\n}, { tiers: joinConfig.tiers });\n\n<ThemeScope tokens={approvedChapterTokens}>\n  <MembershipCards\n    tiers={joinConfig.tiers}\n    document={membershipPage}\n    applicationPath=\"/apply\"\n  />\n</ThemeScope>\n```\n\nThe document controls tier order and bounded copy slots. It cannot author\nprices, free/paid state, tier identity, links, CSS, or HTML; those remain live\nChapter authority. Unknown fields, missing/duplicate tiers, oversized content,\nand compare-at prices that do not exceed the charged price fail validation.\nMarkdown is rendered by the safe renderer from `@odla-ai/ui`.\n\n`MembershipCards` is token-native, including `--ui-font-sans`,\n`--ui-font-display`, and `--ui-font-numeral` as well as the semantic color,\nsurface, border, radius, spacing, and shadow tokens. Its responsive layout and\ncomponent CSS are versioned with the renderer. A CMS preview uses\n`mode=\"preview\"`; the public page uses the default link mode. Both therefore\nshare the same component, document, tier authority, and token scope.\n\nThe same renderer can also replace the placeholder chooser inside\n`JoinIsland` without reimplementing selection:\n\n```tsx\n<JoinIsland\n  config={joinConfig}\n  renderTiers={({ tiers, selectedTierId, selectTier }) => (\n    <MembershipCards\n      tiers={tiers}\n      document={membershipPage}\n      mode=\"select\"\n      selectedTierId={selectedTierId}\n      onSelectTier={selectTier}\n    />\n  )}\n>\n  <ApplicationFields />\n</JoinIsland>\n```\n\n`JoinIsland` keeps application mechanics while exposing presentation seams:\n\n```tsx\n<JoinIsland\n  config={joinConfig}\n  renderStepHeader={({ state }) => <FlowHeading step={state.step} />}\n  renderSubmit={({ disabled, submitting }) => (\n    <BrandedSubmit disabled={disabled}>{submitting ? \"Sending…\" : \"Apply\"}</BrandedSubmit>\n  )}\n  renderDone={({ booked, membersHref }) => (\n    <Confirmation booked={booked} membersHref={membersHref} />\n  )}\n  payment={{\n    appearance: stripeAppearance,\n    fonts: stripeFonts,\n    renderPriceLines: (lines) => <PriceSummary lines={lines} />,\n  }}\n>\n  <ApplicationFields />\n</JoinIsland>\n```\n\n`initialState` accepts trusted server state. On a browser redirect,\n`JoinIsland` reads the `application` capability from the query string and asks\n`GET /api/join/resume` for the canonical payment, booking, or done state; raw\n`redirect_status` and `reschedule` values never choose a UI step. Supply\n`loadResume` when a host stores the capability elsewhere.\n\nClosed/refunded/declined applications return a scoped `409` with\n`code: \"application_closed\"`; `loadJoinResume` maps this to `step: \"closed\"`.\nThe island shows a terminal notice without another form, checkout, or booking.\nUnknown continuation states and mismatched application ids are rejected rather\nthan defaulting to payment. Temporary configuration failures remain retryable.\n\nStudio and automated previews can traverse that same state machine without\ncreating an application, loading Stripe, charging a card, or booking a real\ncalendar event. Supply deterministic `simulation` boundaries and keep the\nproduction config, tier selection, copy, render slots, and step transitions:\n\n```tsx\n<JoinIsland\n  config={joinConfig}\n  simulation={{\n    applicationId: \"preview-application\",\n    payment: {\n      lineItems: {\n        standardCents: 100_000,\n        discountCents: 10_000,\n        dueTodayCents: 90_000,\n      },\n    },\n    booking: {\n      timezone: \"America/Los_Angeles\",\n      slots: [{ startAt: Date.UTC(2026, 8, 3, 17) }],\n    },\n  }}\n>\n  <PreviewApplicationFields />\n</JoinIsland>\n```\n\nSimulation is deliberately a UI/test boundary, not acceptance evidence for a\nlive Chapter. A follower still has to prove its real application write, Stripe\nwebhook, and calendar booking journey before production.\n\n### Authenticated member pages\n\nEnable the standard member catalog explicitly:\n\n```ts\nconst chapter = defineChapter({\n  // ...normal chapter config...\n  memberContent: {\n    localAuthoring: true,\n    parent: {\n      sourceId: \"built-not-found\",\n      // default follower vault key: member_content_control_secret\n    },\n  },\n});\n```\n\nThis creates two deliberately separate authoring layers. The Parent delivers\nimmutable signed revisions; the Chapter admin edits one local revision. The\neffective catalog merges them without permitting a Parent replay to replace a\nChapter page. Each page declares a stable id/slug, navigation section/order,\nsafe Markdown, and either `all-members` or an explicit set of tier ids. Tier\nsets are not treated as an ordinal ladder.\n\n```ts\nconst parentDocument = {\n  schemaVersion: 1,\n  revision: 4,\n  generatedAt: Date.now(),\n  source: { type: \"parent\", appId: \"built-not-found\" },\n  target: { chapterId: \"example-chapter\", environment: \"dev\" },\n  pages: [{\n    id: \"steward-library\",\n    slug: \"steward-library\",\n    title: \"Steward library\",\n    navigation: { section: \"Network\", order: 20 },\n    audience: { kind: \"tiers\", tierIds: [\"steward\"] },\n    teaserMarkdown: \"Advanced material for stewards.\",\n    bodyMarkdown: \"The **private** operating library.\",\n    // Built Not Found delegates only this offer to the Chapter admin.\n    upsell: { owner: \"chapter\" },\n  }],\n};\n```\n\nAn upsell references only a live tier id and bounded copy. Authored content\ncannot set price, Stripe ids, checkout state, HTML, CSS, or arbitrary links.\nThe Worker attaches the currently offerable tier name and price. A Parent page\nmay own its offer (`owner: \"parent\"`) or declare `owner: \"chapter\"`; the local\ndocument then uses `upsellOverrides` for that exact page. Chapter-authored\npages always keep Chapter offer authority.\n\n`GET /api/member-content` requires a signed-in member. Chapter resolves the\nmember's tier from their local application and removes every unauthorized\n`bodyMarkdown` before serializing JSON. Locked metadata may include a teaser\nand resolved offer. Admins may preview every body through the same projection.\nClient-side hiding is not an authorization boundary.\n\nRender the projection through the stock member area:\n\n```tsx\n<MembersArea api={api} signOut={signOut} memberPages />\n```\n\nOr compose `MemberContentArea` directly and provide a host-owned upgrade URL or\ncallback. The package does not pretend a second application is an upgrade:\n\n```tsx\n<MemberContentArea\n  api={api}\n  upsellHref={(tierId) => approvedUpgradeRoute(tierId)}\n/>\n```\n\nThe standard Chapter admin keeps the top-level Dashboard/People/Settings\ngrammar and adds a **Member content** tab under Settings. It labels inherited\npages as read-only, shows source/access/offer ownership, and edits the complete\nlocal JSON contract with revision guards and actionable validation errors.\nAgents may use the same authenticated `/api/admin/member-content` GET/PUT\ncontract. Page bodies remain out of CRM; CRM continues to own people and\nlifecycle state.\n\nFor central delivery, pair `createMemberContentEnvelope(document)` with\n`deliverMemberContent` from `@odla-ai/chapter/worker`. The dedicated signed\nroute rejects wrong source/target/environment, stale or conflicting revisions,\nbad digests, undeclared tiers, and any Parent revision that would invalidate\nexisting Chapter-owned content. The CRM edge and signup-control secret are\nnever reused.\n\nAgents can run the same contract through the supported CLI. `tiers.json`\ncontains a JSON array of the live safe authority projection (`id`, `name`,\n`priceCents`, and `active`) and deliberately excludes provider Price ids:\n\n```bash\nodla-ai chapter member-content validate --file parent.json --tiers tiers.json --json\nodla-ai chapter member-content compose --parent parent.json --chapter chapter.json --tiers tiers.json --json\nodla-ai chapter member-content project --parent parent.json --chapter chapter.json --tiers tiers.json --tier community --json\nodla-ai chapter member-content deliver --file parent.json --tiers tiers.json \\\n  --url https://chapter.example --from-env MEMBER_CONTENT_SECRET --json\n```\n\nUse `--stdin` instead of `--from-env` when the signing secret comes from a\nproducer process. The value is never accepted as an argument. `project` is the\nserver-disclosure proof and omits locked bodies; `compose` is a local operator\nauthoring view and contains the supplied content.\n\n### Private Builder Library\n\nBuilder source material is deliberately separate from member publishing. Enable\nit on both the Built Not Found hub and each participating Chapter:\n\n```ts\n// Built Not Found\nnetwork: {\n  targets: [\n    { id: \"oakland\", url: \"https://oakland.example\", binding: \"OAKLAND\" },\n    { id: \"denver\", url: \"https://denver.example\", binding: \"DENVER\" },\n  ],\n},\nbuilderLibrary: {\n  sources: [{ sourceId: \"oakland\" }, { sourceId: \"denver\" }],\n},\n\n// Oakland\nnetwork: {\n  readers: [{ id: \"built-not-found\", fields: { person: [\"name\"] } }],\n},\nbuilderLibrary: {\n  sources: [{ sourceId: \"built-not-found\" }],\n},\n```\n\nEvery resource has exactly one scope: `{ kind: \"chapter\", chapterId }`,\n`{ kind: \"built_not_found\" }`, or `{ kind: \"global\" }`. There are no groups or\naudience arrays. A Chapter can author only its own scope. Built Not Found can\nauthor material for itself, every Chapter, or exactly one Chapter from its\nconfigured source list. A Chapter's admins and agents see its own published\nmaterial plus global material, never a sibling Chapter or Built Not Found-only\nmaterial. Built Not Found admins see every configured\nChapter source and can promote a Chapter resource to a global copy; the server\nrecords the source Chapter, source resource/document revisions, actor, and time.\n\nResources are bounded documents/notes, HTTPS links/inspiration, or canonical\nBrand `{ bookId, assetId }` references. Asset URLs, bytes, storage credentials,\nHTML, and executable content are not part of the contract. The standard admin\nadds a visibly private **Builder Library** tab separate from **Member content**.\nIt is a compact CMS inventory with search and type/status filters, type-specific\nadd/edit fields, previews, explicit Draft/Published/Archived state, and a\nvisibility picker whose Chapter choices come only from checked-in network\nconfiguration. Saving a library item never creates or changes a member page.\n\nAn authenticated admin or site-building agent reads the bounded, published-only\nmanifest from `/api/admin/builder-library/manifest`. On Built Not Found, pass a\nconfigured `chapterId` query parameter; on a Chapter, the server fixes the\nviewer to that Chapter. Every Builder source must already be the corresponding\n`network.target` (on Built Not Found) or `network.reader` (on a Chapter). Signed\ndelivery reuses that Chapter network edge: the Chapter's existing\n`network_share_secret` is the same value Built Not Found already stores as\n`network_share_<chapter_id>`. Builder Library declares and provisions no secret\nof its own.\n\n```bash\nodla-ai chapter builder-library validate --file oakland-library.json --source-type chapter --source oakland --json\nodla-ai chapter builder-library manifest --file oakland-library.json --chapter oakland --json\nodla-ai chapter builder-library deliver --file oakland-library.json \\\n  --url https://builtnotfoundcapital.com --from-env NETWORK_SHARE_SECRET --json\n```\n\nThe existing network share secret is accepted only from a named environment\nvariable or stdin; it is never copied into Builder Library config or argv.\nFor a Built Not Found local document, add `--target oakland --environment dev`;\nthe CLI signs only its global resources for that Chapter, never BNF-only items.\n\n### Hub-authoritative live signup control\n\nWhen a hub must control the live membership page as well as preview it, use the\ndedicated signup-control contract. Do **not** widen the CRM network route: CRM\nrecord sharing and operational signup authority are different capabilities.\nThe follower opts into one exact source and Stripe mode:\n\n```ts\nconst chapter = defineChapter({\n  // ...normal chapter config and local bootstrap values...\n  signupControl: {\n    sourceId: \"built-not-found\",\n    stripeMode: \"test\",\n    // default follower vault key: signup_control_secret\n  },\n});\n```\n\nThe hub builds a complete `SignupControlDocument`, calls\n`createSignupControlEnvelope(document)`, and sends it with\n`deliverSignupControl` from `@odla-ai/chapter/worker`. The same strong random\nsecret is vaulted separately on each side; it is never a Clerk token, ODLA key,\nor CRM network secret.\n\nFor multiple authoritative runtimes sharing a data environment, set\n`signupControl.runtimeSecrets` to an explicit map such as\n`{ cory: \"signup_control_cory\", tori: \"signup_control_tori\" }`. Each value names\na different follower vault key; paired hub credentials remain separate too.\nUnlisted runtimes and untargeted legacy deliveries then fail closed. Include\n`deliveryTarget: { appId, environment, runtime }` beside the envelope's\n`document` and `digest`. This transport identity is signed but excluded from\nthe document digest, so both runtimes accept or replay the same reviewed state.\nThe receipt attests the receiving runtime; the sender validates exact target,\nrevision, digest, status, and timestamp. Delivery does not follow redirects and\nbounds receipt reads to 8 KiB and ten seconds.\n\nProvision the additive `signupControlHeads` namespace before deploying this\nreceiver. Its transaction guard serializes concurrent first publications and\nstale work across runtimes. The hub must likewise allocate revisions atomically\nand freeze the document in the same transaction as its per-runtime outbox rows.\nNo process should regenerate an old revision from the current catalog on retry.\n\nThe document carries the source, exact chapter/environment/Stripe-mode target,\nmonotonic revision, ordered and available tiers, immutable Stripe Price ids,\nthe membership-page renderer document, and explicitly delegated application,\npolicy, scheduling, and theme sections. Theme tokens include typography as\nallowlisted `--ui-*` CSS custom properties such as `--ui-font-display` and\n`--ui-font-sans`. Chapter rejects non-`--ui-*` names, non-finite values,\noversized token sets, control characters, style-tag breakout, declaration\nbreakout, comments, imports, expressions, and URL-bearing values. Application\naliases such as `--teal` or `--deepocean` remain host-owned CSS.\n\nThe packaged follower receiver validates the signed request timestamp, sender,\ntarget, environment, Stripe mode, schema, and SHA-256 digest. It rejects a stale\nrevision and rejects the same revision with different content; the same revision\nand digest is an idempotent replay. Acceptance transactionally stores immutable\nhistory, switches the active revision, and materializes the group/tier rows that\njoin-config, application tier validation, and checkout already read. Public\n`GET /api/join-config` returns the active revision/digest, renderer document,\napplication contract, and theme. Applicant requests therefore use local\nlast-known-good state and never depend on the hub being reachable.\n\nA successful empty tier query retains legacy single-tier compatibility.\nDatabase failures, malformed responses, and missing stored prices fail closed;\nthey never invent a free membership. Retiring all stored tiers leaves no offers\ninstead of reviving the group's legacy price. Public Worker routes return\n`503` with `tiers_unavailable` for this failure rather than charging a fallback.\n\n#### One field contract for follower forms and CMS management\n\nChapter owns field identity and storage authority; a hub such as Built Not\nFound owns the editor. Declare the follower's maximum application field set in\n`defineChapter({ application: { required, optional, conditions, maxLen } })`.\nA signed signup-control revision may select, reorder, and change requiredness\nonly within that declared set. It cannot invent a field, change its value type,\nor expose an operational application attribute.\n\n`chapterFlowFieldContract(chapter, \"join\")` and\n`chapterFlowFieldContract(chapter, \"formation\")` return the same versioned,\nordered shape: stable field id, label, CRM value type, requiredness, order,\nlength cap, enum options, and conditions where the flow supports them.\n`GET /api/join-config` exposes the effective `fieldContract` after active\nsignup control is applied. `GET /api/formation/config` exposes the same\n`fieldContract` and retains its legacy `fields` array as a compatibility alias.\nUse that document for a CMS preview or host renderer; submit to the packaged\nroute so the server enforces the same effective selection.\n\nEmail identity is literal. `normalizeChapterEmail()` trims and lowercases only;\nit never applies Gmail/provider alias rules. Consequently\n`foo+bar@gmail.com` and `foo@gmail.com` are distinct application, admission,\npurchase, and gift-beneficiary identities even if a mailbox provider delivers\nboth to the same inbox. Email fields advertise `emailIdentity: \"literal\"` in\nthe flow contract so editors and test fixtures do not collapse them.\n\nMaterialization addresses provisioned groups and tiers by their unique public\n`id` attributes, not by assuming those values are odla-db entity ids. A failed\nmaterialization returns a bounded JSON `materialization_failed` rejection and\nthe transaction leaves the prior active revision unchanged.\n\nThe first delivery is empty-history safe: Chapter checks a bounded aggregate\ncount before asking odla-db to order revision history. A freshly provisioned\nfollower therefore acknowledges revision 1 immediately instead of depending on\nan ordered query over an empty result set.\n\n#### Render active tokens before first paint\n\nPut Chapter's marker after the local bootstrap theme and before any application\nboot script in the HTML head:\n\n```html\n<link rel=\"stylesheet\" href=\"/bootstrap-theme.css\">\n<!--odla:signup-control-theme-->\n<script type=\"module\" src=\"/app.js\"></script>\n```\n\nA host route can transform the static asset with the follower-local active row:\n\n```ts\nimport { chapterWorker, withActiveSignupControlTheme } from \"@odla-ai/chapter/worker\";\nimport { chapter } from \"./chapter.config.mjs\";\n\nexport default chapterWorker({\n  chapter,\n  routes: [async (request, url, env, context) => {\n    if (request.method !== \"GET\" || url.pathname !== \"/apply\") return null;\n    const asset = await env.ASSETS.fetch(new URL(\"/index.html\", url));\n    return withActiveSignupControlTheme(asset, {\n      db: context.makeDb(env),\n      chapterId: chapter.id,\n      environment: env.ODLA_ENV,\n      // The site's existing deterministic fallback when no revision is active.\n      bootstrapTokens: { \"--ui-accent\": \"#096ea8\" },\n    });\n  }],\n});\n```\n\n`withActiveSignupControlTheme` reads only the follower database, revalidates the\nstored document and its canonical digest, and injects one bounded style block\nwith matching revision/digest metadata. It never calls the controlling hub. A\nmissing active row emits the documented `bootstrap` state; a failed local read\nor corrupt active row fails closed instead of looking like absence. The response\ndefaults to `Cache-Control: no-store`, carries digest/revision headers, and gets\nan ETag over the complete transformed HTML. This prevents a pre-activation page\nfrom surviving activation. A host-owned cache may instead call\n`renderActiveSignupControlHtml()` and include\n`result.theme.metadata.cacheKey` in its complete page cache key.\n\nFor an SSR or static-HTML transform, use the same helper on the generated string:\n\n```ts\nimport { renderActiveSignupControlHtml } from \"@odla-ai/chapter/worker\";\n\nconst result = await renderActiveSignupControlHtml(generatedHtml, {\n  db, chapterId: chapter.id, environment,\n  bootstrapTokens: { \"--ui-accent\": \"#096ea8\" },\n});\nawait writeHtml(result.html); // cache with result.theme.metadata.cacheKey\n```\n\nAfter `GET /api/join-config`, hydrate the existing style element rather than\nwriting a second theme system. Matching revision/digest metadata produces no DOM\nwrite and therefore no visual token change:\n\n```ts\nimport {\n  SIGNUP_CONTROL_THEME_STYLE_ID,\n  hydrateSignupControlTheme,\n} from \"@odla-ai/chapter\";\n\nconst style = document.getElementById(SIGNUP_CONTROL_THEME_STYLE_ID);\nif (style instanceof HTMLStyleElement) {\n  hydrateSignupControlTheme(style, joinConfig.signupControl ?? null, {\n    bootstrapTokens: { \"--ui-accent\": \"#096ea8\" },\n  });\n}\n```\n\nThe host still decides which routes use managed theming and owns any legacy\ntoken aliases. Keep the marker after bootstrap declarations so the active\n`--ui-*` values win in the initial parsed document.\n\n`GiftPurchases` is the authenticated purchaser surface: it renders configured\noffers, checkout, one-time code recovery, and the buyer-safe\npending/redeemed/expired/revoked ledger. `MembersArea` composes this surface and\nomits it when there are neither current offers nor prior purchases.\n`MemberGifts` remains a deprecated compatibility name for the same\npurchaser-only component; it no longer renders a recipient claim control.\n\n`GiftCodeRedeemer` is the separate recipient control. It requires the exact\npayment-stage `applicationId` plus an authenticated `ApiFn`, posts trimmed codes\nto `/api/gifts/redeem`, and keeps its input, action, loading lock, and reserved\nlive status region aligned with the shared `@odla-ai/ui` inline-action-field\ncontract. Pass that adapter as `JoinIsland.giftClaimApi` to compose the claim\nbefore card setup. The Worker accepts only a signed-in user whose email/account,\napplication, unpaid state, and tier match the pending claim; a successful claim\nadvances through the canonical join continuation without starting Stripe.\nCode entry uses one-time-code autocomplete, disables automatic capitalization\nand correction, and retains the submitted code after an error so normal card\npayment remains available.\n\nThe hub owns a durable outbox: create/verify immutable Stripe Prices first,\npersist the desired revision, retry signed delivery, and mark it active only\nafter the exact revision/digest receipt. Version history is for audit and\nrollback, not a second manual publish gate. A failed delivery leaves the\nfollower's prior active revision untouched. Production remains behind the\nnormal deployment approval checkpoint.\n\n`MembersArea.renderProvisional` receives the loaded application, authenticated\nAPI function, reload callback, apply URL, and `defaultContent`, so the host can\nwrap or replace the provisional card just as admin workspaces can be composed.\nNested admin/page/record tabs use fragment anchors by default, not query-string\nstate.\n\n### Leader portfolio and formation\n\n`leaderCrmConfig()` composes generic portfolio records into an existing CRM\nconfig without replacing its people, businesses, pipelines, templates, or\nrelations. Duplicate ids fail at startup:\n\n```ts\nimport { defineChapter, leaderCrmConfig } from \"@odla-ai/chapter\";\n\nconst existingCrmConfig = {\n  types: {\n    person: {\n      label: \"Person\",\n      labelPlural: \"People\",\n      nameField: \"name\",\n      emailField: \"email\",\n      fields: {\n        name: { type: \"string\", required: true },\n        email: { type: \"email\" },\n      },\n    },\n  },\n};\n\nexport const chapter = defineChapter({\n  id: \"example-hub\",\n  name: \"Example Hub\",\n  mode: \"hub\",\n  crm: leaderCrmConfig({ base: existingCrmConfig }),\n  formation: {},\n  network: {\n    targets: [{\n      id: \"example-chapter\",\n      name: \"Example Chapter\",\n      url: \"https://chapter.example.com\",\n      fields: { person: [\"name\", \"email\"] },\n      // Independent consent to compare the chapter's commercial projection.\n      commercialParity: true,\n    }],\n  },\n});\n```\n\nThe leader may make `chapter` its own durable aggregate while retaining the\npreset's required identity and relations. `chapter.fields` and\n`chapter.facets` merge with the defaults; `chapter.pipeline` replaces the\ngeneric proposed/forming/active lifecycle. The final configuration is still\nvalidated by `defineCrm()`:\n\n```ts\ncrm: leaderCrmConfig({\n  base: existingCrmConfig,\n  chapter: {\n    fields: {\n      marketKey: { type: \"string\", label: \"Market key\", slot: \"s3\" },\n      signalScore: { type: \"number\", label: \"Signal score\", slot: \"n1\" },\n    },\n    pipeline: {\n      stages: [{ id: \"investigation\" }, { id: \"growth\" }],\n      transitions: { investigation: [\"growth\"] },\n    },\n  },\n}),\n```\n\nThe preset adds `chapter`, `chapter_application`, and `deal` record types in\nthe `portfolio` workspace, with formation, operating, and deal-flow pipelines.\nIt also composes relations to base `person` and `company` types when present.\nThese are ordinary CRM records: the host may add fields, types, render slots,\nand relations by composing its own config before passing it to Chapter.\n\n`formation: {}` opts into a host-rendered public application:\n\n- `GET /api/formation/config` returns only configured public field metadata in\n  the same versioned `fieldContract` shape as the join flow.\n- `POST /api/formation/applications` accepts only those fields and creates a\n  normal `chapter_application` CRM record.\n- A stable base64url `submissionId` makes ambiguous retries resolve to the same\n  record. Hosts must generate one per form journey and retain it until the\n  response is known.\n- Request size, string length, required fields, and public field names are\n  bounded by `formation`; internal fields such as notes are not accepted.\n\nFormation is off unless configured. Chapter intentionally does not ship a\npublic form design: the site renders the fields in its own voice and brand.\n\n### Shared-Stripe commercial shadow\n\nA hub may opt into a read-only network commercial projection when multiple\nchapters intentionally bill through one Stripe account. Every accepted source\nis an exact partition, including Stripe test/live mode:\n\n```ts\nnetworkCommercialReadModel: {\n  mode: \"shadow\",\n  sources: [{\n    stripeMode: \"test\",\n    appId: \"example-chapter\",\n    chapterId: \"example-chapter\",\n    environment: \"dev\",\n    dataEnvironment: \"dev\",\n    runtime: \"cory\",\n  }],\n},\n```\n\nThe dedicated `/api/network-commercial/stripe-webhook` verifies Stripe's\nsignature with `network_commercial_stripe_webhook_secret` before writing an\nappend-only, PII-free event fact. The projector is rebuildable and deterministic:\nlate metadata-less events may inherit a partition only through an unambiguous\nprovider customer/subscription/invoice/charge reference. Wrong, missing,\nambiguous, unsupported, and colliding events remain explained exceptions.\n\n`GET /api/admin/network-commercial-read-model` is super-admin-only and exposes\ncurrent customer, subscription, invoice, refund, and currency-total facts for a\nBNF operator surface. `POST` with `{ command: \"rebuild\", mutationId }` rebuilds\nfrom the local event log without calling or mutating Stripe. `POST` with\n`{ command: \"reconcile-stripe\" }` performs bounded, GET-only current-object\nreads through the hub's vaulted `stripe_secret_key` and reports missing,\nunexpected, mismatched, truncated, and totals exceptions without changing the\nevent log or projection. Objects outside the configured exact partitions are\ncounted as ignored rather than adopted. This shadow never\nauthorizes charges, refunds, subscription changes, or Chapter lifecycle writes;\nremoving it changes no customer-facing behavior. The BNF frontend may be down\nwhile the webhook continues to ingest. Registering a Stripe endpoint and\nenabling production remain separate reviewed operations.\n\nA second delivery of a retained event id is a replay when its digest matches, or\nwhen its canonical fact (id, type, created, and the allowlisted `data.object`\nfields) equals the retained fact however the delivery envelope changed. A\ncanonical replay also resolves an open collision for that event, recording a\n`paymentRecoveryReviews` row with the system as actor, unless the collision\nrecorded a different fact. Only a delivery whose fact differs registers a\ncollision, and it stays active through rebuilds until an operator decides:\n`POST` with `{ command: \"resolve\", eventId, mutationId, reason }` records the\nactor and reason, dismisses the colliding delivery so the same one replays\nquietly, and keeps the retained fact as the evidence of record; it refuses\nwithout a valid `mutationId` and a reason. `POST` with\n`{ command: \"recover-event\", eventId }` instead trusts an independent read of\nthe provider Event and rewrites the retained digest when every fact matches.\n\n`/api/admin/payment-recovery` is the drain on both sides. A chapter lists and\nretries its quarantined Stripe receipts; a hub that owns the read model lists\nevery active commercial exception (`count` plus provider ids, no PII) and\nretries one through the same ingest the signed webhook uses after an\nindependent provider read, with a review row per retry.\n\nBoth Workers raise an error-level operator alert when a receipt enters\nquarantine or a commercial exception becomes active, carrying the current count\nand provider event ids only. Pass `recordError` from `@odla-ai/o11y` as\n`chapterWorker({ chapter, recordError })` to deliver those alerts to o11y; the\ndefault is one structured `console.error` line per alert.\n\n`POST` with `{ command: \"reconcile-chapters\" }` is a separate, two-sided opt-in\ncomparison. A hub target and the matching follower reader must both set\n`commercialParity: true`; neither record browsing nor Stripe shadow mode grants\nit implicitly. The hub signs a `GET /api/network/commercial-parity` request with\nthe edge's `network_share_*` secret. The chapter returns only bounded status,\ncancellation, counts, completeness, and domain-separated HMAC-SHA-256 digests of\napplication, Stripe customer, and Stripe subscription identifiers. Name, email,\nraw identifiers, and arbitrary application fields never cross the edge. The hub\ncompares those digests with its exact Stripe partition and reports chapter-only,\nshadow-only, cancellation, count, unavailable, invalid, and truncation\nexceptions without persisting or changing either side. Chapter application\nstatus and Stripe subscription status remain distinct vocabularies and are shown\nside by side rather than falsely compared for equality.\n\nFor a hub with network targets, the standard admin catalog is Dashboard,\nNetwork, People, Portfolio, and Settings. Dashboard Overview renders aggregate network\nhealth; People contains CRM types whose `workspace` is absent or `\"people\"`;\nPortfolio contains types marked `workspace: \"portfolio\"`. Operational details\nremain nested page tabs and record operations remain record tabs. A\n`workspaces` transform can preserve or extend this catalog just like the\nstandard follower console.\n\n### Follower records, private notes, and shared notes\n\nA follower must opt in before a leader can browse any of its CRM records. The\nfollower owns both the signed-reader allowlist and the exact fields that may\nleave:\n\n```ts\nexport const chapter = defineChapter({\n  id: \"example-chapter\",\n  name: \"Example Chapter\",\n  account: \"none\",\n  prices: { standardCents: 100_000 },\n  emails: { notificationEmail: \"owner@example.com\" },\n  network: {\n    readers: [{\n      id: \"example-hub\",\n      fields: {\n        person: [\"name\", \"email\", \"firstName\", \"lastName\", \"phone\", \"linkedin\"],\n      },\n      // Separate write consent: browsing never implies note permission.\n      sharedNotes: [\"person\"],\n      // Separate again: name the exact profile fields and record types the\n      // parent may mutate. Omission keeps the edge read-only.\n      editableFields: { person: [\"name\", \"email\", \"phone\", \"linkedin\"] },\n      stageTransitions: [\"person\"],\n      admissionGrants: true,\n      // Independent disclosure consent. This may be the reader's only ability.\n      commercialParity: true,\n    }],\n  },\n});\n```\n\n`GET /api/network/records` requires the edge HMAC and rejects signed senders not\nlisted in `network.readers`. Results are capped at 50 records, offset-paged,\nsearch-bounded, and projected to the reader's field list. Pipeline stage and\nrecord timestamps, optimistic `revision`, and explicitly delegated edit\nmetadata are the only metadata outside that list; application\nnarrative, billing, account state, activities, and notes do not cross unless\nthe follower explicitly names a corresponding CRM field.\n\nThe leader's authenticated `GET /api/admin/network/records` proxy signs the\nfollower request server-to-server, so neither the browser session nor the\nvaulted edge secret crosses sites. When both halves of an edge opt in,\n`PATCH /api/admin/network/records` accepts one bounded field patch or lifecycle\ndestination with the follower-authored `expectedRevision`, current stage, and a\nstable mutation id. The follower revalidates its CRM schema, identity/email\nrules, pipeline gates, and atomic revision guard; it remains source of truth and\nrecords the leader peer plus initiating admin in the CRM activity audit. A\nretry with the same input is idempotent, while stale state is `409`, an\nundelegated operation is `403`, invalid fields or transitions are `422`, and\nordinary browse-only edges remain read-only.\n\nAdmission decisions use a separate default-deny lane. With\n`admissionGrants: true` on both halves of an edge, the leader's\n`POST /api/admin/network/admissions` resolves the person's current email from\nits CRM, persists the complete desired target document, and delivers it through\nthe configured service binding or signed URL. Delivery state is durable as\n`saved`, `pending`, `acknowledged`, `retrying`, or `rejected`; retry and revoke\nroutes publish the same or a higher desired revision. A follower may declare an\nadmission-only reader without `fields`, which does not make CRM records\nbrowsable or editable.\n\nThe Network detail view also has two deliberate note lanes:\n\n- `GET/POST /api/admin/network/notes` stores private annotations in the\n  leader's deny-all `networkNotes` namespace. They are keyed to the follower's\n  stable target/type/record identity and never leave the leader.\n- `GET/POST /api/admin/network/shared-notes` crosses the signed edge only when\n  both the leader target and follower reader declare `sharedNotes` for that\n  record type. The follower appends the note to its normal CRM activity feed,\n  where its own admins see it. The leader can read back only notes that it\n  shared; follower-private CRM activity is never returned.\n\n### Leader → follower delivery\n\nThe leader declares where records may go and exactly which fields each follower\nreceives:\n\n```ts\nexport const chapter = defineChapter({\n  id: \"example-hub\",\n  name: \"Example Hub\",\n  mode: \"hub\",\n  network: {\n    targets: [{\n      id: \"example-chapter\",\n      name: \"Example Chapter\",\n      url: \"https://chapter.example.com\",\n      binding: \"EXAMPLE_CHAPTER\",\n      fields: {\n        person: [\"name\", \"email\", \"firstName\", \"lastName\", \"phone\", \"linkedin\"],\n        company: [\"name\", \"domain\", \"industry\", \"location\", \"linkedin\"],\n      },\n      sharedNotes: [\"person\"],\n      editableFields: { person: [\"name\", \"email\", \"phone\", \"linkedin\"] },\n      stageTransitions: [\"person\"],\n      admissionGrants: true,\n    }],\n  },\n});\n```\n\nTreat the network as websites connected by explicit delivery edges:\n\n- each website is a node with its own `appId`, ODLA tenants/keys, CRM config,\n  Clerk application, publishable keys, issuer, roles, and local users;\n- each `network.targets[]` entry is a directed edge from one leader to one\n  follower: `{ id, name, url, binding?, secretName?, fields, editableFields?, stageTransitions?, admissionGrants? }`;\n- the payload is a versioned, allowlisted business record\n  `{ version: 2, source: { siteId, recordId }, type, input }`, never an\n  identity-provider session, another site's pipeline/account/billing state, or\n  an ODLA admin key;\n- retries address the follower record by leader provenance, so the same edge\n  updates rather than duplicates.\n\nThe authorization chain has three separate hops. The leader's browser sends\nits own Clerk session only to the leader's admin route. The leader Worker\nauthorizes that local operator, reads the edge's share secret from its own\nvault, and signs the exact method, path/query, sender id, timestamp, nonce, and\nbody digest. The follower validates that HMAC envelope against its vaulted\ncopy, requires the signed sender to match the v2 payload source, validates the\npayload against its own CRM config, and writes with its own server-side\n`ODLA_API_KEY`. The share secret itself is never sent. A follower Clerk token\nis never needed, the leader never receives the follower's database key, and\nsites do not share a Clerk application.\n\nWhen both sites are Cloudflare Workers, configure `binding` and add the matching\nservice binding to the leader's Wrangler environment. Cloudflare does not\nreliably dispatch same-account `workers.dev` subrequests into the target\nWorker; Chapter therefore signs against `url` but sends through the bound\nWorker:\n\n```jsonc\n{\n  \"env\": {\n    \"dev\": {\n      \"services\": [{\n        \"binding\": \"EXAMPLE_CHAPTER\",\n        \"service\": \"example-chapter-dev\"\n      }]\n    }\n  }\n}\n```\n\nThe example assumes the follower sets its development Worker `name` explicitly\nto `example-chapter-dev`. If it instead uses Cloudflare's named-environment\naddressing, declare the base `service` plus `\"environment\": \"dev\"`. The binding\nname is public configuration, not a credential. If a configured binding is\nmissing at runtime, the target fails explicitly instead of falling back to a\npotentially misrouted public fetch.\n\nPair the edge by vaulting one generated value as `network_share_secret` in the\nfollower and as `network_share_example_chapter` in the leader (or the target's\n`secretName`), never printed. The integration descriptor declares both slots,\nso provisioning tooling can hold them against the vault, and until both hold a\nvalue every leader-side surface reports the edge as `code: \"edge_unpaired\"`\nwith a `hint` naming the CLI pairing command (`chapter edge pair`, which\nwrites both slots from one generated value and ships with the next\n`@odla-ai/cli` release). No secret is placed in source, browser data, or\nprovisioning config. The standard collection drawer discovers the target and calls the\nadmin-gated push route. A follower must declare the receiving CRM type/fields;\notherwise it rejects the record cleanly instead of dropping fields.\n\nThe signed v2 protocol is the contract for new integrations. The follower\ntemporarily accepts the old bearer/v1 envelope so an existing edge can be\nupgraded without downtime; new leaders must not use it.\n\nEvery received v2 record gets a `crm_record_origin` row keyed by the upstream\nsite and record id. Every push attempt gets a `crm_record_delivery` row keyed by\nthe local record and target, including attempt count, current status, payload\nversion, remote record id, and bounded latest error. Record detail responses\ninclude both collections and the standard record drawer adds a Network tab\nwhen either exists.\n\n`GET /api/network/snapshot` is an HMAC-signed, aggregate-only follower endpoint.\nIt returns type totals and pipeline-stage counts, never record fields, people,\nsessions, Clerk tokens, share secrets, or ODLA keys. The leader's admin-gated\n`GET /api/admin/network/rollup` fans out to every configured target, verifies\nthat each returned site id equals the target id, and returns combined totals\nplus explicit per-target failures. Consequently each target `id` must equal the\nfollower's `chapter.id`.\n\n#### Existing follower CRMs must opt into the shared graph\n\nWhen `crm` is omitted, chapter's default already contains compatible `person`\nand `company` types plus a `works_at` relation. Passing a custom CRM replaces\nthat default; chapter does not merge missing types or fields into it. A follower\nthat wants both people and businesses must therefore declare compatible types\nitself:\n\n```ts\nimport { defineCrm } from \"@odla-ai/crm\";\n\nconst crm = defineCrm({\n  types: {\n    person: {\n      label: \"Person\",\n      labelPlural: \"People\",\n      nameField: \"name\",\n      emailField: \"email\",\n      fields: {\n        name: { type: \"string\", label: \"Name\", required: true },\n        email: { type: \"email\", label: \"Email\" },\n        firstName: { type: \"string\", label: \"First name\" },\n        lastName: { type: \"string\", label: \"Last name\" },\n        phone: { type: \"string\", label: \"Phone\" },\n        linkedin: { type: \"string\", label: \"LinkedIn\" },\n      },\n    },\n    company: {\n      label: \"Business\",\n      labelPlural: \"Businesses\",\n      nameField: \"name\",\n      fields: {\n        name: { type: \"string\", label: \"Name\", required: true },\n        domain: { type: \"string\", label: \"Domain / website\", slot: \"s1\" },\n        industry: { type: \"string\", label: \"Industry\" },\n        location: { type: \"string\", label: \"Location\" },\n        linkedin: { type: \"string\", label: \"LinkedIn\" },\n        notes: { type: \"string\", label: \"Notes\" },\n      },\n    },\n  },\n  relations: {\n    works_at: {\n      from: \"person\",\n      to: \"company\",\n      label: \"works at\",\n      reverseLabel: \"team\",\n    },\n  },\n});\n```\n\nThe follower must declare every field its leader may send. Unknown types or\nfields fail the request before any CRM write. Record delivery currently moves\nrecords, not `crm_link` relation rows; create or curate `works_at` links locally.\n\n#### Custom leader consoles must mount the sharing UI\n\nAutomatic “Share with …” actions come from Chapter's standard People workspace.\nThey are present when the console uses `<ChapterAdmin chapter={chapter} />`.\nPassing a `workspaces` array replaces that catalog, so a custom console must\ndeliberately compose it:\n\n```tsx\nimport {\n  ChapterAdmin,\n  defaultAdminWorkspaces,\n} from \"@odla-ai/chapter/ui/admin\";\n\nconst workspaces = [\n  customOperationsWorkspace,\n  ...defaultAdminWorkspaces(chapter),\n];\n\nrender(\n  <ChapterAdmin chapter={chapter} workspaces={workspaces} />,\n  document.getElementById(\"admin-root\"),\n);\n```\n\nIf the custom console renders its own record drawer instead, mount\n`NetworkShareActions` inside that drawer:\n\n```tsx\n<NetworkShareActions\n  recordId={record.id}\n  recordType={record.type}\n  getToken={sectionContext.getToken}\n/>\n```\n\nThe component discovers compatible targets through\n`GET /api/admin/network/targets`; it never receives follower secrets in browser\ndata.\n\n#### Verify delivery in development before production\n\nUse distinct development tenants and follower origins for the first delivery:\n\n1. Confirm every target `id` exactly equals the follower's `chapter.id`. For\n   Cloudflare Workers, confirm its `binding` exists in the leader's development\n   Wrangler environment. Pair the edge: vault one generated value as\n   `network_share_secret` in the follower and under the target's resolved\n   `secretName` in the leader (the CLI's `chapter edge pair` command does both\n   writes from the next `@odla-ai/cli` release on). The leader rollup reports\n   `edge_unpaired` until both slots hold a value.\n2. Confirm `GET /api/admin/network/targets` lists the development follower with\n   the expected compatible record types.\n3. Share one test person and one test business from the leader's record drawer.\n   Confirm each appears in the follower with only allowlisted fields.\n4. Share each record again. The second delivery must update the same follower\n   record, not create a duplicate.\n5. Confirm the follower's pipeline, account, and billing state did not change;\n   those remain locally authoritative.\n6. Change one allowlisted leader field and share again to prove later deliveries\n   update the existing record. A target with the wrong secret must return `401`\n   without writing CRM data.\n7. Prove each browser JWT is accepted only by its own website. Inspect the\n   network request and client bundle to confirm neither site's Clerk token nor\n   either `ODLA_API_KEY` crosses the delivery edge, and confirm the share\n   secret itself is absent from the request.\n8. Load `GET /api/admin/network/rollup` through the leader session. Confirm\n   aggregate totals, then break one development edge and confirm that target is\n   reported unavailable without hiding healthy targets.\n\nOnly after this contract passes against development origins should the leader\ntarget be changed to a production follower origin and the matching production\nvault values be installed.\n\nAdmin navigation defaults to link-backed fragments:\n`/admin/#people/person/record-id/profile`. The four segments are workspace,\nnested view, selected record, and record-detail tab. This keeps meaningful,\nreloadable URLs without requiring a server-side SPA fallback, and it avoids\ncompeting with Clerk's sign-in hash: while signed out, Chapter carries the\nrequested state through the redirect query and canonicalizes it after sign-in.\nLegacy `?tab=` and path links still open, while `routing=\"query\"` and\n`routing=\"path\"` remain compatibility modes.\n\n### Admin information architecture and migration\n\nThe default follower console deliberately has only three top-level workspaces:\n\n- **Dashboard** — Overview and Billing page tabs.\n- **People** — configured CRM collections as page tabs, then a master/detail\n  record view with Stage, Profile, communications, scheduling, Billing, Notes,\n  Connections, Access, and Sharing record tabs when those capabilities apply.\n- **Settings** — Calendar and Email page tabs.\n\nA leader hub with configured targets adds **Portfolio** between People and\nSettings and uses Dashboard Overview for the aggregate network rollup. A hub\nwithout targets retains the minimal People-only default. These defaults compose\nthe same grammar; they do not introduce a second admin shell.\n\nThe default `chrome=\"embedded\"` assumes the host supplies the site header.\nUse `chrome=\"standalone\"` for Chapter's packaged masthead or `renderHeader` for\na custom header rendered inside the Chapter theme boundary. `editorial`,\n`none`, `topbar`, and `sections` remain compatibility APIs. Do not add\noperational detail back to the global site navigation.\n\nOnly the active workspace, page tab, and record tab mount their content.\nInactive operational panels therefore do not fetch, subscribe, or run effects.\nTheir native anchors remain in the document, so every level is still\nreloadable and participates in browser back/forward navigation.\n\n#### Preserve an existing People structure\n\nThe responsive state and data loading belong to `@odla-ai/crm`; the branded\nsummary, list presentation, record heading, and specialized panels can remain\nhost-owned:\n\nFor an operating site, first preserve the validated workspace whole. A matching\n`people` id or “People” label says where to compose; it does not establish\nfeature parity:\n\n```tsx\nconst workspaces = (defaults) => {\n  if (!defaults.some((workspace) => workspace.id === \"people\")) {\n    throw new Error(\"expected ChapterAdmin people workspace\");\n  }\n  return defaults.map((workspace) =>\n    workspace.id === \"people\"\n      ? { ...workspace, render: (ctx) => <ExistingPeople context={ctx} /> }\n      : workspace\n  );\n};\n\n<ChapterAdmin chapter={chapter} workspaces={workspaces} />;\n```\n\nMatch the exact `people` id and fail closed if Chapter changes its catalog;\nmatching only the displayed label can silently replace the wrong workspace.\nThis keeps Chapter's reviewed workspace metadata and surrounding shell while\nthe host retains its summaries, exploration model, role signals, record\noperations, and state handling. Replace that adapter incrementally only after\nthe corresponding behavior has an executable parity check. A greenfield site\ncan begin with Chapter's defaults because there is no operating workspace to\npreserve.\n\n```tsx\nconst people = collectionSection({\n  crm: chapter.crm,\n  type: \"person\",\n  lifecycle: true,\n  collapseClosedDetail: true,\n  renderSummary: ({ query }) => (\n    <PeopleSummary total={query.page?.total ?? 0} />\n  ),\n  renderMaster: ({ defaultMaster }) => (\n    <PeopleRail>{defaultMaster}</PeopleRail>\n  ),\n  renderDetailHeader: ({ detail }) => (\n    <RecordHeading record={detail.record} />\n  ),\n  defaultDetailTab: \"overview\",\n  renderDetail: (context, defaultDetail) => (\n    <RelationshipProfile record={context.detail.record}>\n      {defaultDetail}\n    </RelationshipProfile>\n  ),\n  extendRecordTabs: (tabs, context) => replaceRecordPanels(tabs, context),\n});\n```\n\n`collapseClosedDetail` defaults to `true`: while no record is selected, the\ncollection list uses the full workspace width; after selection, it becomes\nmaster/detail. Set it to `false` only when the empty detail pane contains\nintentional, useful content. This is an operational usability rule, not a\nrequest to preserve an old admin's cramped columns. `renderMaster` and\n`renderSummary` customize content; they do not control pane geometry.\n\n`renderMaster` receives the loaded query, selection helpers, native record-link\nbuilder, and `defaultMaster`, so a host may wrap the standard list or replace\nits presentation without taking over fetching. `renderDetail` receives the\nfully composed default record panel and can wrap or replace the complete detail\nexperience without taking over CRM state. `defaultDetailTab` controls the tab\nselected by native record links. `extendRecordTabs` supports per-record\n`visible` and `disabled` predicates. Hidden panels do not mount.\n\nFor `lifecycle: true`, Chapter routes stage transitions through the\napplication-authoritative approve/refund/manual-transition endpoints and\nrequires that adapter. A custom operational collection can pass\n`lifecycleAdapter`; generic CRM collections continue to use the CRM mutation.\n\n#### Adapt existing authentication routes\n\nAn existing site does not need to rename its config or current-user endpoints:\n\n```tsx\n<ChapterAdmin\n  chapter={chapter}\n  auth={{\n    configPath: \"/api/auth/config\",\n    mapConfig: (body) => ({\n      publishableKey: typeof body.publishableKey === \"string\"\n        ? body.publishableKey\n        : null,\n    }),\n    mapCurrentUser: (body) => ({\n      ...body,\n      authorized: body.role === \"admin\" || body.superAdmin === true,\n    }),\n  }}\n/>\n```\n\n`loadConfig` and `loadCurrentUser` may replace fetchi","readmeFilename":"README.md"}