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,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook error taxonomy.
|
|
3
|
+
*
|
|
4
|
+
* Per design-hooks.md, three distinct error classes carry different
|
|
5
|
+
* dispatcher semantics:
|
|
6
|
+
*
|
|
7
|
+
* - `HookCancellation`: a `before*` hook threw to cancel the
|
|
8
|
+
* operation. Operation aborts; audit records
|
|
9
|
+
* `outcome: 'hook-cancelled'`. The original error (if not a
|
|
10
|
+
* `HookCancellation`) is wrapped so call sites can distinguish
|
|
11
|
+
* "hook explicitly cancelled" from "hook crashed."
|
|
12
|
+
*
|
|
13
|
+
* - `HookTimeout`: a hook's per-handler timeout fired before the
|
|
14
|
+
* handler resolved. For `before*` hooks this cancels the
|
|
15
|
+
* operation (same handling as `HookCancellation`); for `after*`
|
|
16
|
+
* hooks it's logged + counted but doesn't propagate.
|
|
17
|
+
*
|
|
18
|
+
* - `RegistrationAfterInitError`: thrown when code tries to
|
|
19
|
+
* register a hook after the boot-time registration phase has
|
|
20
|
+
* finished. `buildHooksRegistry({ contributions })` registers
|
|
21
|
+
* all factory contributions then calls `seal()`. Any subsequent
|
|
22
|
+
* `register(...)` surfaces this error — a deferred Promise that
|
|
23
|
+
* registers from inside a hook handler, for example, leaks past
|
|
24
|
+
* the registration window.
|
|
25
|
+
*
|
|
26
|
+
* # SOLID lenses
|
|
27
|
+
*
|
|
28
|
+
* - SRP: each error class names one failure mode; consumers
|
|
29
|
+
* branch on `instanceof` to discriminate.
|
|
30
|
+
* - LSP: each subclass `extends HookError` so a `catch (err: HookError)`
|
|
31
|
+
* handler covers every hook-layer failure.
|
|
32
|
+
* - DIP: callers depend on the abstract `HookError` for catch-all
|
|
33
|
+
* handling; specific subclasses for fine-grained recovery.
|
|
34
|
+
*/
|
|
35
|
+
/** Base class for all hook-layer errors. */
|
|
36
|
+
export class HookError extends Error {
|
|
37
|
+
name = 'HookError';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A `before*` hook threw to cancel the operation, OR a hook handler
|
|
41
|
+
* threw a non-cancellation error that the dispatcher wraps for
|
|
42
|
+
* uniform handling.
|
|
43
|
+
*
|
|
44
|
+
* The originating handler's name is captured for audit metadata.
|
|
45
|
+
* The original error (if any) is exposed via `cause` so operators
|
|
46
|
+
* can investigate handler crashes vs. explicit cancellations.
|
|
47
|
+
*/
|
|
48
|
+
export class HookCancellation extends HookError {
|
|
49
|
+
name = 'HookCancellation';
|
|
50
|
+
/** The hook that cancelled — either `meta.name` or the file basename. */
|
|
51
|
+
hookName;
|
|
52
|
+
/** The phase the hook was firing in. */
|
|
53
|
+
phase;
|
|
54
|
+
constructor(opts) {
|
|
55
|
+
super(opts.message ?? `Hook "${opts.hookName}" cancelled the ${opts.phase} operation`, {
|
|
56
|
+
cause: opts.cause,
|
|
57
|
+
});
|
|
58
|
+
this.hookName = opts.hookName;
|
|
59
|
+
this.phase = opts.phase;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A hook's per-handler timeout fired. The handler may still be
|
|
64
|
+
* resolving (the dispatcher races the handler against a setTimeout-
|
|
65
|
+
* backed promise) — but the operation can't wait for it.
|
|
66
|
+
*/
|
|
67
|
+
export class HookTimeout extends HookError {
|
|
68
|
+
name = 'HookTimeout';
|
|
69
|
+
hookName;
|
|
70
|
+
phase;
|
|
71
|
+
timeoutMs;
|
|
72
|
+
constructor(opts) {
|
|
73
|
+
super(`Hook "${opts.hookName}" timed out after ${opts.timeoutMs}ms in ${opts.phase}`);
|
|
74
|
+
this.hookName = opts.hookName;
|
|
75
|
+
this.phase = opts.phase;
|
|
76
|
+
this.timeoutMs = opts.timeoutMs;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Thrown when `register(...)` is called on a sealed `HookRegistry`
|
|
81
|
+
* (post-boot).
|
|
82
|
+
*
|
|
83
|
+
* Registration window per ADR-0009 + `design-plugins.md`:
|
|
84
|
+
* `buildHooksRegistry({ contributions })` walks `admin.hooks`
|
|
85
|
+
* factory contributions at boot, registers each entry, then calls
|
|
86
|
+
* `seal()`. Any subsequent `register(...)` surfaces this error —
|
|
87
|
+
* for instance a deferred Promise inside a factory that resolves
|
|
88
|
+
* after the registration window closed, or a hook handler that
|
|
89
|
+
* tries to register additional hooks at runtime.
|
|
90
|
+
*/
|
|
91
|
+
export class RegistrationAfterInitError extends HookError {
|
|
92
|
+
name = 'RegistrationAfterInitError';
|
|
93
|
+
/** Source identity (plugin name / `'site-local'`) attempting late registration. */
|
|
94
|
+
source;
|
|
95
|
+
/** Phase the late registration targeted. */
|
|
96
|
+
phase;
|
|
97
|
+
constructor(opts) {
|
|
98
|
+
super(`Hook registration window has closed. Source "${opts.source}" attempted to register a "${opts.phase}" handler after admin init completed. Move the registration into the plugin's init() function.`);
|
|
99
|
+
this.source = opts.source;
|
|
100
|
+
this.phase = opts.phase;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/hooks/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,4CAA4C;AAC5C,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChB,IAAI,GAAW,WAAW,CAAA;CAC7C;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC3B,IAAI,GAAG,kBAAkB,CAAA;IAC3C,yEAAyE;IAChE,QAAQ,CAAQ;IACzB,wCAAwC;IAC/B,KAAK,CAAQ;IAEtB,YAAY,IAA4E;QACtF,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,QAAQ,mBAAmB,IAAI,CAAC,KAAK,YAAY,EAAE;YACrF,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IACtB,IAAI,GAAG,aAAa,CAAA;IAC7B,QAAQ,CAAQ;IAChB,KAAK,CAAQ;IACb,SAAS,CAAQ;IAE1B,YAAY,IAA4D;QACtE,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,qBAAqB,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACrF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACjC,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,0BAA2B,SAAQ,SAAS;IACrC,IAAI,GAAG,4BAA4B,CAAA;IACrD,mFAAmF;IAC1E,MAAM,CAAQ;IACvB,4CAA4C;IACnC,KAAK,CAAQ;IAEtB,YAAY,IAAuC;QACjD,KAAK,CACH,gDAAgD,IAAI,CAAC,MAAM,8BAA8B,IAAI,CAAC,KAAK,gGAAgG,CACpM,CAAA;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks barrel. Cut 1 ships the type-only foundation; subsequent
|
|
3
|
+
* cuts add the registry (Cut 2), wired lifecycle phases (Cuts 4-6),
|
|
4
|
+
* audit integration (Cut 7), review phases (Cut 8), and the
|
|
5
|
+
* factory-contribution registration path (Cut 9).
|
|
6
|
+
*/
|
|
7
|
+
export type { HookPhase, HookScope, HookContext, HookLogger, ReadOnlySiteConfig, HookHandler, HookOptions, HookRegistration, BeforeSaveHook, AfterSaveHook, AfterLoadHook, SaveResult, BeforePublishHook, AfterPublishHook, PublishItem, PublishHookResult, BeforeUploadHook, AfterUploadHook, UploadHookAsset, UploadHookPayload, UploadHookResult, ReviewTransition, BeforeReviewTransitionHook, AfterReviewTransitionHook, } from './types.js';
|
|
8
|
+
export type { ReadOnlyStorageProvider } from './storage.js';
|
|
9
|
+
export { HookError, HookCancellation, HookTimeout, RegistrationAfterInitError } from './errors.js';
|
|
10
|
+
export { HookRegistry } from './registry.js';
|
|
11
|
+
export { dispatchBeforeSave, dispatchAfterSave, dispatchAfterLoad, dispatchBeforePublish, dispatchAfterPublish, dispatchBeforeUpload, dispatchAfterUpload, } from './dispatch.js';
|
|
12
|
+
export type { HookContribution, HookEntry } from './contribution.js';
|
|
13
|
+
export { buildHookContext, type BuildHookContextOptions } from './context.js';
|
|
14
|
+
export { eventFromRegistration, type HookFiringEmitter, type HookFiringEvent, } from './audit-emitter.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { HookError, HookCancellation, HookTimeout, RegistrationAfterInitError } from './errors.js';
|
|
2
|
+
export { HookRegistry } from './registry.js';
|
|
3
|
+
export { dispatchBeforeSave, dispatchAfterSave, dispatchAfterLoad, dispatchBeforePublish, dispatchAfterPublish, dispatchBeforeUpload, dispatchAfterUpload, } from './dispatch.js';
|
|
4
|
+
export { buildHookContext } from './context.js';
|
|
5
|
+
export { eventFromRegistration, } from './audit-emitter.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,gBAAgB,EAAgC,MAAM,cAAc,CAAA;AAC7E,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { HookHandler, HookOptions, HookPhase, HookRegistration } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* In-process registry for hook handlers. v1 scope: one instance
|
|
4
|
+
* per admin process, constructed at boot, sealed after plugin
|
|
5
|
+
* init resolves. Tests construct their own.
|
|
6
|
+
*/
|
|
7
|
+
export declare class HookRegistry {
|
|
8
|
+
/**
|
|
9
|
+
* Per-phase registration arrays. Insertion order = original
|
|
10
|
+
* registration order; sort happens lazily on `getByPhase()` calls
|
|
11
|
+
* so concurrent registrations don't pay the sort cost N times.
|
|
12
|
+
*/
|
|
13
|
+
private readonly storage;
|
|
14
|
+
/** Stable monotonic counter for tie-breaking equal-priority entries. */
|
|
15
|
+
private nextSequence;
|
|
16
|
+
/** Once true, `register()` throws RegistrationAfterInitError. */
|
|
17
|
+
private sealed;
|
|
18
|
+
/**
|
|
19
|
+
* Register a handler for a phase.
|
|
20
|
+
*
|
|
21
|
+
* Throws `RegistrationAfterInitError` after `seal()` was called.
|
|
22
|
+
*
|
|
23
|
+
* `source` identifies who owns the handler (`'site-local'`,
|
|
24
|
+
* plugin name, `'built-in'`). Surfaces in audit metadata + error
|
|
25
|
+
* messages.
|
|
26
|
+
*/
|
|
27
|
+
register<P extends HookPhase>(phase: P, handler: HookHandler<P>, options?: HookOptions, source?: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Retrieve every registration for a phase in priority order
|
|
30
|
+
* (lower priority first). Stable: same-priority entries
|
|
31
|
+
* preserve registration order.
|
|
32
|
+
*
|
|
33
|
+
* Returns a fresh array; callers can mutate without affecting
|
|
34
|
+
* registry state.
|
|
35
|
+
*/
|
|
36
|
+
getByPhase<P extends HookPhase>(phase: P): ReadonlyArray<HookRegistration<P>>;
|
|
37
|
+
/**
|
|
38
|
+
* Total registration count. Used by diagnostics; tests pin via
|
|
39
|
+
* this rather than reaching into private state.
|
|
40
|
+
*/
|
|
41
|
+
size(phase?: HookPhase): number;
|
|
42
|
+
/**
|
|
43
|
+
* Seal the registry — subsequent registrations throw. Idempotent
|
|
44
|
+
* (calling twice is a no-op; doesn't unseal).
|
|
45
|
+
*/
|
|
46
|
+
seal(): void;
|
|
47
|
+
/**
|
|
48
|
+
* True after `seal()` has been called. Used by tests + plugin
|
|
49
|
+
* loader diagnostics.
|
|
50
|
+
*/
|
|
51
|
+
isSealed(): boolean;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKvF;;;;GAIG;AACH,qBAAa,YAAY;IACvB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgD;IACxE,wEAAwE;IACxE,OAAO,CAAC,YAAY,CAAI;IACxB,iEAAiE;IACjE,OAAO,CAAC,MAAM,CAAQ;IAEtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,WAAgB,EACzB,MAAM,GAAE,MAAqB,GAC5B,IAAI;IAkBP;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAkB7E;;;OAGG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM;IAS/B;;;OAGG;IACH,IAAI,IAAI,IAAI;IAIZ;;;OAGG;IACH,QAAQ,IAAI,OAAO;CAGpB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `HookRegistry` — priority-sorted, phase-keyed registration store.
|
|
3
|
+
*
|
|
4
|
+
* Per design-hooks.md "Composition (Q3 locked)":
|
|
5
|
+
*
|
|
6
|
+
* - Lower priority runs earlier; default 100
|
|
7
|
+
* - Same priority resolves to registration order (stable sort)
|
|
8
|
+
* - Priority bands (convention only): 0-99 built-in, 100-999
|
|
9
|
+
* plugins, 1000+ site-local
|
|
10
|
+
*
|
|
11
|
+
* # Why a single registry per process, not per-phase
|
|
12
|
+
*
|
|
13
|
+
* Each phase has its own handler signature, but the registry's
|
|
14
|
+
* job (sort by priority, look up by phase, seal post-init) is
|
|
15
|
+
* uniform. One class with `Map<HookPhase, HookRegistration[]>`
|
|
16
|
+
* internally is simpler than seven phase-specific registry
|
|
17
|
+
* classes and makes "all phases see the same seal" trivially
|
|
18
|
+
* true.
|
|
19
|
+
*
|
|
20
|
+
* # Sealing semantics
|
|
21
|
+
*
|
|
22
|
+
* `seal()` flips a flag; any subsequent `register(...)` call
|
|
23
|
+
* throws `RegistrationAfterInitError`. Per ADR-0009 +
|
|
24
|
+
* `design-plugins.md`, `buildHooksRegistry({ contributions })`
|
|
25
|
+
* walks `admin.hooks` factory contributions at boot, registers
|
|
26
|
+
* each entry, then calls `seal()`. Tests construct an unsealed
|
|
27
|
+
* registry directly.
|
|
28
|
+
*
|
|
29
|
+
* # SOLID lenses
|
|
30
|
+
*
|
|
31
|
+
* - SRP: registry owns (a) storage of registrations and (b)
|
|
32
|
+
* priority-sorted retrieval. Dispatch is a peer module that
|
|
33
|
+
* READS from the registry; doesn't mutate.
|
|
34
|
+
* - OCP: adding a new phase extends the type-level union; the
|
|
35
|
+
* registry's storage shape (`Map<HookPhase, ...>`) covers
|
|
36
|
+
* new entries without code changes.
|
|
37
|
+
* - DIP: dispatcher depends on `HookRegistry`'s public surface;
|
|
38
|
+
* storage layout is the implementation detail.
|
|
39
|
+
*/
|
|
40
|
+
import { RegistrationAfterInitError } from './errors.js';
|
|
41
|
+
const DEFAULT_PRIORITY = 100;
|
|
42
|
+
const DEFAULT_TIMEOUT_MS = 5000;
|
|
43
|
+
/**
|
|
44
|
+
* In-process registry for hook handlers. v1 scope: one instance
|
|
45
|
+
* per admin process, constructed at boot, sealed after plugin
|
|
46
|
+
* init resolves. Tests construct their own.
|
|
47
|
+
*/
|
|
48
|
+
export class HookRegistry {
|
|
49
|
+
/**
|
|
50
|
+
* Per-phase registration arrays. Insertion order = original
|
|
51
|
+
* registration order; sort happens lazily on `getByPhase()` calls
|
|
52
|
+
* so concurrent registrations don't pay the sort cost N times.
|
|
53
|
+
*/
|
|
54
|
+
storage = new Map();
|
|
55
|
+
/** Stable monotonic counter for tie-breaking equal-priority entries. */
|
|
56
|
+
nextSequence = 0;
|
|
57
|
+
/** Once true, `register()` throws RegistrationAfterInitError. */
|
|
58
|
+
sealed = false;
|
|
59
|
+
/**
|
|
60
|
+
* Register a handler for a phase.
|
|
61
|
+
*
|
|
62
|
+
* Throws `RegistrationAfterInitError` after `seal()` was called.
|
|
63
|
+
*
|
|
64
|
+
* `source` identifies who owns the handler (`'site-local'`,
|
|
65
|
+
* plugin name, `'built-in'`). Surfaces in audit metadata + error
|
|
66
|
+
* messages.
|
|
67
|
+
*/
|
|
68
|
+
register(phase, handler, options = {}, source = 'site-local') {
|
|
69
|
+
if (this.sealed) {
|
|
70
|
+
throw new RegistrationAfterInitError({ source, phase });
|
|
71
|
+
}
|
|
72
|
+
const registration = {
|
|
73
|
+
phase,
|
|
74
|
+
handler,
|
|
75
|
+
priority: options.priority ?? DEFAULT_PRIORITY,
|
|
76
|
+
name: options.name ?? source,
|
|
77
|
+
timeout: options.timeout ?? DEFAULT_TIMEOUT_MS,
|
|
78
|
+
sequence: this.nextSequence++,
|
|
79
|
+
source,
|
|
80
|
+
};
|
|
81
|
+
const list = this.storage.get(phase) ?? [];
|
|
82
|
+
list.push(registration);
|
|
83
|
+
this.storage.set(phase, list);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Retrieve every registration for a phase in priority order
|
|
87
|
+
* (lower priority first). Stable: same-priority entries
|
|
88
|
+
* preserve registration order.
|
|
89
|
+
*
|
|
90
|
+
* Returns a fresh array; callers can mutate without affecting
|
|
91
|
+
* registry state.
|
|
92
|
+
*/
|
|
93
|
+
getByPhase(phase) {
|
|
94
|
+
const list = this.storage.get(phase) ?? [];
|
|
95
|
+
// Sort a copy so concurrent registrations during iteration
|
|
96
|
+
// don't reorder the in-place array. Stable sort: tie-break
|
|
97
|
+
// by sequence preserves registration order for same-priority
|
|
98
|
+
// entries.
|
|
99
|
+
//
|
|
100
|
+
// Cast through `unknown`: each phase-keyed Map slot only
|
|
101
|
+
// contains registrations matching its key (enforced at
|
|
102
|
+
// `register()`), but TS conditional types don't propagate
|
|
103
|
+
// through Map's value variance. The runtime invariant holds.
|
|
104
|
+
const sorted = [...list].sort((a, b) => {
|
|
105
|
+
if (a.priority !== b.priority)
|
|
106
|
+
return a.priority - b.priority;
|
|
107
|
+
return a.sequence - b.sequence;
|
|
108
|
+
});
|
|
109
|
+
return sorted;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Total registration count. Used by diagnostics; tests pin via
|
|
113
|
+
* this rather than reaching into private state.
|
|
114
|
+
*/
|
|
115
|
+
size(phase) {
|
|
116
|
+
if (phase === undefined) {
|
|
117
|
+
let total = 0;
|
|
118
|
+
for (const list of this.storage.values())
|
|
119
|
+
total += list.length;
|
|
120
|
+
return total;
|
|
121
|
+
}
|
|
122
|
+
return this.storage.get(phase)?.length ?? 0;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Seal the registry — subsequent registrations throw. Idempotent
|
|
126
|
+
* (calling twice is a no-op; doesn't unseal).
|
|
127
|
+
*/
|
|
128
|
+
seal() {
|
|
129
|
+
this.sealed = true;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* True after `seal()` has been called. Used by tests + plugin
|
|
133
|
+
* loader diagnostics.
|
|
134
|
+
*/
|
|
135
|
+
isSealed() {
|
|
136
|
+
return this.sealed;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAGxD,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAE/B;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACvB;;;;OAIG;IACc,OAAO,GAAuC,IAAI,GAAG,EAAE,CAAA;IACxE,wEAAwE;IAChE,YAAY,GAAG,CAAC,CAAA;IACxB,iEAAiE;IACzD,MAAM,GAAG,KAAK,CAAA;IAEtB;;;;;;;;OAQG;IACH,QAAQ,CACN,KAAQ,EACR,OAAuB,EACvB,UAAuB,EAAE,EACzB,SAAiB,YAAY;QAE7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,0BAA0B,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,YAAY,GAAwB;YACxC,KAAK;YACL,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,gBAAgB;YAC9C,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,kBAAkB;YAC9C,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE;YAC7B,MAAM;SACP,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAgC,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAsB,KAAQ;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC1C,2DAA2D;QAC3D,2DAA2D;QAC3D,6DAA6D;QAC7D,WAAW;QACX,EAAE;QACF,yDAAyD;QACzD,uDAAuD;QACvD,0DAA0D;QAC1D,6DAA6D;QAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;YAC7D,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;QAChC,CAAC,CAAC,CAAA;QACF,OAAO,MAAuD,CAAA;IAChE,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAiB;QACpB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAA;YAC9D,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only storage view for HookContext.
|
|
3
|
+
*
|
|
4
|
+
* Per design-hooks.md "Mutation rules" #6: hooks can read but not
|
|
5
|
+
* write storage. Writes go through the operation that fired the
|
|
6
|
+
* hook (mutating the returned payload). Prevents hook-vs-operation
|
|
7
|
+
* write races.
|
|
8
|
+
*
|
|
9
|
+
* # Why a separate type, not a Proxy at this stage
|
|
10
|
+
*
|
|
11
|
+
* Cut 1 ships TYPES only. The dispatcher (Cut 2) constructs the
|
|
12
|
+
* read-only view at HookContext build time — design open question 2
|
|
13
|
+
* recommends a Proxy implementation for less code duplication, but
|
|
14
|
+
* the TYPE we expose to handlers is a structural subset of
|
|
15
|
+
* `StorageProvider`. Whether the runtime uses Proxy filtering or a
|
|
16
|
+
* dedicated wrapper class is the dispatcher's concern; the type
|
|
17
|
+
* stays narrow either way.
|
|
18
|
+
*
|
|
19
|
+
* # Why narrow, not extending StorageProvider
|
|
20
|
+
*
|
|
21
|
+
* - SRP: hooks don't need write APIs. Exposing them via Pick<>
|
|
22
|
+
* would require hooks to know which methods are forbidden.
|
|
23
|
+
* - LSP: a hook receiving `ReadOnlyStorageProvider` can't acci-
|
|
24
|
+
* dentally pass it to a function expecting full `StorageProvider`
|
|
25
|
+
* and have a runtime mutation succeed.
|
|
26
|
+
* - Forward-compatible: future read-only methods (e.g., `stat()`)
|
|
27
|
+
* extend this type; write methods stay on the full
|
|
28
|
+
* `StorageProvider`.
|
|
29
|
+
*/
|
|
30
|
+
import type { DirEntry, ByteRange } from '../types.js';
|
|
31
|
+
/**
|
|
32
|
+
* Read-only subset of `StorageProvider`. Hooks consuming this type
|
|
33
|
+
* cannot write — `writeFile`, `writeBytes`, `writeStream`, `mkdir`,
|
|
34
|
+
* `rm` are all absent.
|
|
35
|
+
*/
|
|
36
|
+
export interface ReadOnlyStorageProvider {
|
|
37
|
+
readFile(path: string): Promise<string>;
|
|
38
|
+
readDir(path: string): Promise<DirEntry[]>;
|
|
39
|
+
exists(path: string): Promise<boolean>;
|
|
40
|
+
readBytes(path: string): Promise<Uint8Array>;
|
|
41
|
+
readStream(path: string, range?: ByteRange): Promise<ReadableStream<Uint8Array>>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/hooks/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEtD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;CACjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/hooks/storage.ts"],"names":[],"mappings":""}
|