gazetta 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin-dist/assets/index-CBeq0rRb.js +693 -0
- package/admin-dist/assets/index-Dtg1dTZQ.css +1 -0
- package/admin-dist/assets/rolldown-runtime-BYbx6iT9.js +1 -0
- package/admin-dist/assets/{vendor-primevue-C0Q_YTCb.js → vendor-primevue-CBGHkaXv.js} +183 -39
- package/admin-dist/assets/{vendor-react-BipDVGow.js → vendor-react-BdW_kNCG.js} +2 -2
- package/admin-dist/assets/vendor-rjsf-lN2SztQt.js +33 -0
- package/admin-dist/assets/vendor-tiptap-C36yDquB.js +141 -0
- package/admin-dist/assets/vendor-vue-Bt5uR1VW.js +1 -0
- package/admin-dist/assets/workbox-window.prod.es5-DGMtIXHc.js +2 -0
- package/admin-dist/index.html +8 -8
- package/admin-dist/sw.js +1 -0
- package/dist/admin-api/archived-name-conflict.d.ts +31 -0
- package/dist/admin-api/archived-name-conflict.d.ts.map +1 -0
- package/dist/admin-api/archived-name-conflict.js +226 -0
- package/dist/admin-api/archived-name-conflict.js.map +1 -0
- package/dist/admin-api/cache-stats-logger.d.ts +83 -0
- package/dist/admin-api/cache-stats-logger.d.ts.map +1 -0
- package/dist/admin-api/cache-stats-logger.js +59 -0
- package/dist/admin-api/cache-stats-logger.js.map +1 -0
- package/dist/admin-api/hook-audit-emitter.d.ts +38 -0
- package/dist/admin-api/hook-audit-emitter.d.ts.map +1 -0
- package/dist/admin-api/hook-audit-emitter.js +21 -0
- package/dist/admin-api/hook-audit-emitter.js.map +1 -0
- package/dist/admin-api/index.d.ts +84 -0
- package/dist/admin-api/index.d.ts.map +1 -1
- package/dist/admin-api/index.js +254 -9
- package/dist/admin-api/index.js.map +1 -1
- package/dist/admin-api/middleware/audit.d.ts +25 -0
- package/dist/admin-api/middleware/audit.d.ts.map +1 -0
- package/dist/admin-api/middleware/audit.js +65 -0
- package/dist/admin-api/middleware/audit.js.map +1 -0
- package/dist/admin-api/middleware/capability.d.ts +8 -0
- package/dist/admin-api/middleware/capability.d.ts.map +1 -0
- package/dist/admin-api/middleware/capability.js +65 -0
- package/dist/admin-api/middleware/capability.js.map +1 -0
- package/dist/admin-api/middleware/principal.d.ts +18 -0
- package/dist/admin-api/middleware/principal.d.ts.map +1 -0
- package/dist/admin-api/middleware/principal.js +128 -0
- package/dist/admin-api/middleware/principal.js.map +1 -0
- package/dist/admin-api/routes/archive-review.d.ts +80 -0
- package/dist/admin-api/routes/archive-review.d.ts.map +1 -0
- package/dist/admin-api/routes/archive-review.js +70 -0
- package/dist/admin-api/routes/archive-review.js.map +1 -0
- package/dist/admin-api/routes/archive.d.ts +145 -0
- package/dist/admin-api/routes/archive.d.ts.map +1 -0
- package/dist/admin-api/routes/archive.js +540 -0
- package/dist/admin-api/routes/archive.js.map +1 -0
- package/dist/admin-api/routes/assets.d.ts +6 -1
- package/dist/admin-api/routes/assets.d.ts.map +1 -1
- package/dist/admin-api/routes/assets.js +167 -14
- package/dist/admin-api/routes/assets.js.map +1 -1
- package/dist/admin-api/routes/audit.d.ts +71 -0
- package/dist/admin-api/routes/audit.d.ts.map +1 -0
- package/dist/admin-api/routes/audit.js +178 -0
- package/dist/admin-api/routes/audit.js.map +1 -0
- package/dist/admin-api/routes/compare.d.ts.map +1 -1
- package/dist/admin-api/routes/compare.js +3 -2
- package/dist/admin-api/routes/compare.js.map +1 -1
- package/dist/admin-api/routes/fields.d.ts.map +1 -1
- package/dist/admin-api/routes/fields.js +2 -1
- package/dist/admin-api/routes/fields.js.map +1 -1
- package/dist/admin-api/routes/fragments.d.ts +13 -1
- package/dist/admin-api/routes/fragments.d.ts.map +1 -1
- package/dist/admin-api/routes/fragments.js +127 -92
- package/dist/admin-api/routes/fragments.js.map +1 -1
- package/dist/admin-api/routes/health.d.ts +60 -0
- package/dist/admin-api/routes/health.d.ts.map +1 -0
- package/dist/admin-api/routes/health.js +65 -0
- package/dist/admin-api/routes/health.js.map +1 -0
- package/dist/admin-api/routes/history.d.ts +2 -1
- package/dist/admin-api/routes/history.d.ts.map +1 -1
- package/dist/admin-api/routes/history.js +26 -4
- package/dist/admin-api/routes/history.js.map +1 -1
- package/dist/admin-api/routes/pages.d.ts +20 -1
- package/dist/admin-api/routes/pages.d.ts.map +1 -1
- package/dist/admin-api/routes/pages.js +157 -117
- package/dist/admin-api/routes/pages.js.map +1 -1
- package/dist/admin-api/routes/preview.d.ts.map +1 -1
- package/dist/admin-api/routes/preview.js +56 -17
- package/dist/admin-api/routes/preview.js.map +1 -1
- package/dist/admin-api/routes/publish.d.ts +19 -1
- package/dist/admin-api/routes/publish.d.ts.map +1 -1
- package/dist/admin-api/routes/publish.js +508 -92
- package/dist/admin-api/routes/publish.js.map +1 -1
- package/dist/admin-api/routes/rename.d.ts +62 -0
- package/dist/admin-api/routes/rename.d.ts.map +1 -0
- package/dist/admin-api/routes/rename.js +366 -0
- package/dist/admin-api/routes/rename.js.map +1 -0
- package/dist/admin-api/routes/site.d.ts.map +1 -1
- package/dist/admin-api/routes/site.js +6 -18
- package/dist/admin-api/routes/site.js.map +1 -1
- package/dist/admin-api/routes/system.d.ts +23 -0
- package/dist/admin-api/routes/system.d.ts.map +1 -0
- package/dist/admin-api/routes/system.js +115 -0
- package/dist/admin-api/routes/system.js.map +1 -0
- package/dist/admin-api/routes/templates.d.ts +11 -1
- package/dist/admin-api/routes/templates.d.ts.map +1 -1
- package/dist/admin-api/routes/templates.js +36 -3
- package/dist/admin-api/routes/templates.js.map +1 -1
- package/dist/admin-api/routes/validation.d.ts +47 -0
- package/dist/admin-api/routes/validation.d.ts.map +1 -0
- package/dist/admin-api/routes/validation.js +120 -0
- package/dist/admin-api/routes/validation.js.map +1 -0
- package/dist/admin-api/schemas/archive.d.ts +124 -0
- package/dist/admin-api/schemas/archive.d.ts.map +1 -0
- package/dist/admin-api/schemas/archive.js +93 -0
- package/dist/admin-api/schemas/archive.js.map +1 -0
- package/dist/admin-api/schemas/assets.d.ts +16 -0
- package/dist/admin-api/schemas/assets.d.ts.map +1 -1
- package/dist/admin-api/schemas/assets.js +15 -0
- package/dist/admin-api/schemas/assets.js.map +1 -1
- package/dist/admin-api/schemas/audit.d.ts +175 -0
- package/dist/admin-api/schemas/audit.d.ts.map +1 -0
- package/dist/admin-api/schemas/audit.js +91 -0
- package/dist/admin-api/schemas/audit.js.map +1 -0
- package/dist/admin-api/schemas/error.d.ts +94 -0
- package/dist/admin-api/schemas/error.d.ts.map +1 -0
- package/dist/admin-api/schemas/error.js +79 -0
- package/dist/admin-api/schemas/error.js.map +1 -0
- package/dist/admin-api/schemas/fragments.d.ts +2 -0
- package/dist/admin-api/schemas/fragments.d.ts.map +1 -1
- package/dist/admin-api/schemas/fragments.js +4 -0
- package/dist/admin-api/schemas/fragments.js.map +1 -1
- package/dist/admin-api/schemas/index.d.ts +8 -0
- package/dist/admin-api/schemas/index.d.ts.map +1 -1
- package/dist/admin-api/schemas/index.js +8 -0
- package/dist/admin-api/schemas/index.js.map +1 -1
- package/dist/admin-api/schemas/pages.d.ts +2 -0
- package/dist/admin-api/schemas/pages.d.ts.map +1 -1
- package/dist/admin-api/schemas/pages.js +11 -0
- package/dist/admin-api/schemas/pages.js.map +1 -1
- package/dist/admin-api/schemas/rename.d.ts +77 -0
- package/dist/admin-api/schemas/rename.d.ts.map +1 -0
- package/dist/admin-api/schemas/rename.js +75 -0
- package/dist/admin-api/schemas/rename.js.map +1 -0
- package/dist/admin-api/schemas/site.d.ts +3 -2
- package/dist/admin-api/schemas/site.d.ts.map +1 -1
- package/dist/admin-api/schemas/site.js +3 -2
- package/dist/admin-api/schemas/site.js.map +1 -1
- package/dist/admin-api/schemas/system.d.ts +28 -0
- package/dist/admin-api/schemas/system.d.ts.map +1 -0
- package/dist/admin-api/schemas/system.js +35 -0
- package/dist/admin-api/schemas/system.js.map +1 -0
- package/dist/admin-api/schemas/targets.d.ts +55 -0
- package/dist/admin-api/schemas/targets.d.ts.map +1 -1
- package/dist/admin-api/schemas/targets.js +46 -0
- package/dist/admin-api/schemas/targets.js.map +1 -1
- package/dist/admin-api/schemas/templates.d.ts +54 -0
- package/dist/admin-api/schemas/templates.d.ts.map +1 -1
- package/dist/admin-api/schemas/templates.js +21 -0
- package/dist/admin-api/schemas/templates.js.map +1 -1
- package/dist/admin-api/schemas/validation.d.ts +101 -0
- package/dist/admin-api/schemas/validation.d.ts.map +1 -0
- package/dist/admin-api/schemas/validation.js +57 -0
- package/dist/admin-api/schemas/validation.js.map +1 -0
- package/dist/admin-api/source-context.d.ts +66 -10
- package/dist/admin-api/source-context.d.ts.map +1 -1
- package/dist/admin-api/source-context.js +43 -5
- package/dist/admin-api/source-context.js.map +1 -1
- package/dist/ai/adapter-scaffold.d.ts +63 -0
- package/dist/ai/adapter-scaffold.d.ts.map +1 -0
- package/dist/ai/adapter-scaffold.js +89 -0
- package/dist/ai/adapter-scaffold.js.map +1 -0
- package/dist/ai/compose-prompt.d.ts +50 -0
- package/dist/ai/compose-prompt.d.ts.map +1 -0
- package/dist/ai/compose-prompt.js +49 -0
- package/dist/ai/compose-prompt.js.map +1 -0
- package/dist/ai/errors.d.ts +65 -0
- package/dist/ai/errors.d.ts.map +1 -0
- package/dist/ai/errors.js +59 -0
- package/dist/ai/errors.js.map +1 -0
- package/dist/ai/index.d.ts +17 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +16 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/provider.d.ts +76 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +13 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/refusal.d.ts +50 -0
- package/dist/ai/refusal.d.ts.map +1 -0
- package/dist/ai/refusal.js +100 -0
- package/dist/ai/refusal.js.map +1 -0
- package/dist/ai/vision-prep.d.ts +32 -0
- package/dist/ai/vision-prep.d.ts.map +1 -0
- package/dist/ai/vision-prep.js +113 -0
- package/dist/ai/vision-prep.js.map +1 -0
- package/dist/alt/adapter.d.ts +140 -0
- package/dist/alt/adapter.d.ts.map +1 -0
- package/dist/alt/adapter.js +7 -0
- package/dist/alt/adapter.js.map +1 -0
- package/dist/alt/anthropic.d.ts +63 -0
- package/dist/alt/anthropic.d.ts.map +1 -0
- package/dist/alt/anthropic.js +147 -0
- package/dist/alt/anthropic.js.map +1 -0
- package/dist/alt/config.d.ts +67 -0
- package/dist/alt/config.d.ts.map +1 -0
- package/dist/alt/config.js +41 -0
- package/dist/alt/config.js.map +1 -0
- package/dist/alt/factory.d.ts +19 -0
- package/dist/alt/factory.d.ts.map +1 -0
- package/dist/alt/factory.js +69 -0
- package/dist/alt/factory.js.map +1 -0
- package/dist/alt/null-adapter.d.ts +3 -0
- package/dist/alt/null-adapter.d.ts.map +1 -0
- package/dist/alt/null-adapter.js +43 -0
- package/dist/alt/null-adapter.js.map +1 -0
- package/dist/alt/ollama.d.ts +40 -0
- package/dist/alt/ollama.d.ts.map +1 -0
- package/dist/alt/ollama.js +139 -0
- package/dist/alt/ollama.js.map +1 -0
- package/dist/alt/openai.d.ts +46 -0
- package/dist/alt/openai.d.ts.map +1 -0
- package/dist/alt/openai.js +118 -0
- package/dist/alt/openai.js.map +1 -0
- package/dist/alt/prompt-policies.d.ts +79 -0
- package/dist/alt/prompt-policies.d.ts.map +1 -0
- package/dist/alt/prompt-policies.js +67 -0
- package/dist/alt/prompt-policies.js.map +1 -0
- package/dist/alt/route-handler.d.ts +56 -0
- package/dist/alt/route-handler.d.ts.map +1 -0
- package/dist/alt/route-handler.js +122 -0
- package/dist/alt/route-handler.js.map +1 -0
- package/dist/alt/suggester.d.ts +57 -0
- package/dist/alt/suggester.d.ts.map +1 -0
- package/dist/alt/suggester.js +133 -0
- package/dist/alt/suggester.js.map +1 -0
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/archive-aliases.d.ts +79 -0
- package/dist/archive-aliases.d.ts.map +1 -0
- package/dist/archive-aliases.js +60 -0
- package/dist/archive-aliases.js.map +1 -0
- package/dist/archive-helpers.d.ts +73 -0
- package/dist/archive-helpers.d.ts.map +1 -0
- package/dist/archive-helpers.js +94 -0
- package/dist/archive-helpers.js.map +1 -0
- package/dist/assets/find-refs.d.ts +1 -1
- package/dist/assets/find-refs.js +1 -1
- package/dist/assets/find-refs.js.map +1 -1
- package/dist/assets/rename.js +1 -1
- package/dist/assets/rename.js.map +1 -1
- package/dist/assets/replace.js +1 -1
- package/dist/assets/replace.js.map +1 -1
- package/dist/assets/resolve.js +4 -4
- package/dist/assets/resolve.js.map +1 -1
- package/dist/assets/serve-route.js +2 -2
- package/dist/assets/serve-route.js.map +1 -1
- package/dist/assets/validate.d.ts +1 -1
- package/dist/assets/validate.js +1 -1
- package/dist/audit/config.d.ts +75 -0
- package/dist/audit/config.d.ts.map +1 -0
- package/dist/audit/config.js +91 -0
- package/dist/audit/config.js.map +1 -0
- package/dist/audit/context.d.ts +98 -0
- package/dist/audit/context.d.ts.map +1 -0
- package/dist/audit/context.js +51 -0
- package/dist/audit/context.js.map +1 -0
- package/dist/audit/errors.d.ts +73 -0
- package/dist/audit/errors.d.ts.map +1 -0
- package/dist/audit/errors.js +78 -0
- package/dist/audit/errors.js.map +1 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +10 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/provider.d.ts +73 -0
- package/dist/audit/provider.d.ts.map +1 -0
- package/dist/audit/provider.js +2 -0
- package/dist/audit/provider.js.map +1 -0
- package/dist/audit/providers/history.d.ts +66 -0
- package/dist/audit/providers/history.d.ts.map +1 -0
- package/dist/audit/providers/history.js +102 -0
- package/dist/audit/providers/history.js.map +1 -0
- package/dist/audit/pseudonymize.d.ts +26 -0
- package/dist/audit/pseudonymize.d.ts.map +1 -0
- package/dist/audit/pseudonymize.js +86 -0
- package/dist/audit/pseudonymize.js.map +1 -0
- package/dist/audit/recorder.d.ts +102 -0
- package/dist/audit/recorder.d.ts.map +1 -0
- package/dist/audit/recorder.js +55 -0
- package/dist/audit/recorder.js.map +1 -0
- package/dist/audit/retention.d.ts +83 -0
- package/dist/audit/retention.d.ts.map +1 -0
- package/dist/audit/retention.js +142 -0
- package/dist/audit/retention.js.map +1 -0
- package/dist/audit/source-ip.d.ts +32 -0
- package/dist/audit/source-ip.d.ts.map +1 -0
- package/dist/audit/source-ip.js +164 -0
- package/dist/audit/source-ip.js.map +1 -0
- package/dist/audit/types.d.ts +143 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +33 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/user-agent.d.ts +28 -0
- package/dist/audit/user-agent.d.ts.map +1 -0
- package/dist/audit/user-agent.js +63 -0
- package/dist/audit/user-agent.js.map +1 -0
- package/dist/auth/capabilities.d.ts +28 -0
- package/dist/auth/capabilities.d.ts.map +1 -0
- package/dist/auth/capabilities.js +101 -0
- package/dist/auth/capabilities.js.map +1 -0
- package/dist/auth/config.d.ts +109 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +221 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/errors.d.ts +72 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +78 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/factory.d.ts +43 -0
- package/dist/auth/factory.d.ts.map +1 -0
- package/dist/auth/factory.js +48 -0
- package/dist/auth/factory.js.map +1 -0
- package/dist/auth/index.d.ts +21 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +14 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/ip-match.d.ts +29 -0
- package/dist/auth/ip-match.d.ts.map +1 -0
- package/dist/auth/ip-match.js +162 -0
- package/dist/auth/ip-match.js.map +1 -0
- package/dist/auth/provider.d.ts +76 -0
- package/dist/auth/provider.d.ts.map +1 -0
- package/dist/auth/provider.js +2 -0
- package/dist/auth/provider.js.map +1 -0
- package/dist/auth/providers/aws-cognito.d.ts +55 -0
- package/dist/auth/providers/aws-cognito.d.ts.map +1 -0
- package/dist/auth/providers/aws-cognito.js +114 -0
- package/dist/auth/providers/aws-cognito.js.map +1 -0
- package/dist/auth/providers/azure-easy-auth.d.ts +7 -0
- package/dist/auth/providers/azure-easy-auth.d.ts.map +1 -0
- package/dist/auth/providers/azure-easy-auth.js +48 -0
- package/dist/auth/providers/azure-easy-auth.js.map +1 -0
- package/dist/auth/providers/cloudflare-access.d.ts +71 -0
- package/dist/auth/providers/cloudflare-access.d.ts.map +1 -0
- package/dist/auth/providers/cloudflare-access.js +120 -0
- package/dist/auth/providers/cloudflare-access.js.map +1 -0
- package/dist/auth/providers/forwarded-user.d.ts +31 -0
- package/dist/auth/providers/forwarded-user.d.ts.map +1 -0
- package/dist/auth/providers/forwarded-user.js +72 -0
- package/dist/auth/providers/forwarded-user.js.map +1 -0
- package/dist/auth/providers/none.d.ts +6 -0
- package/dist/auth/providers/none.d.ts.map +1 -0
- package/dist/auth/providers/none.js +19 -0
- package/dist/auth/providers/none.js.map +1 -0
- package/dist/auth/providers/tailscale.d.ts +7 -0
- package/dist/auth/providers/tailscale.d.ts.map +1 -0
- package/dist/auth/providers/tailscale.js +30 -0
- package/dist/auth/providers/tailscale.js.map +1 -0
- package/dist/auth/role-resolver.d.ts +38 -0
- package/dist/auth/role-resolver.d.ts.map +1 -0
- package/dist/auth/role-resolver.js +92 -0
- package/dist/auth/role-resolver.js.map +1 -0
- package/dist/auth/types.d.ts +150 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +60 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cache/errors.d.ts +41 -0
- package/dist/cache/errors.d.ts.map +1 -0
- package/dist/cache/errors.js +44 -0
- package/dist/cache/errors.js.map +1 -0
- package/dist/cache/factories.d.ts +17 -0
- package/dist/cache/factories.d.ts.map +1 -0
- package/dist/cache/factories.js +17 -0
- package/dist/cache/factories.js.map +1 -0
- package/dist/cache/keys.d.ts +63 -0
- package/dist/cache/keys.d.ts.map +1 -0
- package/dist/cache/keys.js +145 -0
- package/dist/cache/keys.js.map +1 -0
- package/dist/cache/memory.d.ts +51 -0
- package/dist/cache/memory.d.ts.map +1 -0
- package/dist/cache/memory.js +204 -0
- package/dist/cache/memory.js.map +1 -0
- package/dist/cache/per-site.d.ts +22 -0
- package/dist/cache/per-site.d.ts.map +1 -0
- package/dist/cache/per-site.js +114 -0
- package/dist/cache/per-site.js.map +1 -0
- package/dist/cache/types.d.ts +142 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +33 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/cli/archive.d.ts +44 -0
- package/dist/cli/archive.d.ts.map +1 -0
- package/dist/cli/archive.js +310 -0
- package/dist/cli/archive.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +15 -8
- package/dist/cli/bootstrap.d.ts.map +1 -1
- package/dist/cli/bootstrap.js +59 -23
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/dev-template-watcher.d.ts +29 -0
- package/dist/cli/dev-template-watcher.d.ts.map +1 -0
- package/dist/cli/dev-template-watcher.js +38 -0
- package/dist/cli/dev-template-watcher.js.map +1 -0
- package/dist/cli/history.d.ts.map +1 -1
- package/dist/cli/history.js +5 -3
- package/dist/cli/history.js.map +1 -1
- package/dist/cli/index.js +712 -395
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/validate-flags.d.ts +29 -0
- package/dist/cli/validate-flags.d.ts.map +1 -0
- package/dist/cli/validate-flags.js +49 -0
- package/dist/cli/validate-flags.js.map +1 -0
- package/dist/compare.d.ts +1 -1
- package/dist/compare.d.ts.map +1 -1
- package/dist/compare.js +25 -23
- package/dist/compare.js.map +1 -1
- package/dist/component-ids.d.ts +25 -0
- package/dist/component-ids.d.ts.map +1 -0
- package/dist/component-ids.js +83 -0
- package/dist/component-ids.js.map +1 -0
- package/dist/config/define.d.ts +61 -0
- package/dist/config/define.d.ts.map +1 -0
- package/dist/config/define.js +64 -0
- package/dist/config/define.js.map +1 -0
- package/dist/config/errors.d.ts +32 -0
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +40 -0
- package/dist/config/errors.js.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +105 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +265 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schemas.d.ts +89 -0
- package/dist/config/schemas.d.ts.map +1 -0
- package/dist/config/schemas.js +172 -0
- package/dist/config/schemas.js.map +1 -0
- package/dist/config/types.d.ts +32 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +15 -0
- package/dist/config/types.js.map +1 -0
- package/dist/deploy/cloudflare-workers.d.ts +46 -0
- package/dist/deploy/cloudflare-workers.d.ts.map +1 -0
- package/dist/deploy/cloudflare-workers.js +213 -0
- package/dist/deploy/cloudflare-workers.js.map +1 -0
- package/dist/deploy/errors.d.ts +66 -0
- package/dist/deploy/errors.d.ts.map +1 -0
- package/dist/deploy/errors.js +82 -0
- package/dist/deploy/errors.js.map +1 -0
- package/dist/deploy/index.d.ts +9 -0
- package/dist/deploy/index.d.ts.map +1 -0
- package/dist/deploy/index.js +3 -0
- package/dist/deploy/index.js.map +1 -0
- package/dist/deploy/types.d.ts +162 -0
- package/dist/deploy/types.d.ts.map +1 -0
- package/dist/deploy/types.js +2 -0
- package/dist/deploy/types.js.map +1 -0
- package/dist/fragments/create.d.ts +70 -0
- package/dist/fragments/create.d.ts.map +1 -0
- package/dist/fragments/create.js +93 -0
- package/dist/fragments/create.js.map +1 -0
- package/dist/fragments/publish.d.ts +37 -0
- package/dist/fragments/publish.d.ts.map +1 -0
- package/dist/fragments/publish.js +52 -0
- package/dist/fragments/publish.js.map +1 -0
- package/dist/fragments/save.d.ts +81 -0
- package/dist/fragments/save.d.ts.map +1 -0
- package/dist/fragments/save.js +105 -0
- package/dist/fragments/save.js.map +1 -0
- package/dist/history-recorder.d.ts +5 -5
- package/dist/history-recorder.d.ts.map +1 -1
- package/dist/history-recorder.js +4 -4
- package/dist/history-recorder.js.map +1 -1
- package/dist/history-restorer.js +2 -2
- package/dist/history-restorer.js.map +1 -1
- package/dist/history.d.ts +1 -1
- package/dist/hooks/audit-emitter.d.ts +73 -0
- package/dist/hooks/audit-emitter.d.ts.map +1 -0
- package/dist/hooks/audit-emitter.js +13 -0
- package/dist/hooks/audit-emitter.js.map +1 -0
- package/dist/hooks/context.d.ts +78 -0
- package/dist/hooks/context.d.ts.map +1 -0
- package/dist/hooks/context.js +56 -0
- package/dist/hooks/context.js.map +1 -0
- package/dist/hooks/contribution.d.ts +90 -0
- package/dist/hooks/contribution.d.ts.map +1 -0
- package/dist/hooks/contribution.js +2 -0
- package/dist/hooks/contribution.js.map +1 -0
- package/dist/hooks/dispatch.d.ts +30 -0
- package/dist/hooks/dispatch.d.ts.map +1 -0
- package/dist/hooks/dispatch.js +252 -0
- package/dist/hooks/dispatch.js.map +1 -0
- package/dist/hooks/errors.d.ts +100 -0
- package/dist/hooks/errors.d.ts.map +1 -0
- package/dist/hooks/errors.js +103 -0
- package/dist/hooks/errors.js.map +1 -0
- package/dist/hooks/index.d.ts +15 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/registry.d.ts +53 -0
- package/dist/hooks/registry.d.ts.map +1 -0
- package/dist/hooks/registry.js +139 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/storage.d.ts +43 -0
- package/dist/hooks/storage.d.ts.map +1 -0
- package/dist/hooks/storage.js +2 -0
- package/dist/hooks/storage.js.map +1 -0
- package/dist/hooks/types.d.ts +324 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +2 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +26 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -5
- package/dist/index.js.map +1 -1
- package/dist/locale.d.ts +5 -1
- package/dist/locale.d.ts.map +1 -1
- package/dist/locale.js +6 -2
- package/dist/locale.js.map +1 -1
- package/dist/manifest-save.d.ts +255 -0
- package/dist/manifest-save.d.ts.map +1 -0
- package/dist/manifest-save.js +260 -0
- package/dist/manifest-save.js.map +1 -0
- package/dist/manifest.d.ts +1 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +43 -44
- package/dist/manifest.js.map +1 -1
- package/dist/node-floor.d.ts +3 -0
- package/dist/node-floor.d.ts.map +1 -0
- package/dist/node-floor.js +3 -0
- package/dist/node-floor.js.map +1 -0
- package/dist/pages/create.d.ts +103 -0
- package/dist/pages/create.d.ts.map +1 -0
- package/dist/pages/create.js +117 -0
- package/dist/pages/create.js.map +1 -0
- package/dist/pages/publish.d.ts +59 -0
- package/dist/pages/publish.d.ts.map +1 -0
- package/dist/pages/publish.js +78 -0
- package/dist/pages/publish.js.map +1 -0
- package/dist/pages/save.d.ts +97 -0
- package/dist/pages/save.d.ts.map +1 -0
- package/dist/pages/save.js +138 -0
- package/dist/pages/save.js.map +1 -0
- package/dist/providers/factories.d.ts +65 -0
- package/dist/providers/factories.d.ts.map +1 -0
- package/dist/providers/factories.js +189 -0
- package/dist/providers/factories.js.map +1 -0
- package/dist/publish-item.d.ts +225 -0
- package/dist/publish-item.d.ts.map +1 -0
- package/dist/publish-item.js +210 -0
- package/dist/publish-item.js.map +1 -0
- package/dist/publish-rendered.d.ts.map +1 -1
- package/dist/publish-rendered.js +75 -6
- package/dist/publish-rendered.js.map +1 -1
- package/dist/publish-renderers.d.ts +132 -0
- package/dist/publish-renderers.d.ts.map +1 -0
- package/dist/publish-renderers.js +240 -0
- package/dist/publish-renderers.js.map +1 -0
- package/dist/publish-run.d.ts +223 -0
- package/dist/publish-run.d.ts.map +1 -0
- package/dist/publish-run.js +307 -0
- package/dist/publish-run.js.map +1 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +1 -10
- package/dist/publish.js.map +1 -1
- package/dist/render-for-analysis.d.ts +24 -0
- package/dist/render-for-analysis.d.ts.map +1 -0
- package/dist/render-for-analysis.js +146 -0
- package/dist/render-for-analysis.js.map +1 -0
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +47 -23
- package/dist/resolver.js.map +1 -1
- package/dist/runtime/archive-marker.d.ts +62 -0
- package/dist/runtime/archive-marker.d.ts.map +1 -0
- package/dist/runtime/archive-marker.js +88 -0
- package/dist/runtime/archive-marker.js.map +1 -0
- package/dist/runtime/capability-gap-warnings.d.ts +42 -0
- package/dist/runtime/capability-gap-warnings.d.ts.map +1 -0
- package/dist/runtime/capability-gap-warnings.js +28 -0
- package/dist/runtime/capability-gap-warnings.js.map +1 -0
- package/dist/runtime/redirects-emit.d.ts +93 -0
- package/dist/runtime/redirects-emit.d.ts.map +1 -0
- package/dist/runtime/redirects-emit.js +89 -0
- package/dist/runtime/redirects-emit.js.map +1 -0
- package/dist/runtime/runtime-capabilities.d.ts +79 -0
- package/dist/runtime/runtime-capabilities.d.ts.map +1 -0
- package/dist/runtime/runtime-capabilities.js +60 -0
- package/dist/runtime/runtime-capabilities.js.map +1 -0
- package/dist/save-etag.d.ts +69 -0
- package/dist/save-etag.d.ts.map +1 -0
- package/dist/save-etag.js +118 -0
- package/dist/save-etag.js.map +1 -0
- package/dist/site-loader.d.ts +42 -4
- package/dist/site-loader.d.ts.map +1 -1
- package/dist/site-loader.js +27 -8
- package/dist/site-loader.js.map +1 -1
- package/dist/targets.d.ts +21 -12
- package/dist/targets.d.ts.map +1 -1
- package/dist/targets.js +27 -95
- package/dist/targets.js.map +1 -1
- package/dist/testing/admin-cache-contract.d.ts +52 -0
- package/dist/testing/admin-cache-contract.d.ts.map +1 -0
- package/dist/testing/admin-cache-contract.js +203 -0
- package/dist/testing/admin-cache-contract.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +11 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/transforms/factories.d.ts +16 -0
- package/dist/transforms/factories.d.ts.map +1 -0
- package/dist/transforms/factories.js +18 -0
- package/dist/transforms/factories.js.map +1 -0
- package/dist/transforms/index.d.ts +10 -17
- package/dist/transforms/index.d.ts.map +1 -1
- package/dist/transforms/index.js +4 -28
- package/dist/transforms/index.js.map +1 -1
- package/dist/transforms/sharp.d.ts +15 -1
- package/dist/transforms/sharp.d.ts.map +1 -1
- package/dist/transforms/sharp.js +34 -20
- package/dist/transforms/sharp.js.map +1 -1
- package/dist/types.d.ts +379 -52
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +20 -1
- package/dist/types.js.map +1 -1
- package/dist/validation/alt-required-walker.d.ts +27 -0
- package/dist/validation/alt-required-walker.d.ts.map +1 -0
- package/dist/validation/alt-required-walker.js +108 -0
- package/dist/validation/alt-required-walker.js.map +1 -0
- package/dist/validation/default-registry.d.ts +12 -0
- package/dist/validation/default-registry.d.ts.map +1 -0
- package/dist/validation/default-registry.js +55 -0
- package/dist/validation/default-registry.js.map +1 -0
- package/dist/validation/publish-audit.d.ts +44 -0
- package/dist/validation/publish-audit.d.ts.map +1 -0
- package/dist/validation/publish-audit.js +64 -0
- package/dist/validation/publish-audit.js.map +1 -0
- package/dist/validation/registry.d.ts +23 -0
- package/dist/validation/registry.d.ts.map +1 -0
- package/dist/validation/registry.js +15 -0
- package/dist/validation/registry.js.map +1 -0
- package/dist/validation/save-delta.d.ts +46 -0
- package/dist/validation/save-delta.d.ts.map +1 -0
- package/dist/validation/save-delta.js +57 -0
- package/dist/validation/save-delta.js.map +1 -0
- package/dist/validation/scanner.d.ts +91 -0
- package/dist/validation/scanner.d.ts.map +1 -0
- package/dist/validation/scanner.js +327 -0
- package/dist/validation/scanner.js.map +1 -0
- package/dist/validation/template-impact.d.ts +52 -0
- package/dist/validation/template-impact.d.ts.map +1 -0
- package/dist/validation/template-impact.js +53 -0
- package/dist/validation/template-impact.js.map +1 -0
- package/dist/validation/types.d.ts +123 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +7 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validators/accessibility.d.ts +3 -0
- package/dist/validation/validators/accessibility.d.ts.map +1 -0
- package/dist/validation/validators/accessibility.js +106 -0
- package/dist/validation/validators/accessibility.js.map +1 -0
- package/dist/validation/validators/aliasof-points-to-archived.d.ts +40 -0
- package/dist/validation/validators/aliasof-points-to-archived.d.ts.map +1 -0
- package/dist/validation/validators/aliasof-points-to-archived.js +34 -0
- package/dist/validation/validators/aliasof-points-to-archived.js.map +1 -0
- package/dist/validation/validators/alt-required.d.ts +3 -0
- package/dist/validation/validators/alt-required.d.ts.map +1 -0
- package/dist/validation/validators/alt-required.js +118 -0
- package/dist/validation/validators/alt-required.js.map +1 -0
- package/dist/validation/validators/archive-not-supported-on-target.d.ts +3 -0
- package/dist/validation/validators/archive-not-supported-on-target.d.ts.map +1 -0
- package/dist/validation/validators/archive-not-supported-on-target.js +38 -0
- package/dist/validation/validators/archive-not-supported-on-target.js.map +1 -0
- package/dist/validation/validators/broken-links.d.ts +3 -0
- package/dist/validation/validators/broken-links.d.ts.map +1 -0
- package/dist/validation/validators/broken-links.js +190 -0
- package/dist/validation/validators/broken-links.js.map +1 -0
- package/dist/validation/validators/circular-alias.d.ts +36 -0
- package/dist/validation/validators/circular-alias.d.ts.map +1 -0
- package/dist/validation/validators/circular-alias.js +63 -0
- package/dist/validation/validators/circular-alias.js.map +1 -0
- package/dist/validation/validators/circular-fragment.d.ts +15 -0
- package/dist/validation/validators/circular-fragment.d.ts.map +1 -0
- package/dist/validation/validators/circular-fragment.js +97 -0
- package/dist/validation/validators/circular-fragment.js.map +1 -0
- package/dist/validation/validators/dangling-alias.d.ts +38 -0
- package/dist/validation/validators/dangling-alias.d.ts.map +1 -0
- package/dist/validation/validators/dangling-alias.js +31 -0
- package/dist/validation/validators/dangling-alias.js.map +1 -0
- package/dist/validation/validators/deploy-target-type-supported.d.ts +3 -0
- package/dist/validation/validators/deploy-target-type-supported.d.ts.map +1 -0
- package/dist/validation/validators/deploy-target-type-supported.js +32 -0
- package/dist/validation/validators/deploy-target-type-supported.js.map +1 -0
- package/dist/validation/validators/dynamic-route-conflict.d.ts +18 -0
- package/dist/validation/validators/dynamic-route-conflict.d.ts.map +1 -0
- package/dist/validation/validators/dynamic-route-conflict.js +80 -0
- package/dist/validation/validators/dynamic-route-conflict.js.map +1 -0
- package/dist/validation/validators/html-validity.d.ts +3 -0
- package/dist/validation/validators/html-validity.d.ts.map +1 -0
- package/dist/validation/validators/html-validity.js +89 -0
- package/dist/validation/validators/html-validity.js.map +1 -0
- package/dist/validation/validators/orphaned-locale-file.d.ts +21 -0
- package/dist/validation/validators/orphaned-locale-file.d.ts.map +1 -0
- package/dist/validation/validators/orphaned-locale-file.js +84 -0
- package/dist/validation/validators/orphaned-locale-file.js.map +1 -0
- package/dist/validation/validators/referenced-archived-without-alias.d.ts +3 -0
- package/dist/validation/validators/referenced-archived-without-alias.d.ts.map +1 -0
- package/dist/validation/validators/referenced-archived-without-alias.js +65 -0
- package/dist/validation/validators/referenced-archived-without-alias.js.map +1 -0
- package/dist/validation/validators/referenced-asset-exists.d.ts +13 -0
- package/dist/validation/validators/referenced-asset-exists.d.ts.map +1 -0
- package/dist/validation/validators/referenced-asset-exists.js +80 -0
- package/dist/validation/validators/referenced-asset-exists.js.map +1 -0
- package/dist/validation/validators/referenced-fragment-exists.d.ts +9 -0
- package/dist/validation/validators/referenced-fragment-exists.d.ts.map +1 -0
- package/dist/validation/validators/referenced-fragment-exists.js +52 -0
- package/dist/validation/validators/referenced-fragment-exists.js.map +1 -0
- package/dist/validation/validators/referenced-template-exists.d.ts +10 -0
- package/dist/validation/validators/referenced-template-exists.d.ts.map +1 -0
- package/dist/validation/validators/referenced-template-exists.js +74 -0
- package/dist/validation/validators/referenced-template-exists.js.map +1 -0
- package/dist/validation/validators/schema-conformance.d.ts +17 -0
- package/dist/validation/validators/schema-conformance.d.ts.map +1 -0
- package/dist/validation/validators/schema-conformance.js +94 -0
- package/dist/validation/validators/schema-conformance.js.map +1 -0
- package/dist/validation/validators/target-deploy-coverage.d.ts +3 -0
- package/dist/validation/validators/target-deploy-coverage.d.ts.map +1 -0
- package/dist/validation/validators/target-deploy-coverage.js +37 -0
- package/dist/validation/validators/target-deploy-coverage.js.map +1 -0
- package/dist/validation/validators/unused-fragment.d.ts +16 -0
- package/dist/validation/validators/unused-fragment.d.ts.map +1 -0
- package/dist/validation/validators/unused-fragment.js +86 -0
- package/dist/validation/validators/unused-fragment.js.map +1 -0
- package/package.json +54 -31
- package/admin-dist/assets/index-BO9-CXmW.css +0 -1
- package/admin-dist/assets/index-Ufu8zZH_.js +0 -668
- package/admin-dist/assets/rolldown-runtime-COnpUsM8.js +0 -1
- package/admin-dist/assets/vendor-rjsf-HKBAjOmQ.js +0 -32
- package/admin-dist/assets/vendor-tiptap-IyO99U4R.js +0 -142
- package/admin-dist/assets/vendor-vue-D3wBSmDf.js +0 -1
- package/dist/publish-locale.d.ts +0 -44
- package/dist/publish-locale.d.ts.map +0 -1
- package/dist/publish-locale.js +0 -103
- package/dist/publish-locale.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema for the `admin.auth` block in `site.config.ts`. This
|
|
3
|
+
* cut ships only the `none`-mode shape; subsequent cuts add Zod
|
|
4
|
+
* variants for `forwarded-user`, `cloudflare-access`, etc.
|
|
5
|
+
*
|
|
6
|
+
* # Why a discriminated union
|
|
7
|
+
*
|
|
8
|
+
* Each trust mode's configuration shape is genuinely different
|
|
9
|
+
* (`forwarded-user` has `trustedProxyCount`; `cloudflare-access`
|
|
10
|
+
* has `teamDomain`; `none` has no provider-specific fields). A
|
|
11
|
+
* discriminated union on `trust:` lets TypeScript narrow per
|
|
12
|
+
* mode automatically and gives operators IDE autocomplete for the
|
|
13
|
+
* fields their chosen mode accepts.
|
|
14
|
+
*
|
|
15
|
+
* # Defaults
|
|
16
|
+
*
|
|
17
|
+
* Operators who don't set `admin.auth` run in `none` mode. The
|
|
18
|
+
* site-loader treats absent `admin.auth` as `{ trust: 'none' }`.
|
|
19
|
+
*
|
|
20
|
+
* # SOLID lenses
|
|
21
|
+
*
|
|
22
|
+
* - SRP: schema validation only; doesn't construct providers.
|
|
23
|
+
* - OCP: adding a trust mode appends one variant to the union;
|
|
24
|
+
* existing variants unchanged.
|
|
25
|
+
*/
|
|
26
|
+
import { z } from 'zod';
|
|
27
|
+
/**
|
|
28
|
+
* Top-level discriminated union. All v1 trust modes locked.
|
|
29
|
+
* Future plugin-supplied modes (per design-auth-rbac.md Q1's plugin
|
|
30
|
+
* promotion trigger) extend the union via the plugin contract — not
|
|
31
|
+
* by editing this file.
|
|
32
|
+
*/
|
|
33
|
+
export declare const AuthConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
34
|
+
trust: z.ZodLiteral<"none">;
|
|
35
|
+
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
36
|
+
capabilities: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
37
|
+
}, z.core.$strict>>>;
|
|
38
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
40
|
+
trust: z.ZodLiteral<"forwarded-user">;
|
|
41
|
+
trustedProxies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
42
|
+
allowAnyOrigin: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
44
|
+
capabilities: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
45
|
+
}, z.core.$strict>>>;
|
|
46
|
+
roleMapping: z.ZodOptional<z.ZodObject<{
|
|
47
|
+
claim: z.ZodString;
|
|
48
|
+
map: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
49
|
+
defaultRole: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
50
|
+
}, z.core.$strict>>;
|
|
51
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
52
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
53
|
+
trust: z.ZodLiteral<"cloudflare-access">;
|
|
54
|
+
teamDomain: z.ZodString;
|
|
55
|
+
audience: z.ZodOptional<z.ZodString>;
|
|
56
|
+
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
57
|
+
capabilities: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
58
|
+
}, z.core.$strict>>>;
|
|
59
|
+
roleMapping: z.ZodOptional<z.ZodObject<{
|
|
60
|
+
claim: z.ZodString;
|
|
61
|
+
map: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
62
|
+
defaultRole: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
63
|
+
}, z.core.$strict>>;
|
|
64
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
66
|
+
trust: z.ZodLiteral<"azure-easy-auth">;
|
|
67
|
+
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
68
|
+
capabilities: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
69
|
+
}, z.core.$strict>>>;
|
|
70
|
+
roleMapping: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
claim: z.ZodString;
|
|
72
|
+
map: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
73
|
+
defaultRole: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
74
|
+
}, z.core.$strict>>;
|
|
75
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
76
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
77
|
+
trust: z.ZodLiteral<"aws-cognito">;
|
|
78
|
+
region: z.ZodString;
|
|
79
|
+
audience: z.ZodOptional<z.ZodString>;
|
|
80
|
+
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
81
|
+
capabilities: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
82
|
+
}, z.core.$strict>>>;
|
|
83
|
+
roleMapping: z.ZodOptional<z.ZodObject<{
|
|
84
|
+
claim: z.ZodString;
|
|
85
|
+
map: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
86
|
+
defaultRole: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
87
|
+
}, z.core.$strict>>;
|
|
88
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
90
|
+
trust: z.ZodLiteral<"tailscale">;
|
|
91
|
+
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
92
|
+
capabilities: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
93
|
+
}, z.core.$strict>>>;
|
|
94
|
+
roleMapping: z.ZodOptional<z.ZodObject<{
|
|
95
|
+
claim: z.ZodString;
|
|
96
|
+
map: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
97
|
+
defaultRole: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
98
|
+
}, z.core.$strict>>;
|
|
99
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
}, z.core.$strict>], "trust">;
|
|
101
|
+
export type AuthConfig = z.infer<typeof AuthConfigSchema>;
|
|
102
|
+
/**
|
|
103
|
+
* Reserved-prefix check. Future plugin-supplied capabilities use
|
|
104
|
+
* plugin-scoped prefixes (e.g., `@my-org/...:`); custom roles MUST
|
|
105
|
+
* NOT redefine reserved built-in prefixes with conflicting
|
|
106
|
+
* semantics. The role-resolver enforces this at load time.
|
|
107
|
+
*/
|
|
108
|
+
export declare function isReservedPrefix(capability: string): boolean;
|
|
109
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/auth/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkLvB;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAO3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAM5D"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema for the `admin.auth` block in `site.config.ts`. This
|
|
3
|
+
* cut ships only the `none`-mode shape; subsequent cuts add Zod
|
|
4
|
+
* variants for `forwarded-user`, `cloudflare-access`, etc.
|
|
5
|
+
*
|
|
6
|
+
* # Why a discriminated union
|
|
7
|
+
*
|
|
8
|
+
* Each trust mode's configuration shape is genuinely different
|
|
9
|
+
* (`forwarded-user` has `trustedProxyCount`; `cloudflare-access`
|
|
10
|
+
* has `teamDomain`; `none` has no provider-specific fields). A
|
|
11
|
+
* discriminated union on `trust:` lets TypeScript narrow per
|
|
12
|
+
* mode automatically and gives operators IDE autocomplete for the
|
|
13
|
+
* fields their chosen mode accepts.
|
|
14
|
+
*
|
|
15
|
+
* # Defaults
|
|
16
|
+
*
|
|
17
|
+
* Operators who don't set `admin.auth` run in `none` mode. The
|
|
18
|
+
* site-loader treats absent `admin.auth` as `{ trust: 'none' }`.
|
|
19
|
+
*
|
|
20
|
+
* # SOLID lenses
|
|
21
|
+
*
|
|
22
|
+
* - SRP: schema validation only; doesn't construct providers.
|
|
23
|
+
* - OCP: adding a trust mode appends one variant to the union;
|
|
24
|
+
* existing variants unchanged.
|
|
25
|
+
*/
|
|
26
|
+
import { z } from 'zod';
|
|
27
|
+
import { RESERVED_CAPABILITY_PREFIXES } from './types.js';
|
|
28
|
+
/**
|
|
29
|
+
* Capability-shape regex. Either a wildcard (`'*'`) or
|
|
30
|
+
* `<prefix>:<rest>` where `rest` may itself be a wildcard.
|
|
31
|
+
* Plugin-supplied capabilities use scoped prefixes (e.g.,
|
|
32
|
+
* `@my-org/search:rebuild-index`); the schema accepts those too.
|
|
33
|
+
*/
|
|
34
|
+
const capabilityRegex = /^(\*|[a-zA-Z@][a-zA-Z0-9@/_-]*:[a-zA-Z*][a-zA-Z0-9_-]*)$/;
|
|
35
|
+
const capabilitySchema = z.string().regex(capabilityRegex, 'Capability must be either "*" or "<prefix>:<rest>"');
|
|
36
|
+
/**
|
|
37
|
+
* Custom role definition — operator-declared in `site.config.ts`.
|
|
38
|
+
* Built-in roles (`admin`, `editor`, `viewer`) are predefined and
|
|
39
|
+
* don't appear here; operators only declare custom roles.
|
|
40
|
+
*/
|
|
41
|
+
const roleSchema = z
|
|
42
|
+
.object({
|
|
43
|
+
capabilities: z.array(capabilitySchema).readonly(),
|
|
44
|
+
})
|
|
45
|
+
.strict();
|
|
46
|
+
const roleMappingSchema = z
|
|
47
|
+
.object({
|
|
48
|
+
/** Which JSON claim / header field carries the upstream group list. */
|
|
49
|
+
claim: z.string(),
|
|
50
|
+
/** Map from upstream group name to Gazetta role name. */
|
|
51
|
+
map: z.record(z.string(), z.string()),
|
|
52
|
+
/** Fallback role when no group matches. `null` denies access. */
|
|
53
|
+
defaultRole: z.string().nullable().optional(),
|
|
54
|
+
})
|
|
55
|
+
.strict();
|
|
56
|
+
/**
|
|
57
|
+
* `none` trust mode — the default. No provider-specific fields.
|
|
58
|
+
* Operators omitting `admin.auth` entirely fall back to this shape
|
|
59
|
+
* with all defaults.
|
|
60
|
+
*/
|
|
61
|
+
const noneAuthSchema = z
|
|
62
|
+
.object({
|
|
63
|
+
trust: z.literal('none'),
|
|
64
|
+
/** Custom role declarations (rare in `none` mode but allowed). */
|
|
65
|
+
roles: z.record(z.string(), roleSchema).optional(),
|
|
66
|
+
/** Strict mode — invalid roles fail boot vs. log warning. */
|
|
67
|
+
strict: z.boolean().optional(),
|
|
68
|
+
})
|
|
69
|
+
.strict();
|
|
70
|
+
/**
|
|
71
|
+
* `forwarded-user` trust mode — generic reverse-proxy mode. The
|
|
72
|
+
* upstream layer (oauth2-proxy, Authelia, Caddy with `forward_auth`,
|
|
73
|
+
* etc.) populates `X-Forwarded-User` and optionally
|
|
74
|
+
* `X-Forwarded-Email` / `X-Forwarded-Groups`.
|
|
75
|
+
*
|
|
76
|
+
* # Header-spoofing protection
|
|
77
|
+
*
|
|
78
|
+
* Operators MUST configure source-IP protection per
|
|
79
|
+
* `design-auth-rbac.md` Q1: either `trustedProxies` (whitelist of
|
|
80
|
+
* IPs/CIDRs that may set the headers) OR `allowAnyOrigin: true`
|
|
81
|
+
* (explicit opt-in for dev / private networks).
|
|
82
|
+
*
|
|
83
|
+
* Default: fail-closed. Without `trustedProxies` AND without
|
|
84
|
+
* `allowAnyOrigin`, the provider rejects every request — surfaces
|
|
85
|
+
* as 401 with a config-hint message. This matches Q4's
|
|
86
|
+
* "fail-closed" recommendation in the design's "Source-IP whitelist
|
|
87
|
+
* semantics" open question.
|
|
88
|
+
*/
|
|
89
|
+
const forwardedUserAuthSchema = z
|
|
90
|
+
.object({
|
|
91
|
+
trust: z.literal('forwarded-user'),
|
|
92
|
+
/**
|
|
93
|
+
* IPs or CIDR blocks that may set the forwarded headers. Each
|
|
94
|
+
* entry is an IP literal (`192.168.1.10`) or CIDR
|
|
95
|
+
* (`10.0.0.0/8`, `fd00::/8`). Empty array + missing
|
|
96
|
+
* `allowAnyOrigin` → all requests rejected.
|
|
97
|
+
*/
|
|
98
|
+
trustedProxies: z.array(z.string()).optional(),
|
|
99
|
+
/**
|
|
100
|
+
* Explicit opt-out of source-IP protection. Use ONLY in dev or
|
|
101
|
+
* trusted private networks (Tailscale, internal VPNs).
|
|
102
|
+
* Production deployments behind a public load balancer MUST
|
|
103
|
+
* use `trustedProxies` instead.
|
|
104
|
+
*/
|
|
105
|
+
allowAnyOrigin: z.boolean().optional(),
|
|
106
|
+
roles: z.record(z.string(), roleSchema).optional(),
|
|
107
|
+
roleMapping: roleMappingSchema.optional(),
|
|
108
|
+
strict: z.boolean().optional(),
|
|
109
|
+
})
|
|
110
|
+
.strict()
|
|
111
|
+
.refine(cfg => cfg.allowAnyOrigin || (cfg.trustedProxies && cfg.trustedProxies.length > 0), {
|
|
112
|
+
message: 'forwarded-user trust mode requires trustedProxies (IP whitelist) OR allowAnyOrigin: true. Without either, every request is rejected — likely a misconfiguration. Set trustedProxies for production deployments behind a known proxy; set allowAnyOrigin: true only in dev or trusted private networks.',
|
|
113
|
+
path: ['trustedProxies'],
|
|
114
|
+
});
|
|
115
|
+
/**
|
|
116
|
+
* `cloudflare-access` trust mode — Cloudflare Zero Trust fronting
|
|
117
|
+
* the admin. The platform issues a signed JWT in
|
|
118
|
+
* `Cf-Access-Jwt-Assertion` (or `CF_Authorization` cookie); Gazetta
|
|
119
|
+
* verifies the signature against Cloudflare's published JWKS.
|
|
120
|
+
*
|
|
121
|
+
* # Why no source-IP check
|
|
122
|
+
*
|
|
123
|
+
* The signed JWT IS the trust. Source IP would be Cloudflare's edge
|
|
124
|
+
* regardless of the original client; verifying the signature is the
|
|
125
|
+
* security boundary.
|
|
126
|
+
*
|
|
127
|
+
* # `audience` claim verification
|
|
128
|
+
*
|
|
129
|
+
* Optional but strongly recommended. Cloudflare Access tokens carry
|
|
130
|
+
* an `aud` claim identifying the application; production deployments
|
|
131
|
+
* SHOULD set this to prevent token replay across other
|
|
132
|
+
* Access-protected apps in the same team.
|
|
133
|
+
*/
|
|
134
|
+
const cloudflareAccessAuthSchema = z
|
|
135
|
+
.object({
|
|
136
|
+
trust: z.literal('cloudflare-access'),
|
|
137
|
+
/**
|
|
138
|
+
* Cloudflare Zero Trust team domain (the part before
|
|
139
|
+
* `.cloudflareaccess.com`). Lowercase alphanumeric + hyphens.
|
|
140
|
+
*/
|
|
141
|
+
teamDomain: z.string().regex(/^[a-z0-9][a-z0-9-]*$/, 'teamDomain must be lowercase alphanumeric + hyphens'),
|
|
142
|
+
/** Optional aud claim — recommended for production. */
|
|
143
|
+
audience: z.string().optional(),
|
|
144
|
+
roles: z.record(z.string(), roleSchema).optional(),
|
|
145
|
+
roleMapping: roleMappingSchema.optional(),
|
|
146
|
+
strict: z.boolean().optional(),
|
|
147
|
+
})
|
|
148
|
+
.strict();
|
|
149
|
+
/**
|
|
150
|
+
* `azure-easy-auth` trust mode — Azure App Service Easy Auth.
|
|
151
|
+
* Trust boundary is the App Service sandbox; Gazetta just decodes
|
|
152
|
+
* the X-MS-CLIENT-PRINCIPAL header. No provider-specific config
|
|
153
|
+
* fields — the platform handles auth.
|
|
154
|
+
*/
|
|
155
|
+
const azureEasyAuthSchema = z
|
|
156
|
+
.object({
|
|
157
|
+
trust: z.literal('azure-easy-auth'),
|
|
158
|
+
roles: z.record(z.string(), roleSchema).optional(),
|
|
159
|
+
roleMapping: roleMappingSchema.optional(),
|
|
160
|
+
strict: z.boolean().optional(),
|
|
161
|
+
})
|
|
162
|
+
.strict();
|
|
163
|
+
/**
|
|
164
|
+
* `aws-cognito` trust mode — AWS ALB + Cognito user pool. JWT
|
|
165
|
+
* verification against per-region public keys.
|
|
166
|
+
*/
|
|
167
|
+
const awsCognitoAuthSchema = z
|
|
168
|
+
.object({
|
|
169
|
+
trust: z.literal('aws-cognito'),
|
|
170
|
+
/** AWS region (e.g. "us-east-1"). Required for the JWKS URL. */
|
|
171
|
+
region: z.string().regex(/^[a-z]{2}-[a-z]+-\d+$/, 'region must be an AWS region like "us-east-1"'),
|
|
172
|
+
/** Optional aud claim — Cognito user-pool app client id. */
|
|
173
|
+
audience: z.string().optional(),
|
|
174
|
+
roles: z.record(z.string(), roleSchema).optional(),
|
|
175
|
+
roleMapping: roleMappingSchema.optional(),
|
|
176
|
+
strict: z.boolean().optional(),
|
|
177
|
+
})
|
|
178
|
+
.strict();
|
|
179
|
+
/**
|
|
180
|
+
* `tailscale` trust mode — Tailscale Funnel / serve. Trust comes
|
|
181
|
+
* from the tailnet itself (only authenticated members can reach
|
|
182
|
+
* the listener). No provider-specific config.
|
|
183
|
+
*/
|
|
184
|
+
const tailscaleAuthSchema = z
|
|
185
|
+
.object({
|
|
186
|
+
trust: z.literal('tailscale'),
|
|
187
|
+
roles: z.record(z.string(), roleSchema).optional(),
|
|
188
|
+
roleMapping: roleMappingSchema.optional(),
|
|
189
|
+
strict: z.boolean().optional(),
|
|
190
|
+
})
|
|
191
|
+
.strict();
|
|
192
|
+
/**
|
|
193
|
+
* Top-level discriminated union. All v1 trust modes locked.
|
|
194
|
+
* Future plugin-supplied modes (per design-auth-rbac.md Q1's plugin
|
|
195
|
+
* promotion trigger) extend the union via the plugin contract — not
|
|
196
|
+
* by editing this file.
|
|
197
|
+
*/
|
|
198
|
+
export const AuthConfigSchema = z.discriminatedUnion('trust', [
|
|
199
|
+
noneAuthSchema,
|
|
200
|
+
forwardedUserAuthSchema,
|
|
201
|
+
cloudflareAccessAuthSchema,
|
|
202
|
+
azureEasyAuthSchema,
|
|
203
|
+
awsCognitoAuthSchema,
|
|
204
|
+
tailscaleAuthSchema,
|
|
205
|
+
]);
|
|
206
|
+
/**
|
|
207
|
+
* Reserved-prefix check. Future plugin-supplied capabilities use
|
|
208
|
+
* plugin-scoped prefixes (e.g., `@my-org/...:`); custom roles MUST
|
|
209
|
+
* NOT redefine reserved built-in prefixes with conflicting
|
|
210
|
+
* semantics. The role-resolver enforces this at load time.
|
|
211
|
+
*/
|
|
212
|
+
export function isReservedPrefix(capability) {
|
|
213
|
+
if (capability === '*')
|
|
214
|
+
return true;
|
|
215
|
+
const colonIdx = capability.indexOf(':');
|
|
216
|
+
if (colonIdx <= 0)
|
|
217
|
+
return false;
|
|
218
|
+
const prefix = capability.slice(0, colonIdx);
|
|
219
|
+
return RESERVED_CAPABILITY_PREFIXES.includes(prefix);
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/auth/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth-specific error taxonomy. Distinct from validation errors;
|
|
3
|
+
* downstream consumers (route handlers, audit recorder) catch these
|
|
4
|
+
* to map to the right HTTP status and audit outcome.
|
|
5
|
+
*
|
|
6
|
+
* # Why a dedicated taxonomy
|
|
7
|
+
*
|
|
8
|
+
* Per `design-plugins.md`'s Universal Provider Requirements, every
|
|
9
|
+
* provider surface has its own error taxonomy. Auth's errors split
|
|
10
|
+
* along three axes:
|
|
11
|
+
*
|
|
12
|
+
* - Configuration errors (invalid `site.config.ts admin.auth`
|
|
13
|
+
* block) — surface at boot, fail closed
|
|
14
|
+
* - Authentication errors (the upstream provider couldn't extract
|
|
15
|
+
* identity) — surface as 401
|
|
16
|
+
* - Authorization errors (principal lacks the required capability)
|
|
17
|
+
* — surface as 403
|
|
18
|
+
*
|
|
19
|
+
* # SOLID lenses
|
|
20
|
+
*
|
|
21
|
+
* - SRP: error classes own only error identity and HTTP-status
|
|
22
|
+
* mapping. They don't carry rendering logic — route handlers
|
|
23
|
+
* map to JSON via `error-response.ts`.
|
|
24
|
+
* - LSP: every subclass extends `AuthError` so route handlers
|
|
25
|
+
* can branch on the base class then narrow by instanceof.
|
|
26
|
+
*/
|
|
27
|
+
/** Base class for all auth-related errors. */
|
|
28
|
+
export declare class AuthError extends Error {
|
|
29
|
+
readonly name: string;
|
|
30
|
+
/** HTTP status the route should return. Subclasses override. */
|
|
31
|
+
readonly httpStatus: number;
|
|
32
|
+
constructor(message: string);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Thrown at config-load time when `admin.auth` is malformed (unknown
|
|
36
|
+
* trust mode, role-mapping references unknown capabilities, etc.).
|
|
37
|
+
* Admin won't start.
|
|
38
|
+
*/
|
|
39
|
+
export declare class AuthConfigurationError extends AuthError {
|
|
40
|
+
readonly name = "AuthConfigurationError";
|
|
41
|
+
readonly httpStatus = 500;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Thrown when the upstream provider's expected header / claim is
|
|
45
|
+
* missing, malformed, or fails signature verification. Surfaces as
|
|
46
|
+
* 401 with `WWW-Authenticate` hint pointing back at the upstream.
|
|
47
|
+
*/
|
|
48
|
+
export declare class AuthenticationError extends AuthError {
|
|
49
|
+
readonly name = "AuthenticationError";
|
|
50
|
+
readonly httpStatus = 401;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Thrown when an authenticated principal lacks the capability the
|
|
54
|
+
* route requires. Surfaces as 403 with structured body listing
|
|
55
|
+
* `missing` capabilities and the principal's `role`.
|
|
56
|
+
*/
|
|
57
|
+
export declare class AuthorizationError extends AuthError {
|
|
58
|
+
readonly name = "AuthorizationError";
|
|
59
|
+
readonly httpStatus = 403;
|
|
60
|
+
/**
|
|
61
|
+
* Capabilities the principal would need to authorize this request.
|
|
62
|
+
* Surfaced in the 403 body so authenticated users see what they
|
|
63
|
+
* can't do — per design-auth-rbac.md "Failure mode": existence-
|
|
64
|
+
* leak risk doesn't justify 404-hide-existence semantics for
|
|
65
|
+
* already-authenticated users.
|
|
66
|
+
*/
|
|
67
|
+
readonly missing: ReadonlyArray<string>;
|
|
68
|
+
/** Principal's role at decision time — surfaced in the 403 body. */
|
|
69
|
+
readonly role: string;
|
|
70
|
+
constructor(message: string, missing: ReadonlyArray<string>, role: string);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/auth/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,8CAA8C;AAC9C,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAkB,IAAI,EAAE,MAAM,CAAc;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAM;gBACrB,OAAO,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,SAAkB,IAAI,4BAA2B;IACjD,SAAkB,UAAU,OAAM;CACnC;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,SAAkB,IAAI,yBAAwB;IAC9C,SAAkB,UAAU,OAAM;CACnC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,SAAkB,IAAI,wBAAuB;IAC7C,SAAkB,UAAU,OAAM;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACvC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM;CAK1E"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth-specific error taxonomy. Distinct from validation errors;
|
|
3
|
+
* downstream consumers (route handlers, audit recorder) catch these
|
|
4
|
+
* to map to the right HTTP status and audit outcome.
|
|
5
|
+
*
|
|
6
|
+
* # Why a dedicated taxonomy
|
|
7
|
+
*
|
|
8
|
+
* Per `design-plugins.md`'s Universal Provider Requirements, every
|
|
9
|
+
* provider surface has its own error taxonomy. Auth's errors split
|
|
10
|
+
* along three axes:
|
|
11
|
+
*
|
|
12
|
+
* - Configuration errors (invalid `site.config.ts admin.auth`
|
|
13
|
+
* block) — surface at boot, fail closed
|
|
14
|
+
* - Authentication errors (the upstream provider couldn't extract
|
|
15
|
+
* identity) — surface as 401
|
|
16
|
+
* - Authorization errors (principal lacks the required capability)
|
|
17
|
+
* — surface as 403
|
|
18
|
+
*
|
|
19
|
+
* # SOLID lenses
|
|
20
|
+
*
|
|
21
|
+
* - SRP: error classes own only error identity and HTTP-status
|
|
22
|
+
* mapping. They don't carry rendering logic — route handlers
|
|
23
|
+
* map to JSON via `error-response.ts`.
|
|
24
|
+
* - LSP: every subclass extends `AuthError` so route handlers
|
|
25
|
+
* can branch on the base class then narrow by instanceof.
|
|
26
|
+
*/
|
|
27
|
+
/** Base class for all auth-related errors. */
|
|
28
|
+
export class AuthError extends Error {
|
|
29
|
+
name = 'AuthError';
|
|
30
|
+
/** HTTP status the route should return. Subclasses override. */
|
|
31
|
+
httpStatus = 500;
|
|
32
|
+
constructor(message) {
|
|
33
|
+
super(message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Thrown at config-load time when `admin.auth` is malformed (unknown
|
|
38
|
+
* trust mode, role-mapping references unknown capabilities, etc.).
|
|
39
|
+
* Admin won't start.
|
|
40
|
+
*/
|
|
41
|
+
export class AuthConfigurationError extends AuthError {
|
|
42
|
+
name = 'AuthConfigurationError';
|
|
43
|
+
httpStatus = 500;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Thrown when the upstream provider's expected header / claim is
|
|
47
|
+
* missing, malformed, or fails signature verification. Surfaces as
|
|
48
|
+
* 401 with `WWW-Authenticate` hint pointing back at the upstream.
|
|
49
|
+
*/
|
|
50
|
+
export class AuthenticationError extends AuthError {
|
|
51
|
+
name = 'AuthenticationError';
|
|
52
|
+
httpStatus = 401;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Thrown when an authenticated principal lacks the capability the
|
|
56
|
+
* route requires. Surfaces as 403 with structured body listing
|
|
57
|
+
* `missing` capabilities and the principal's `role`.
|
|
58
|
+
*/
|
|
59
|
+
export class AuthorizationError extends AuthError {
|
|
60
|
+
name = 'AuthorizationError';
|
|
61
|
+
httpStatus = 403;
|
|
62
|
+
/**
|
|
63
|
+
* Capabilities the principal would need to authorize this request.
|
|
64
|
+
* Surfaced in the 403 body so authenticated users see what they
|
|
65
|
+
* can't do — per design-auth-rbac.md "Failure mode": existence-
|
|
66
|
+
* leak risk doesn't justify 404-hide-existence semantics for
|
|
67
|
+
* already-authenticated users.
|
|
68
|
+
*/
|
|
69
|
+
missing;
|
|
70
|
+
/** Principal's role at decision time — surfaced in the 403 body. */
|
|
71
|
+
role;
|
|
72
|
+
constructor(message, missing, role) {
|
|
73
|
+
super(message);
|
|
74
|
+
this.missing = missing;
|
|
75
|
+
this.role = role;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/auth/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,8CAA8C;AAC9C,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChB,IAAI,GAAW,WAAW,CAAA;IAC5C,gEAAgE;IACvD,UAAU,GAAW,GAAG,CAAA;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACjC,IAAI,GAAG,wBAAwB,CAAA;IAC/B,UAAU,GAAG,GAAG,CAAA;CACnC;AAED;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAC9B,IAAI,GAAG,qBAAqB,CAAA;IAC5B,UAAU,GAAG,GAAG,CAAA;CACnC;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC7B,IAAI,GAAG,oBAAoB,CAAA;IAC3B,UAAU,GAAG,GAAG,CAAA;IAClC;;;;;;OAMG;IACM,OAAO,CAAuB;IACvC,oEAAoE;IAC3D,IAAI,CAAQ;IACrB,YAAY,OAAe,EAAE,OAA8B,EAAE,IAAY;QACvE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `AuthIdentityProvider` factory — constructs the right provider
|
|
3
|
+
* from the typed `admin.auth` block in `site.config.ts`.
|
|
4
|
+
*
|
|
5
|
+
* # Why a factory and not direct provider exports
|
|
6
|
+
*
|
|
7
|
+
* Operators write `admin.auth: { trust: 'cloudflare-access', teamDomain: 'acme' }`
|
|
8
|
+
* in `site.config.ts`. The admin-api boot code receives this config
|
|
9
|
+
* (typed as `AuthConfig`) and needs to dispatch to the right provider
|
|
10
|
+
* factory. Centralizing the dispatch here keeps the built-in
|
|
11
|
+
* trust-mode set closed (per `design-auth-rbac.md` Q1) while
|
|
12
|
+
* leaving the operator-config field type open to any
|
|
13
|
+
* `AuthIdentityProvider` instance — including those returned by
|
|
14
|
+
* plugin-supplied factories.
|
|
15
|
+
*
|
|
16
|
+
* # Plugin promotion path
|
|
17
|
+
*
|
|
18
|
+
* Per ADR-0009 + `design-plugins.md`: external trust modes ship as
|
|
19
|
+
* npm packages exporting a factory function returning
|
|
20
|
+
* `AuthIdentityProvider`. The operator imports the factory and
|
|
21
|
+
* assigns its result to `admin.auth` directly (Pattern A factory-
|
|
22
|
+
* call-at-field). No runtime register method; no central registry
|
|
23
|
+
* for plugin-contributed providers — the type system accepts any
|
|
24
|
+
* conforming instance.
|
|
25
|
+
*
|
|
26
|
+
* # SOLID lenses
|
|
27
|
+
*
|
|
28
|
+
* - SRP: dispatch only. Doesn't read from disk, doesn't construct
|
|
29
|
+
* middleware. Pure function over (config) → AuthIdentityProvider.
|
|
30
|
+
* - OCP: adding a trust mode is one new case in the switch + one
|
|
31
|
+
* import. Existing cases unchanged.
|
|
32
|
+
* - DIP: callers depend on AuthIdentityProvider, not on which
|
|
33
|
+
* trust mode the operator picked.
|
|
34
|
+
*/
|
|
35
|
+
import type { AuthIdentityProvider } from './provider.js';
|
|
36
|
+
import type { AuthConfig } from './config.js';
|
|
37
|
+
/**
|
|
38
|
+
* Build the configured `AuthIdentityProvider`. Returns the
|
|
39
|
+
* `none`-mode provider when `config` is undefined (the default
|
|
40
|
+
* when `site.config.ts` has no `admin.auth` block).
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildAuthProvider(config: AuthConfig | undefined): AuthIdentityProvider;
|
|
43
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/auth/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAS7C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,oBAAoB,CAkCtF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AuthConfigurationError } from './errors.js';
|
|
2
|
+
import { noneAuthProvider } from './providers/none.js';
|
|
3
|
+
import { createForwardedUserAuthProvider } from './providers/forwarded-user.js';
|
|
4
|
+
import { createCloudflareAccessAuthProvider } from './providers/cloudflare-access.js';
|
|
5
|
+
import { createAzureEasyAuthProvider } from './providers/azure-easy-auth.js';
|
|
6
|
+
import { createAwsCognitoAuthProvider } from './providers/aws-cognito.js';
|
|
7
|
+
import { createTailscaleAuthProvider } from './providers/tailscale.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build the configured `AuthIdentityProvider`. Returns the
|
|
10
|
+
* `none`-mode provider when `config` is undefined (the default
|
|
11
|
+
* when `site.config.ts` has no `admin.auth` block).
|
|
12
|
+
*/
|
|
13
|
+
export function buildAuthProvider(config) {
|
|
14
|
+
if (!config)
|
|
15
|
+
return noneAuthProvider;
|
|
16
|
+
switch (config.trust) {
|
|
17
|
+
case 'none':
|
|
18
|
+
return noneAuthProvider;
|
|
19
|
+
case 'forwarded-user':
|
|
20
|
+
return createForwardedUserAuthProvider({
|
|
21
|
+
trustedProxies: config.trustedProxies,
|
|
22
|
+
allowAnyOrigin: config.allowAnyOrigin,
|
|
23
|
+
});
|
|
24
|
+
case 'cloudflare-access':
|
|
25
|
+
return createCloudflareAccessAuthProvider({
|
|
26
|
+
teamDomain: config.teamDomain,
|
|
27
|
+
audience: config.audience,
|
|
28
|
+
});
|
|
29
|
+
case 'azure-easy-auth':
|
|
30
|
+
return createAzureEasyAuthProvider({});
|
|
31
|
+
case 'aws-cognito':
|
|
32
|
+
return createAwsCognitoAuthProvider({
|
|
33
|
+
region: config.region,
|
|
34
|
+
audience: config.audience,
|
|
35
|
+
});
|
|
36
|
+
case 'tailscale':
|
|
37
|
+
return createTailscaleAuthProvider({});
|
|
38
|
+
default: {
|
|
39
|
+
// Exhaustive check — the discriminated union should make
|
|
40
|
+
// this unreachable, but defense-in-depth against an operator
|
|
41
|
+
// bypassing the schema (e.g., constructing the manifest
|
|
42
|
+
// programmatically).
|
|
43
|
+
const exhaustiveCheck = config;
|
|
44
|
+
throw new AuthConfigurationError(`Unknown trust mode in admin.auth: ${JSON.stringify(exhaustiveCheck)}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/auth/factory.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAA;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAEtE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA8B;IAC9D,IAAI,CAAC,MAAM;QAAE,OAAO,gBAAgB,CAAA;IAEpC,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAA;QACzB,KAAK,gBAAgB;YACnB,OAAO,+BAA+B,CAAC;gBACrC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAA;QACJ,KAAK,mBAAmB;YACtB,OAAO,kCAAkC,CAAC;gBACxC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAA;QACJ,KAAK,iBAAiB;YACpB,OAAO,2BAA2B,CAAC,EAAE,CAAC,CAAA;QACxC,KAAK,aAAa;YAChB,OAAO,4BAA4B,CAAC;gBAClC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAA;QACJ,KAAK,WAAW;YACd,OAAO,2BAA2B,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,CAAC,CAAC;YACR,yDAAyD;YACzD,6DAA6D;YAC7D,wDAAwD;YACxD,qBAAqB;YACrB,MAAM,eAAe,GAAU,MAAM,CAAA;YACrC,MAAM,IAAI,sBAAsB,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QAC1G,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth + RBAC barrel export. Imports are stable across cuts;
|
|
3
|
+
* subsequent cuts (forwarded-user, cloudflare-access, etc.) add
|
|
4
|
+
* exports without breaking the existing surface.
|
|
5
|
+
*/
|
|
6
|
+
export type { AuthRequest, AuthIdentityProvider } from './provider.js';
|
|
7
|
+
export type { Principal, Role, RoleMapping, TrustMode, BuiltInCapability, } from './types.js';
|
|
8
|
+
export { BUILT_IN_ROLES, RESERVED_CAPABILITY_PREFIXES } from './types.js';
|
|
9
|
+
export { AuthError, AuthConfigurationError, AuthenticationError, AuthorizationError } from './errors.js';
|
|
10
|
+
export { AuthConfigSchema, isReservedPrefix, type AuthConfig } from './config.js';
|
|
11
|
+
export { noneAuthProvider, UNKNOWN_ACTOR_ID } from './providers/none.js';
|
|
12
|
+
export { createForwardedUserAuthProvider, type ForwardedUserConfig } from './providers/forwarded-user.js';
|
|
13
|
+
export { createCloudflareAccessAuthProvider, type CloudflareAccessConfig } from './providers/cloudflare-access.js';
|
|
14
|
+
export { createAzureEasyAuthProvider, type AzureEasyAuthConfig } from './providers/azure-easy-auth.js';
|
|
15
|
+
export { createAwsCognitoAuthProvider, type AwsCognitoConfig } from './providers/aws-cognito.js';
|
|
16
|
+
export { createTailscaleAuthProvider, type TailscaleConfig } from './providers/tailscale.js';
|
|
17
|
+
export { ipMatchesAny, parseRule, parseRules, type ParsedRule } from './ip-match.js';
|
|
18
|
+
export { capabilityGrants, expandRole } from './capabilities.js';
|
|
19
|
+
export { resolveRole, validateCustomRoles, type ResolveRoleArgs, type ResolvedRole } from './role-resolver.js';
|
|
20
|
+
export { buildAuthProvider } from './factory.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACtE,YAAY,EACV,SAAS,EACT,IAAI,EACJ,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACxG,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,+BAA+B,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACzG,OAAO,EAAE,kCAAkC,EAAE,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAClH,OAAO,EAAE,2BAA2B,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACtG,OAAO,EAAE,4BAA4B,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAChG,OAAO,EAAE,2BAA2B,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { BUILT_IN_ROLES, RESERVED_CAPABILITY_PREFIXES } from './types.js';
|
|
2
|
+
export { AuthError, AuthConfigurationError, AuthenticationError, AuthorizationError } from './errors.js';
|
|
3
|
+
export { AuthConfigSchema, isReservedPrefix } from './config.js';
|
|
4
|
+
export { noneAuthProvider, UNKNOWN_ACTOR_ID } from './providers/none.js';
|
|
5
|
+
export { createForwardedUserAuthProvider } from './providers/forwarded-user.js';
|
|
6
|
+
export { createCloudflareAccessAuthProvider } from './providers/cloudflare-access.js';
|
|
7
|
+
export { createAzureEasyAuthProvider } from './providers/azure-easy-auth.js';
|
|
8
|
+
export { createAwsCognitoAuthProvider } from './providers/aws-cognito.js';
|
|
9
|
+
export { createTailscaleAuthProvider } from './providers/tailscale.js';
|
|
10
|
+
export { ipMatchesAny, parseRule, parseRules } from './ip-match.js';
|
|
11
|
+
export { capabilityGrants, expandRole } from './capabilities.js';
|
|
12
|
+
export { resolveRole, validateCustomRoles } from './role-resolver.js';
|
|
13
|
+
export { buildAuthProvider } from './factory.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACxG,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,+BAA+B,EAA4B,MAAM,+BAA+B,CAAA;AACzG,OAAO,EAAE,kCAAkC,EAA+B,MAAM,kCAAkC,CAAA;AAClH,OAAO,EAAE,2BAA2B,EAA4B,MAAM,gCAAgC,CAAA;AACtG,OAAO,EAAE,4BAA4B,EAAyB,MAAM,4BAA4B,CAAA;AAChG,OAAO,EAAE,2BAA2B,EAAwB,MAAM,0BAA0B,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAA2C,MAAM,oBAAoB,CAAA;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
|