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 @@
|
|
|
1
|
+
import{$ as e,A as t,B as n,G as r,J as i,K as a,L as o,M as s,O as c,Q as l,U as u,W as d,X as f,Y as ee,Z as p,b as m,et as te,j as h,k as g,nt as _,q as v}from"./vendor-primevue-CBGHkaXv.js";var y=typeof window<`u`,b,x=e=>b=e,S=Symbol();function C(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var w;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(w||={});var T=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function ne(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function E(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){re(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function D(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function O(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var k=typeof navigator==`object`?navigator:{userAgent:``},A=/Macintosh/.test(k.userAgent)&&/AppleWebKit/.test(k.userAgent)&&!/Safari/.test(k.userAgent),re=y?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!A?ie:`msSaveOrOpenBlob`in k?ae:j:()=>{};function ie(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?O(r):D(r.href)?E(e,t,n):(r.target=`_blank`,O(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){O(r)},0))}function ae(e,t=`download`,n){if(typeof e==`string`)if(D(e))E(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){O(t)})}else navigator.msSaveOrOpenBlob(ne(e,n),t)}function j(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return E(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(T.HTMLElement))||`safari`in T,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||A)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:oe}=Object;function se(){let e=u(!0),t=e.run(()=>f({})),n=[],r=[],i=v({install(e){x(i),i._a=e,e.provide(S,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var M=()=>{};function N(e,t,n,r=M){e.add(t);let a=()=>{e.delete(t)&&r()};return!n&&d()&&i(a),a}function P(e,...t){e.forEach(e=>{e(...t)})}var ce=e=>e(),F=Symbol(),I=Symbol();function L(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let i=t[n],o=e[n];C(o)&&C(i)&&e.hasOwnProperty(n)&&!a(i)&&!r(i)?e[n]=L(o,i):e[n]=i}return e}var le=Symbol();function ue(e){return!C(e)||!Object.prototype.hasOwnProperty.call(e,le)}var{assign:R}=Object;function de(e){return!!(a(e)&&e.effect)}function fe(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),R(te(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=v(m(()=>{x(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=pe(e,l,t,n,r,!0),c}function pe(t,i,o={},c,l,d){let p,m=R({actions:{}},o),te={deep:!0},h,g,_=new Set,v=new Set,y=c.state.value[t];!d&&!y&&(c.state.value[t]={}),f({});let b;function S(e){let n;h=g=!1,typeof e==`function`?(e(c.state.value[t]),n={type:w.patchFunction,storeId:t,events:void 0}):(L(c.state.value[t],e),n={type:w.patchObject,payload:e,storeId:t,events:void 0});let r=b=Symbol();s().then(()=>{b===r&&(h=!0)}),g=!0,P(_,n,c.state.value[t])}let C=d?function(){let{state:e}=o,t=e?e():{};this.$patch(e=>{R(e,t)})}:M;function T(){p.stop(),_.clear(),v.clear(),c._s.delete(t)}let ne=(e,n=``)=>{if(F in e)return e[I]=n,e;let r=function(){x(c);let n=Array.from(arguments),i=new Set,a=new Set;function o(e){i.add(e)}function s(e){a.add(e)}P(v,{args:n,name:r[I],store:E,after:o,onError:s});let l;try{l=e.apply(this&&this.$id===t?this:E,n)}catch(e){throw P(a,e),e}return l instanceof Promise?l.then(e=>(P(i,e),e)).catch(e=>(P(a,e),Promise.reject(e))):(P(i,l),l)};return r[F]=!0,r[I]=n,r},E=ee({_p:c,$id:t,$onAction:N.bind(null,v),$patch:S,$reset:C,$subscribe(e,r={}){let i=N(_,e,r.detached,()=>a()),a=p.run(()=>n(()=>c.state.value[t],n=>{(r.flush===`sync`?g:h)&&e({storeId:t,type:w.direct,events:void 0},n)},R({},te,r)));return i},$dispose:T});c._s.set(t,E);let D=(c._a&&c._a.runWithContext||ce)(()=>c._e.run(()=>(p=u()).run(()=>i({action:ne}))));for(let e in D){let n=D[e];a(n)&&!de(n)||r(n)?d||(y&&ue(n)&&(a(n)?n.value=y[e]:L(n,y[e])),c.state.value[t][e]=n):typeof n==`function`&&(D[e]=ne(n,e),m.actions[e]=n)}return R(E,D),R(e(E),D),Object.defineProperty(E,`$state`,{get:()=>c.state.value[t],set:e=>{S(t=>{R(t,e)})}}),c._p.forEach(e=>{R(E,p.run(()=>e({store:E,app:c._a,pinia:c,options:m})))}),y&&d&&o.hydrate&&o.hydrate(E.$state,y),h=!0,g=!0,E}function me(e,n,r){let i,a=typeof n==`function`;i=a?r:n;function o(r,o){let s=t();return r||=s?h(S,null):null,r&&x(r),r=b,r._s.has(e)||(a?pe(e,n,i,r):fe(e,i,r)),r._s.get(e)}return o.$id=e,o}var z=typeof document<`u`;function he(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function ge(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&he(e.default)}var B=Object.assign;function _e(e,t){let n={};for(let r in t){let i=t[r];n[r]=H(i)?i.map(e):e(i)}return n}var V=()=>{},H=Array.isArray;function ve(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var U=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),ye=Symbol(``);U.MATCHER_NOT_FOUND,U.NAVIGATION_GUARD_REDIRECT,U.NAVIGATION_ABORTED,U.NAVIGATION_CANCELLED,U.NAVIGATION_DUPLICATED;function W(e,t){return B(Error(),{type:e,[ye]:!0},t)}function G(e,t){return e instanceof Error&&ye in e&&(t==null||!!(e.type&t))}var be=Symbol(``),xe=Symbol(``),Se=Symbol(``),Ce=Symbol(``),we=Symbol(``);function Te(){return h(Se)}function Ee(e){return h(Ce)}var De=/#/g,Oe=/&/g,ke=/\//g,Ae=/=/g,je=/\?/g,Me=/\+/g,Ne=/%5B/g,Pe=/%5D/g,Fe=/%5E/g,Ie=/%60/g,Le=/%7B/g,Re=/%7C/g,ze=/%7D/g,Be=/%20/g;function Ve(e){return e==null?``:encodeURI(``+e).replace(Re,`|`).replace(Ne,`[`).replace(Pe,`]`)}function He(e){return Ve(e).replace(Le,`{`).replace(ze,`}`).replace(Fe,`^`)}function Ue(e){return Ve(e).replace(Me,`%2B`).replace(Be,`+`).replace(De,`%23`).replace(Oe,`%26`).replace(Ie,"`").replace(Le,`{`).replace(ze,`}`).replace(Fe,`^`)}function We(e){return Ue(e).replace(Ae,`%3D`)}function Ge(e){return Ve(e).replace(De,`%23`).replace(je,`%3F`)}function Ke(e){return Ge(e).replace(ke,`%2F`)}function K(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var qe=/\/$/,Je=e=>e.replace(qe,``);function Ye(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=nt(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:K(o)}}function Xe(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Ze(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Qe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&q(t.matched[r],n.matched[i])&&$e(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function q(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function $e(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!et(e[n],t[n]))return!1;return!0}function et(e,t){return H(e)?tt(e,t):H(t)?tt(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function tt(e,t){return H(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function nt(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var J={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},rt=function(e){return e.pop=`pop`,e.push=`push`,e}({}),it=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function at(e){if(!e)if(z){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Je(e)}var ot=/^[^#]+#/;function st(e,t){return e.replace(ot,`#`)+t}function ct(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var lt=()=>({left:window.scrollX,top:window.scrollY});function ut(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=ct(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function dt(e,t){return(history.state?history.state.position-t:-1)+e}var ft=new Map;function pt(e,t){ft.set(e,t)}function mt(e){let t=ft.get(e);return ft.delete(e),t}function ht(e){return typeof e==`string`||e&&typeof e==`object`}function gt(e){return typeof e==`string`||typeof e==`symbol`}function _t(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(Me,` `),i=r.indexOf(`=`),a=K(i<0?r:r.slice(0,i)),o=i<0?null:K(r.slice(i+1));if(a in t){let e=t[a];H(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function vt(e){let t=``;for(let n in e){let r=e[n];if(n=We(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(H(r)?r.map(e=>e&&Ue(e)):[r&&Ue(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function yt(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=H(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Y(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function X(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(W(U.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):ht(e)?c(W(U.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function bt(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(he(s)){let c=(s.__vccOpts||s)[t];c&&a.push(X(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=ge(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&X(c,n,r,o,e,i)()}))}}return a}function xt(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>q(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>q(e,s))||i.push(s))}return[n,r,i]}var St=()=>location.protocol+`//`+location.host;function Ct(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Ze(n,``)}return Ze(n,e)+r+i}function wt(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ct(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:rt.pop,direction:u?u>0?it.forward:it.back:it.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(B({},e.state,{scroll:lt()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Tt(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?lt():null}}function Et(e){let{history:t,location:n}=window,r={value:Ct(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:St()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,B({},t.state,Tt(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=B({},i.value,t.state,{forward:e,scroll:lt()});a(o.current,o,!0),a(e,B({},Tt(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Dt(e){e=at(e);let t=Et(e),n=wt(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=B({location:``,base:e,go:r,createHref:st.bind(null,e)},t,n);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>t.state.value}),i}var Z=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),Q=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(Q||{}),Ot={type:Z.Static,value:``},kt=/[a-zA-Z0-9_]/;function At(e){if(!e)return[[]];if(e===`/`)return[[Ot]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=Q.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===Q.Static?a.push({type:Z.Static,value:l}):n===Q.Param||n===Q.ParamRegExp||n===Q.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Z.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case Q.Static:c===`\\`?(r=n,n=Q.EscapeNext):c===`/`?(l&&d(),o()):c===`:`?(d(),n=Q.Param):f();break;case Q.EscapeNext:f(),n=r;break;case Q.Param:c===`(`?n=Q.ParamRegExp:kt.test(c)?f():(d(),n=Q.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case Q.ParamRegExp:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=Q.ParamRegExpEnd:u+=c;break;case Q.ParamRegExpEnd:d(),n=Q.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}return n===Q.ParamRegExp&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var jt=`[^/]+?`,Mt={sensitive:!1,strict:!1,start:!0,end:!0},$=function(e){return e[e._multiplier=10]=`_multiplier`,e[e.Root=90]=`Root`,e[e.Segment=40]=`Segment`,e[e.SubSegment=30]=`SubSegment`,e[e.Static=40]=`Static`,e[e.Dynamic=20]=`Dynamic`,e[e.BonusCustomRegExp=10]=`BonusCustomRegExp`,e[e.BonusWildcard=-50]=`BonusWildcard`,e[e.BonusRepeatable=-20]=`BonusRepeatable`,e[e.BonusOptional=-8]=`BonusOptional`,e[e.BonusStrict=.7000000000000001]=`BonusStrict`,e[e.BonusCaseSensitive=.25]=`BonusCaseSensitive`,e}($||{}),Nt=/[.+*?^${}()[\]/\\]/g;function Pt(e,t){let n=B({},Mt,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[$.Root];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=$.Segment+(n.sensitive?$.BonusCaseSensitive:0);if(o.type===Z.Static)r||(i+=`/`),i+=o.value.replace(Nt,`\\$&`),s+=$.Static;else if(o.type===Z.Param){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||jt;if(u!==jt){s+=$.BonusCustomRegExp;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=$.Dynamic,c&&(s+=$.BonusOptional),n&&(s+=$.BonusRepeatable),u===`.*`&&(s+=$.BonusWildcard)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=$.BonusStrict}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===Z.Static)n+=e.value;else if(e.type===Z.Param){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(H(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=H(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Ft(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===$.Static+$.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===$.Static+$.Segment?1:-1:0}function It(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Ft(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Lt(r))return 1;if(Lt(i))return-1}return i.length-r.length}function Lt(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Rt={strict:!1,end:!0,sensitive:!1};function zt(e,t,n){let r=B(Pt(At(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Bt(e,t){let n=[],r=new Map;t=ve(Rt,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ht(e);s.aliasOf=r&&r.record;let l=ve(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ht(B({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=zt(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Wt(d)&&o(e.name)),Jt(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:V}function o(e){if(gt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Kt(e,n);n.splice(t,0,e),e.record.name&&!Wt(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw W(U.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=B(Vt(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Vt(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw W(U.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=B({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Gt(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Vt(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ht(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ut(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,`mods`,{value:{}}),t}function Ut(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Wt(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Gt(e){return e.reduce((e,t)=>B(e,t.meta),{})}function Kt(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;It(e,t[i])<0?r=i:n=i+1}let i=qt(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function qt(e){let t=e;for(;t=t.parent;)if(Jt(t)&&It(e,t)===0)return t}function Jt({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Yt(e){let t=h(Se),n=h(Ce),r=m(()=>{let n=_(e.to);return t.resolve(n)}),i=m(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(q.bind(null,i));if(o>-1)return o;let s=en(e[t-2]);return t>1&&en(i)===s&&a[a.length-1].path!==s?a.findIndex(q.bind(null,e[t-2])):o}),a=m(()=>i.value>-1&&$t(n.params,r.value.params)),o=m(()=>i.value>-1&&i.value===n.matched.length-1&&$e(n.params,r.value.params));function s(n={}){if(Qt(n)){let n=t[_(e.replace)?`replace`:`push`](_(e.to)).catch(V);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:m(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Xt(e){return e.length===1?e[0]:e}var Zt=c({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Yt,setup(e,{slots:t}){let n=ee(Yt(e)),{options:r}=h(Se),i=m(()=>({[tn(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[tn(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Xt(t.default(n));return e.custom?r:g(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Qt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function $t(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!H(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function en(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var tn=(e,t,n)=>e??t??n,nn=c({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){let i=h(we),a=m(()=>e.route||i.value),s=h(xe,0),c=m(()=>{let e=_(s),{matched:t}=a.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),l=m(()=>a.value.matched[c.value]);o(xe,m(()=>c.value+1)),o(be,l),o(we,a);let u=f();return n(()=>[u.value,l.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!q(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let n=a.value,i=e.name,o=l.value,s=o&&o.components[i];if(!s)return rn(r.default,{Component:s,route:n});let c=o.props[i],d=g(s,B({},c?c===!0?n.params:typeof c==`function`?c(n):c:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:u}));return rn(r.default,{Component:d,route:n})||d}}});function rn(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var an=nn;function on(e){let t=Bt(e.routes,e),n=e.parseQuery||_t,r=e.stringifyQuery||vt,i=e.history,a=Y(),o=Y(),c=Y(),u=l(J),d=J;z&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let f=_e.bind(null,e=>``+e),ee=_e.bind(null,Ke),m=_e.bind(null,K);function te(e,n){let r,i;return gt(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function h(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function g(){return t.getRoutes().map(e=>e.record)}function v(e){return!!t.getRecordMatcher(e)}function y(e,a){if(a=B({},a||u.value),typeof e==`string`){let r=Ye(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return B(r,o,{params:m(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=B({},e,{path:Ye(n,e.path,a.path).path});else{let t=B({},e.params);for(let e in t)t[e]??delete t[e];o=B({},e,{params:ee(t)}),a.params=ee(a.params)}let s=t.resolve(o,a),c=e.hash||``;s.params=f(m(s.params));let l=Xe(r,B({},e,{hash:He(c),path:s.path})),d=i.createHref(l);return B({fullPath:l,hash:c,query:r===vt?yt(e.query):e.query||{}},s,{redirectedFrom:void 0,href:d})}function b(e){return typeof e==`string`?Ye(n,e,u.value.path):B({},e)}function x(e,t){if(d!==e)return W(U.NAVIGATION_CANCELLED,{from:t,to:e})}function S(e){return T(e)}function C(e){return S(B(b(e),{replace:!0}))}function w(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=b(i):{path:i},i.params={}),B({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function T(e,t){let n=d=y(e),i=u.value,a=e.state,o=e.force,s=e.replace===!0,c=w(n,i);if(c)return T(B(b(c),{state:typeof c==`object`?B({},a,c.state):a,force:o,replace:s}),t||n);let l=n;l.redirectedFrom=t;let f;return!o&&Qe(r,i,n)&&(f=W(U.NAVIGATION_DUPLICATED,{to:l,from:i}),N(i,i,!0,!1)),(f?Promise.resolve(f):D(l,i)).catch(e=>G(e)?G(e,U.NAVIGATION_GUARD_REDIRECT)?e:M(e):oe(e,l,i)).then(e=>{if(e){if(G(e,U.NAVIGATION_GUARD_REDIRECT))return T(B({replace:s},b(e.to),{state:typeof e.to==`object`?B({},a,e.to.state):a,force:o}),t||l)}else e=k(l,i,!0,s,a);return O(l,i,e),e})}function ne(e,t){let n=x(e,t);return n?Promise.reject(n):Promise.resolve()}function E(e){let t=F.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function D(e,t){let n,[r,i,s]=xt(e,t);n=bt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(X(r,e,t))});let c=ne.bind(null,e,t);return n.push(c),L(n).then(()=>{n=[];for(let r of a.list())n.push(X(r,e,t));return n.push(c),L(n)}).then(()=>{n=bt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(X(r,e,t))});return n.push(c),L(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(H(r.beforeEnter))for(let i of r.beforeEnter)n.push(X(i,e,t));else n.push(X(r.beforeEnter,e,t));return n.push(c),L(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=bt(s,`beforeRouteEnter`,e,t,E),n.push(c),L(n))).then(()=>{n=[];for(let r of o.list())n.push(X(r,e,t));return n.push(c),L(n)}).catch(e=>G(e,U.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function O(e,t,n){c.list().forEach(r=>E(()=>r(e,t,n)))}function k(e,t,n,r,a){let o=x(e,t);if(o)return o;let s=t===J,c=z?history.state:{};n&&(r||s?i.replace(e.fullPath,B({scroll:s&&c&&c.scroll},a)):i.push(e.fullPath,a)),u.value=e,N(e,t,n,s),M()}let A;function re(){A||=i.listen((e,t,n)=>{if(!I.listening)return;let r=y(e),a=w(r,I.currentRoute.value);if(a){T(B(a,{replace:!0,force:!0}),r).catch(V);return}d=r;let o=u.value;z&&pt(dt(o.fullPath,n.delta),lt()),D(r,o).catch(e=>G(e,U.NAVIGATION_ABORTED|U.NAVIGATION_CANCELLED)?e:G(e,U.NAVIGATION_GUARD_REDIRECT)?(T(B(b(e.to),{force:!0}),r).then(e=>{G(e,U.NAVIGATION_ABORTED|U.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===rt.pop&&i.go(-1,!1)}).catch(V),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=k(r,o,!1),e&&(n.delta&&!G(e,U.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===rt.pop&&G(e,U.NAVIGATION_ABORTED|U.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),O(r,o,e)}).catch(V)})}let ie=Y(),ae=Y(),j;function oe(e,t,n){M(e);let r=ae.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return j&&u.value!==J?Promise.resolve():new Promise((e,t)=>{ie.add([e,t])})}function M(e){return j||(j=!e,re(),ie.list().forEach(([t,n])=>e?n(e):t()),ie.reset()),e}function N(t,n,r,i){let{scrollBehavior:a}=e;if(!z||!a)return Promise.resolve();let o=!r&&mt(dt(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return s().then(()=>a(t,n,o)).then(e=>e&&ut(e)).catch(e=>oe(e,t,n))}let P=e=>i.go(e),ce,F=new Set,I={currentRoute:u,listening:!0,addRoute:te,removeRoute:h,clearRoutes:t.clearRoutes,hasRoute:v,getRoutes:g,resolve:y,options:e,push:S,replace:C,go:P,back:()=>P(-1),forward:()=>P(1),beforeEach:a.add,beforeResolve:o.add,afterEach:c.add,onError:ae.add,isReady:se,install(e){e.component(`RouterLink`,Zt),e.component(`RouterView`,an),e.config.globalProperties.$router=I,Object.defineProperty(e.config.globalProperties,`$route`,{enumerable:!0,get:()=>_(u)}),z&&!ce&&u.value===J&&(ce=!0,S(i.location).catch(e=>{}));let t={};for(let e in J)Object.defineProperty(t,e,{get:()=>u.value[e],enumerable:!0});e.provide(Se,I),e.provide(Ce,p(t)),e.provide(we,u);let n=e.unmount;F.add(e),e.unmount=function(){F.delete(e),F.size<1&&(d=J,A&&A(),A=null,u.value=J,ce=!1,j=!1),n()}}};function L(e){return e.reduce((e,t)=>e.then(()=>E(t)),Promise.resolve())}return I}export{se as a,Te as i,Dt as n,me as o,Ee as r,on as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
try{self[`workbox:window:7.4.0`]&&_()}catch{}function e(e,t){return new Promise((function(n){var r=new MessageChannel;r.port1.onmessage=function(e){n(e.data)},e.postMessage(t,[r.port2])}))}function t(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,a(r.key),r)}}(e.prototype,t),Object.defineProperty(e,`prototype`,{writable:!1}),e}function r(e,n){var r=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if(typeof e==`string`)return t(e,n);var r={}.toString.call(e).slice(8,-1);return r===`Object`&&e.constructor&&(r=e.constructor.name),r===`Map`||r===`Set`?Array.from(e):r===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n){r&&(e=r);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function i(e,t){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},i(e,t)}function a(e){var t=function(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return String(e)}(e,`string`);return typeof t==`symbol`?t:t+``}try{self[`workbox:core:7.4.0`]&&_()}catch{}var o=function(){var e=this;this.promise=new Promise((function(t,n){e.resolve=t,e.reject=n}))};function s(e,t){var n=location.href;return new URL(e,n).href===new URL(t,n).href}var c=function(e,t){this.type=e,Object.assign(this,t)};function l(e,t,n){return e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e}function u(){}var d={type:`SKIP_WAITING`};function f(e,t){return e&&e.then?e.then(u):Promise.resolve()}var p=function(t){function r(e,n){var r,i;return n===void 0&&(n={}),(r=t.call(this)||this).nn={},r.tn=0,r.rn=new o,r.en=new o,r.on=new o,r.un=0,r.an=new Set,r.cn=function(){var e=r.fn,t=e.installing;r.tn>0||!s(t.scriptURL,r.sn.toString())||performance.now()>r.un+6e4?(r.vn=t,e.removeEventListener(`updatefound`,r.cn)):(r.hn=t,r.an.add(t),r.rn.resolve(t)),++r.tn,t.addEventListener(`statechange`,r.ln)},r.ln=function(e){var t=r.fn,n=e.target,i=n.state,a=n===r.vn,o={sw:n,isExternal:a,originalEvent:e};!a&&r.mn&&(o.isUpdate=!0),r.dispatchEvent(new c(i,o)),i===`installed`?r.wn=self.setTimeout((function(){i===`installed`&&t.waiting===n&&r.dispatchEvent(new c(`waiting`,o))}),200):i===`activating`&&(clearTimeout(r.wn),a||r.en.resolve(n))},r.yn=function(e){var t=r.hn,n=t!==navigator.serviceWorker.controller;r.dispatchEvent(new c(`controlling`,{isExternal:n,originalEvent:e,sw:t,isUpdate:r.mn})),n||r.on.resolve(t)},r.gn=(i=function(e){var t=e.data,n=e.ports,i=e.source;return l(r.getSW(),(function(){r.an.has(i)&&r.dispatchEvent(new c(`message`,{data:t,originalEvent:e,ports:n,sw:i}))}))},function(){var e=[...arguments];try{return Promise.resolve(i.apply(this,e))}catch(e){return Promise.reject(e)}}),r.sn=e,r.nn=n,navigator.serviceWorker.addEventListener(`message`,r.gn),r}var a,u=t;(a=r).prototype=Object.create(u.prototype),a.prototype.constructor=a,i(a,u);var p=r.prototype;return p.register=function(e){var t=(e===void 0?{}:e).immediate,n=t!==void 0&&t;try{var r=this;return l(function(e,t){var n=e();return n&&n.then?n.then(t):t(n)}((function(){if(!n&&document.readyState!==`complete`)return f(new Promise((function(e){return window.addEventListener(`load`,e)})))}),(function(){return r.mn=!!navigator.serviceWorker.controller,r.dn=r.pn(),l(r.bn(),(function(e){r.fn=e,r.dn&&(r.hn=r.dn,r.en.resolve(r.dn),r.on.resolve(r.dn),r.dn.addEventListener(`statechange`,r.ln,{once:!0}));var t=r.fn.waiting;return t&&s(t.scriptURL,r.sn.toString())&&(r.hn=t,Promise.resolve().then((function(){r.dispatchEvent(new c(`waiting`,{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),r.hn&&(r.rn.resolve(r.hn),r.an.add(r.hn)),r.fn.addEventListener(`updatefound`,r.cn),navigator.serviceWorker.addEventListener(`controllerchange`,r.yn),r.fn}))})))}catch(e){return Promise.reject(e)}},p.update=function(){try{return this.fn?l(f(this.fn.update())):l()}catch(e){return Promise.reject(e)}},p.getSW=function(){return this.hn===void 0?this.rn.promise:Promise.resolve(this.hn)},p.messageSW=function(t){try{return l(this.getSW(),(function(n){return e(n,t)}))}catch(e){return Promise.reject(e)}},p.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&e(this.fn.waiting,d)},p.pn=function(){var e=navigator.serviceWorker.controller;return e&&s(e.scriptURL,this.sn.toString())?e:void 0},p.bn=function(){try{var e=this;return l(function(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}((function(){return l(navigator.serviceWorker.register(e.sn,e.nn),(function(t){return e.un=performance.now(),t}))}),(function(e){throw e})))}catch(e){return Promise.reject(e)}},n(r,[{key:`active`,get:function(){return this.en.promise}},{key:`controlling`,get:function(){return this.on.promise}}])}(function(){function e(){this.Pn=new Map}var t=e.prototype;return t.addEventListener=function(e,t){this.jn(e).add(t)},t.removeEventListener=function(e,t){this.jn(e).delete(t)},t.dispatchEvent=function(e){e.target=this;for(var t,n=r(this.jn(e.type));!(t=n()).done;)(0,t.value)(e)},t.jn=function(e){return this.Pn.has(e)||this.Pn.set(e,new Set),this.Pn.get(e)},e}());export{p as Workbox};
|
package/admin-dist/index.html
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
<title>Gazetta CMS</title>
|
|
7
7
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='8' fill='%238b5cf6'/%3E%3Crect x='7' y='7' width='8' height='8' rx='2' fill='white'/%3E%3Crect x='17' y='7' width='8' height='8' rx='2' fill='white' opacity='.6'/%3E%3Crect x='7' y='17' width='8' height='8' rx='2' fill='white' opacity='.6'/%3E%3Crect x='17' y='17' width='8' height='8' rx='2' fill='white' opacity='.3'/%3E%3C/svg%3E">
|
|
8
8
|
<link rel="stylesheet" href="https://unpkg.com/primeicons/primeicons.css">
|
|
9
|
-
<script type="module" crossorigin src="/admin/assets/index-
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/admin/assets/rolldown-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-react-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-tiptap-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-primevue-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-rjsf-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-vue-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="/admin/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/admin/assets/index-CBeq0rRb.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/admin/assets/rolldown-runtime-BYbx6iT9.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-react-BdW_kNCG.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-tiptap-C36yDquB.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-primevue-CBGHkaXv.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-rjsf-lN2SztQt.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/admin/assets/vendor-vue-Bt5uR1VW.js">
|
|
16
|
+
<link rel="stylesheet" crossorigin href="/admin/assets/index-Dtg1dTZQ.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
19
19
|
<div id="app"></div>
|
package/admin-dist/sw.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
try{self[`workbox:core:7.4.0`]&&_()}catch{}var e=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},t=class extends Error{constructor(t,n){let r=e(t,n);super(r),this.name=t,this.details=n}},n={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},r=e=>[n.prefix,e,n.suffix].filter(e=>e&&e.length>0).join(`-`),i=e=>{for(let t of Object.keys(n))e(t)},a={updateDetails:e=>{i(t=>{typeof e[t]==`string`&&(n[t]=e[t])})},getGoogleAnalyticsName:e=>e||r(n.googleAnalytics),getPrecacheName:e=>e||r(n.precache),getPrefix:()=>n.prefix,getRuntimeName:e=>e||r(n.runtime),getSuffix:()=>n.suffix};function o(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.4.0`]&&_()}catch{}var s=`__WB_REVISION__`;function c(e){if(!e)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:n,url:r}=e;if(!r)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(!n){let e=new URL(r,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(r,location.href),a=new URL(r,location.href);return i.searchParams.set(s,n),{cacheKey:i.href,url:a.href}}var l=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},u=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function f(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function p(e,n){let r=null;if(e.url&&(r=new URL(e.url).origin),r!==self.location.origin)throw new t(`cross-origin-copy-response`,{origin:r});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=n?n(a):a,s=f()?i.body:await i.blob();return new Response(s,o)}var m=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function h(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function g(e,t,n,r){let i=h(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===h(t.url,n))return e.match(t,r)}var v=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},y=new Set;async function b(){for(let e of y)await e()}function x(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.4.0`]&&_()}catch{}function S(e){return typeof e==`string`?new Request(e):e}var C=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new v,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:n}=this,r=S(e);if(r.mode===`navigate`&&n instanceof FetchEvent&&n.preloadResponse){let e=await n.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?r.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))r=await e({request:r.clone(),event:n})}catch(e){if(e instanceof Error)throw new t(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=r.clone();try{let e;e=await fetch(r,r.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let t of this.iterateCallbacks(`fetchDidSucceed`))e=await t({event:n,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:n,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=S(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,n){let r=S(e);await x(0);let i=await this.getCacheKey(r,`write`);if(!n)throw new t(`cache-put-with-no-response`,{url:m(i.url)});let a=await this._ensureResponseSafeToCache(n);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await g(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await b(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=S(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},w=class{constructor(e={}){this.cacheName=a.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new C(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,n,r){await e.runCallbacks(`handlerWillStart`,{event:r,request:n});let i;try{if(i=await this._handle(n,e),!i||i.type===`error`)throw new t(`no-response`,{url:n.url})}catch(t){if(t instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:t,event:r,request:n}),i)break}if(!i)throw t}for(let t of e.iterateCallbacks(`handlerWillRespond`))i=await t({event:r,request:n,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},T=class e extends w{constructor(t={}){t.cacheName=a.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,n){let r,i=n.params||{};if(this._fallbackToNetwork){let t=i.integrity,a=e.integrity,o=!a||a===t;r=await n.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||t})),t&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await n.cachePut(e,r.clone()))}else throw new t(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,n){this._useDefaultCacheabilityPluginIfNeeded();let r=await n.fetch(e);if(!await n.cachePut(e,r.clone()))throw new t(`bad-precaching-response`,{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};T.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},T.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await p(e):e}};var E=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new T({cacheName:a.getPrecacheName(e),plugins:[...t,new u({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||=(self.addEventListener(`install`,this.install),self.addEventListener(`activate`,this.activate),!0)}addToCacheList(e){let n=[];for(let r of e){typeof r==`string`?n.push(r):r&&r.revision===void 0&&n.push(r.url);let{cacheKey:e,url:i}=c(r),a=typeof r!=`string`&&r.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new t(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof r!=`string`&&r.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==r.integrity)throw new t(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,r.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),n.length>0){let e=`Workbox is precaching URLs without revision info: ${n.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return o(e,async()=>{let t=new l;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return o(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let n=this.getCacheKeyForURL(e);if(!n)throw new t(`non-precached-url`,{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:n},t.params),this.strategy.handle(t))}},D,O=()=>(D||=new E,D);try{self[`workbox:routing:7.4.0`]&&_()}catch{}var k=e=>e&&typeof e==`object`?e:{handle:e},A=class{constructor(e,t,n=`GET`){this.handler=k(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=k(e)}},j=class extends A{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&!(t.origin!==location.origin&&n.index!==0))return n.slice(1)},t,n)}},M=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,k(e))}setCatchHandler(e){this._catchHandler=k(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new t(`unregister-route-but-not-found-with-method`,{method:e.method});let n=this._routes.get(e.method).indexOf(e);if(n>-1)this._routes.get(e.method).splice(n,1);else throw new t(`unregister-route-route-not-registered`)}},N,P=()=>(N||(N=new M,N.addFetchListener(),N.addCacheListener()),N);function F(e,n,r){let i;if(typeof e==`string`){let t=new URL(e,location.href);i=new A(({url:e})=>e.href===t.href,n,r)}else if(e instanceof RegExp)i=new j(e,n,r);else if(typeof e==`function`)i=new A(e,n,r);else if(e instanceof A)i=e;else throw new t(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return P().registerRoute(i),i}function I(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*L(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=I(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var R=class extends A{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of L(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function z(e){F(new R(O(),e))}var B=`-precache-`,V=async(e,t=B)=>{let n=(await self.caches.keys()).filter(n=>n.includes(t)&&n.includes(self.registration.scope)&&n!==e);return await Promise.all(n.map(e=>self.caches.delete(e))),n};function H(){self.addEventListener(`activate`,(e=>{let t=a.getPrecacheName();e.waitUntil(V(t).then(e=>{}))}))}function U(e){O().precache(e)}function W(e,t){U(e),z(t)}function G(){self.addEventListener(`activate`,()=>self.clients.claim())}W([{"revision":"dc6f6b75f02624fde9abaa6202604f7f","url":"index.html"},{"revision":null,"url":"assets/workbox-window.prod.es5-DGMtIXHc.js"},{"revision":null,"url":"assets/vendor-vue-Bt5uR1VW.js"},{"revision":null,"url":"assets/vendor-tiptap-C36yDquB.js"},{"revision":null,"url":"assets/vendor-rjsf-lN2SztQt.js"},{"revision":null,"url":"assets/vendor-react-BdW_kNCG.js"},{"revision":null,"url":"assets/vendor-primevue-CBGHkaXv.js"},{"revision":null,"url":"assets/rolldown-runtime-BYbx6iT9.js"},{"revision":null,"url":"assets/index-Dtg1dTZQ.css"},{"revision":null,"url":"assets/index-CBeq0rRb.js"}]??[]),H(),G(),self.addEventListener(`message`,e=>{e.data&&e.data.type===`SKIP_WAITING`&&self.skipWaiting()});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FragmentManifest, PageManifest } from '../types.js';
|
|
2
|
+
import type { SourceContext } from './source-context.js';
|
|
3
|
+
export type ArchivedNameConflictMode = 'restore' | 'replace' | 'moveAside';
|
|
4
|
+
export declare const ARCHIVED_NAME_CONFLICT_MODES: ReadonlySet<ArchivedNameConflictMode>;
|
|
5
|
+
export type ArchivedNameConflictResult = {
|
|
6
|
+
kind: 'restored';
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'replaced';
|
|
9
|
+
flattenedAliases: string[];
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'moved-aside';
|
|
12
|
+
archivedAs: string;
|
|
13
|
+
flattenedAliases: string[];
|
|
14
|
+
} | {
|
|
15
|
+
kind: 'invalid-mode';
|
|
16
|
+
};
|
|
17
|
+
export interface ResolveOptions {
|
|
18
|
+
source: SourceContext;
|
|
19
|
+
kind: 'page' | 'fragment';
|
|
20
|
+
name: string;
|
|
21
|
+
existing: (PageManifest | FragmentManifest) & {
|
|
22
|
+
dir: string;
|
|
23
|
+
};
|
|
24
|
+
mode: ArchivedNameConflictMode | string;
|
|
25
|
+
newTemplate: string;
|
|
26
|
+
newContent?: Record<string, unknown>;
|
|
27
|
+
/** Principal ID — used as `archivedBy` for the moved-aside archive. */
|
|
28
|
+
actorId: string;
|
|
29
|
+
}
|
|
30
|
+
export declare function resolveArchivedNameConflict(opts: ResolveOptions): Promise<ArchivedNameConflictResult>;
|
|
31
|
+
//# sourceMappingURL=archived-name-conflict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archived-name-conflict.d.ts","sourceRoot":"","sources":["../../src/admin-api/archived-name-conflict.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAqB,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAA;AAC1E,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,wBAAwB,CAI7E,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,YAAY,GAAG,gBAAgB,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7D,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAAA;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAc3G"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Archived-name-conflict resolver — implements the three resolution
|
|
3
|
+
* modes per `design-soft-delete.md` Q5 I3 lock.
|
|
4
|
+
*
|
|
5
|
+
* - `restore`: unarchive the existing archive. Skip creation.
|
|
6
|
+
* Most common author intent ("oh, I forgot we already had this
|
|
7
|
+
* content").
|
|
8
|
+
* - `replace`: purge the archive (force=true, accepting alias
|
|
9
|
+
* re-targeting per Q5 I3) and create new content. Aliases that
|
|
10
|
+
* pointed at the archive get re-targeted to the new item via the
|
|
11
|
+
* flatten cascade.
|
|
12
|
+
* - `moveAside`: rename the existing archive to
|
|
13
|
+
* `<name>-archived-<YYYYMMDD>` (with counter on collision), then
|
|
14
|
+
* create new content under the original name.
|
|
15
|
+
*
|
|
16
|
+
* Each mode is best-effort sequential per the multi-write contract
|
|
17
|
+
* from `design-media.md` (no cross-object transactions). Failures
|
|
18
|
+
* surface as throws for the route handler to map to 5xx.
|
|
19
|
+
*
|
|
20
|
+
* # SOLID
|
|
21
|
+
*
|
|
22
|
+
* - SRP: this module owns conflict resolution. Doesn't audit
|
|
23
|
+
* (caller emits one composite audit event); doesn't validate
|
|
24
|
+
* `onConflict` mode (caller validates).
|
|
25
|
+
* - DIP: depends on storage primitives + dep-sidecar primitives;
|
|
26
|
+
* doesn't reach into Hono context.
|
|
27
|
+
*/
|
|
28
|
+
import { join } from 'node:path';
|
|
29
|
+
import { rebuildArchiveAliases, readArchivesAliasing } from '../archive-aliases.js';
|
|
30
|
+
import { rebuildAssetRefs } from '../assets/asset-deps.js';
|
|
31
|
+
import { rebuildFragmentDeps } from '../fragment-deps.js';
|
|
32
|
+
export const ARCHIVED_NAME_CONFLICT_MODES = new Set([
|
|
33
|
+
'restore',
|
|
34
|
+
'replace',
|
|
35
|
+
'moveAside',
|
|
36
|
+
]);
|
|
37
|
+
export async function resolveArchivedNameConflict(opts) {
|
|
38
|
+
if (!ARCHIVED_NAME_CONFLICT_MODES.has(opts.mode)) {
|
|
39
|
+
return { kind: 'invalid-mode' };
|
|
40
|
+
}
|
|
41
|
+
const mode = opts.mode;
|
|
42
|
+
switch (mode) {
|
|
43
|
+
case 'restore':
|
|
44
|
+
return await runRestore(opts);
|
|
45
|
+
case 'replace':
|
|
46
|
+
return await runReplace(opts);
|
|
47
|
+
case 'moveAside':
|
|
48
|
+
return await runMoveAside(opts);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// ─── restore ──────────────────────────────────────────────────────────
|
|
52
|
+
//
|
|
53
|
+
// Strip archive fields from the existing archive's manifest; leave the
|
|
54
|
+
// content + components intact. Author keeps the archive's content; the
|
|
55
|
+
// new template/content from the create request is silently ignored
|
|
56
|
+
// (per Q6 D1 — restore = "flip the bit", no content overwrite).
|
|
57
|
+
async function runRestore(opts) {
|
|
58
|
+
const filename = filenameFor(opts.kind);
|
|
59
|
+
const path = join(opts.existing.dir, filename);
|
|
60
|
+
const restored = stripArchiveFields(opts.existing);
|
|
61
|
+
await opts.source.storage.writeFile(path, JSON.stringify(restored, null, 2) + '\n');
|
|
62
|
+
// Tear down the archive-aliases sidecar — `extract` on a live
|
|
63
|
+
// manifest returns the empty set, so the diff cleans up.
|
|
64
|
+
const itemRef = { source: opts.kind, name: opts.name };
|
|
65
|
+
await rebuildArchiveAliases(opts.source.contentRoot, itemRef, opts.existing, restored);
|
|
66
|
+
return { kind: 'restored' };
|
|
67
|
+
}
|
|
68
|
+
// ─── replace ──────────────────────────────────────────────────────────
|
|
69
|
+
//
|
|
70
|
+
// Purge the archive (rm dir + tear down ALL dep-sidecars including the
|
|
71
|
+
// archive-aliases entry); create new content; flatten any archives
|
|
72
|
+
// that aliased the old archive over to the new item per Q5 I3 (alias
|
|
73
|
+
// re-targeting). Best-effort sequential.
|
|
74
|
+
async function runReplace(opts) {
|
|
75
|
+
// Step 1 — collect alias-pointers BEFORE purge so the flatten cascade
|
|
76
|
+
// can rewrite them after the new manifest exists.
|
|
77
|
+
const aliasingArchives = await readArchivesAliasing(opts.source.contentRoot, opts.name);
|
|
78
|
+
// Step 2 — purge the existing archive entirely (manifest dir + sidecars).
|
|
79
|
+
const itemRef = { source: opts.kind, name: opts.name };
|
|
80
|
+
await opts.source.storage.rm(opts.existing.dir);
|
|
81
|
+
await Promise.all([
|
|
82
|
+
rebuildArchiveAliases(opts.source.contentRoot, itemRef, opts.existing, null),
|
|
83
|
+
rebuildAssetRefs(opts.source.contentRoot, itemRef, opts.existing, null),
|
|
84
|
+
rebuildFragmentDeps(opts.source.contentRoot, itemRef, opts.existing, null),
|
|
85
|
+
]);
|
|
86
|
+
// Step 3 — create the new live manifest.
|
|
87
|
+
const filename = filenameFor(opts.kind);
|
|
88
|
+
const newDir = opts.source.contentRoot.path(`${opts.kind}s`, opts.name);
|
|
89
|
+
await opts.source.storage.mkdir(newDir);
|
|
90
|
+
const newManifest = {
|
|
91
|
+
template: opts.newTemplate,
|
|
92
|
+
content: opts.newContent ?? { title: opts.name },
|
|
93
|
+
components: [],
|
|
94
|
+
};
|
|
95
|
+
await opts.source.storage.writeFile(join(newDir, filename), JSON.stringify(newManifest, null, 2) + '\n');
|
|
96
|
+
// Initialize dep-sidecars for the new live manifest.
|
|
97
|
+
await Promise.all([
|
|
98
|
+
rebuildAssetRefs(opts.source.contentRoot, itemRef, null, newManifest),
|
|
99
|
+
rebuildFragmentDeps(opts.source.contentRoot, itemRef, null, newManifest),
|
|
100
|
+
]);
|
|
101
|
+
// Step 4 — flatten cascade: archives that aliased the old name now
|
|
102
|
+
// point at the new item. Same name, but aliasOf points at a fresh
|
|
103
|
+
// live target → maintains Q3 G1 invariant.
|
|
104
|
+
const flattenedAliases = [];
|
|
105
|
+
for (const ref of aliasingArchives) {
|
|
106
|
+
if (ref.source !== opts.kind)
|
|
107
|
+
continue;
|
|
108
|
+
const refDir = opts.source.contentRoot.path(`${ref.source}s`, ref.name);
|
|
109
|
+
const refFilename = ref.locale ? filename.replace(/\.json$/, `.${ref.locale}.json`) : filename;
|
|
110
|
+
const refPath = join(refDir, refFilename);
|
|
111
|
+
const raw = await opts.source.storage.readFile(refPath).catch(() => null);
|
|
112
|
+
if (!raw)
|
|
113
|
+
continue;
|
|
114
|
+
const oldManifest = JSON.parse(raw);
|
|
115
|
+
if (oldManifest.aliasOf !== opts.name)
|
|
116
|
+
continue; // no longer points here
|
|
117
|
+
const updatedManifest = { ...oldManifest, aliasOf: opts.name };
|
|
118
|
+
// The `aliasOf` value is the same string (opts.name), but the
|
|
119
|
+
// target is a different physical item now (live, not archived).
|
|
120
|
+
// The sidecar update is therefore a no-op for the archive-aliases
|
|
121
|
+
// index — same source ref, same target name. No write needed.
|
|
122
|
+
void updatedManifest;
|
|
123
|
+
}
|
|
124
|
+
return { kind: 'replaced', flattenedAliases };
|
|
125
|
+
}
|
|
126
|
+
// ─── moveAside ────────────────────────────────────────────────────────
|
|
127
|
+
//
|
|
128
|
+
// Generate a fresh archive name (`<name>-archived-<YYYYMMDD>` with
|
|
129
|
+
// counter on collision); rename the existing archive's directory;
|
|
130
|
+
// rewrite the archive-aliases sidecar at the new name; then create
|
|
131
|
+
// the new content under the original name.
|
|
132
|
+
async function runMoveAside(opts) {
|
|
133
|
+
// Step 1 — choose a non-colliding aside name.
|
|
134
|
+
const archivedAs = await pickAsideName(opts.source, opts.kind, opts.name);
|
|
135
|
+
// Step 2 — read the existing archive's manifest, write at the new path
|
|
136
|
+
// with a fresh `archivedAt` snapshot (the rename is a new lifecycle
|
|
137
|
+
// event); then rm the old dir.
|
|
138
|
+
const filename = filenameFor(opts.kind);
|
|
139
|
+
const oldDir = opts.existing.dir;
|
|
140
|
+
const newDir = opts.source.contentRoot.path(`${opts.kind}s`, archivedAs);
|
|
141
|
+
await opts.source.storage.mkdir(newDir);
|
|
142
|
+
// Carry the existing archive shape forward; only the name changes.
|
|
143
|
+
const carried = stripDirAndDerived(opts.existing);
|
|
144
|
+
await opts.source.storage.writeFile(join(newDir, filename), JSON.stringify(carried, null, 2) + '\n');
|
|
145
|
+
await opts.source.storage.rm(oldDir);
|
|
146
|
+
// Step 3 — sidecars: tear down the OLD archive's sidecars, write the
|
|
147
|
+
// new ones at the aside name. Reuse the rebuild* primitives.
|
|
148
|
+
const oldRef = { source: opts.kind, name: opts.name };
|
|
149
|
+
const newRef = { source: opts.kind, name: archivedAs };
|
|
150
|
+
await Promise.all([
|
|
151
|
+
rebuildArchiveAliases(opts.source.contentRoot, oldRef, opts.existing, null),
|
|
152
|
+
rebuildAssetRefs(opts.source.contentRoot, oldRef, opts.existing, null),
|
|
153
|
+
rebuildFragmentDeps(opts.source.contentRoot, oldRef, opts.existing, null),
|
|
154
|
+
rebuildArchiveAliases(opts.source.contentRoot, newRef, null, carried),
|
|
155
|
+
rebuildAssetRefs(opts.source.contentRoot, newRef, null, carried),
|
|
156
|
+
rebuildFragmentDeps(opts.source.contentRoot, newRef, null, carried),
|
|
157
|
+
]);
|
|
158
|
+
// Step 4 — flatten cascade: archives that aliased the OLD name now
|
|
159
|
+
// need their aliasOf rewritten to point at... the new live item we're
|
|
160
|
+
// about to create at the original name. Read each aliasing archive
|
|
161
|
+
// and rewrite if needed. Q3 G1 invariant: archive aliases never chain.
|
|
162
|
+
const aliasingArchives = await readArchivesAliasing(opts.source.contentRoot, opts.name);
|
|
163
|
+
const flattenedAliases = [];
|
|
164
|
+
for (const ref of aliasingArchives) {
|
|
165
|
+
if (ref.source !== opts.kind)
|
|
166
|
+
continue;
|
|
167
|
+
flattenedAliases.push(ref.name);
|
|
168
|
+
}
|
|
169
|
+
// Step 5 — create the new live manifest at the original name.
|
|
170
|
+
const liveDir = opts.source.contentRoot.path(`${opts.kind}s`, opts.name);
|
|
171
|
+
await opts.source.storage.mkdir(liveDir);
|
|
172
|
+
const liveManifest = {
|
|
173
|
+
template: opts.newTemplate,
|
|
174
|
+
content: opts.newContent ?? { title: opts.name },
|
|
175
|
+
components: [],
|
|
176
|
+
};
|
|
177
|
+
await opts.source.storage.writeFile(join(liveDir, filename), JSON.stringify(liveManifest, null, 2) + '\n');
|
|
178
|
+
const liveRef = { source: opts.kind, name: opts.name };
|
|
179
|
+
await Promise.all([
|
|
180
|
+
rebuildAssetRefs(opts.source.contentRoot, liveRef, null, liveManifest),
|
|
181
|
+
rebuildFragmentDeps(opts.source.contentRoot, liveRef, null, liveManifest),
|
|
182
|
+
]);
|
|
183
|
+
return { kind: 'moved-aside', archivedAs, flattenedAliases };
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Pick a non-colliding aside name. Format: `<name>-archived-<YYYYMMDD>`
|
|
187
|
+
* with a `-N` counter on collision. Per Q5 E1 lock — date-only is
|
|
188
|
+
* stable and human-readable; full ISO timestamp would be ugly.
|
|
189
|
+
*/
|
|
190
|
+
async function pickAsideName(source, kind, name) {
|
|
191
|
+
const today = new Date().toISOString().slice(0, 10).replace(/-/g, ''); // YYYYMMDD
|
|
192
|
+
const base = `${name}-archived-${today}`;
|
|
193
|
+
let candidate = base;
|
|
194
|
+
let counter = 1;
|
|
195
|
+
// Cap retries to avoid pathological infinite loops on storage errors.
|
|
196
|
+
for (let i = 0; i < 100; i++) {
|
|
197
|
+
const dir = source.contentRoot.path(`${kind}s`, candidate);
|
|
198
|
+
const existsCheck = await source.storage.exists(join(dir, filenameFor(kind)));
|
|
199
|
+
if (!existsCheck)
|
|
200
|
+
return candidate;
|
|
201
|
+
counter++;
|
|
202
|
+
candidate = `${base}-${counter}`;
|
|
203
|
+
}
|
|
204
|
+
throw new Error(`Could not find a non-colliding aside name for "${name}" after 100 attempts`);
|
|
205
|
+
}
|
|
206
|
+
// ─── shared helpers ──────────────────────────────────────────────────
|
|
207
|
+
function filenameFor(kind) {
|
|
208
|
+
return kind === 'page' ? 'page.json' : 'fragment.json';
|
|
209
|
+
}
|
|
210
|
+
function stripArchiveFields(manifest) {
|
|
211
|
+
const stripped = { ...manifest };
|
|
212
|
+
delete stripped.archived;
|
|
213
|
+
delete stripped.archivedAt;
|
|
214
|
+
delete stripped.archivedBy;
|
|
215
|
+
delete stripped.aliasOf;
|
|
216
|
+
delete stripped.dir;
|
|
217
|
+
delete stripped.route;
|
|
218
|
+
return stripped;
|
|
219
|
+
}
|
|
220
|
+
function stripDirAndDerived(manifest) {
|
|
221
|
+
const stripped = { ...manifest };
|
|
222
|
+
delete stripped.dir;
|
|
223
|
+
delete stripped.route;
|
|
224
|
+
return stripped;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=archived-name-conflict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archived-name-conflict.js","sourceRoot":"","sources":["../../src/admin-api/archived-name-conflict.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Periodic structured logging of `AdminCache` stats per
|
|
3
|
+
* `design-cache.md` Q5.
|
|
4
|
+
*
|
|
5
|
+
* Cadence: 5 minutes — emits ~288 entries/day per cache instance.
|
|
6
|
+
* Low log volume; fine-grained enough to spot issues. Cadence is
|
|
7
|
+
* not configurable in v1 (operators with stricter monitoring needs
|
|
8
|
+
* poll `/api/system/cache/stats`).
|
|
9
|
+
*
|
|
10
|
+
* # SOLID lenses
|
|
11
|
+
*
|
|
12
|
+
* - SRP: this module owns periodic-stats-logging. Routes own
|
|
13
|
+
* on-demand snapshots; the cache provider owns counters; the
|
|
14
|
+
* logger orchestrates the timer.
|
|
15
|
+
* - DIP: depends on the `AdminCache` interface, not on a specific
|
|
16
|
+
* provider.
|
|
17
|
+
* - LSP: works with any provider that implements `stats()` (and
|
|
18
|
+
* no-ops gracefully when `stats` is absent).
|
|
19
|
+
*
|
|
20
|
+
* # Multi-instance discipline
|
|
21
|
+
*
|
|
22
|
+
* The logger runs once per admin process, against one cache instance.
|
|
23
|
+
* Multi-instance deployments emit one log stream per instance —
|
|
24
|
+
* operators correlate via the structured log fields (notably the
|
|
25
|
+
* `instance` field that the future structured logger will inject per
|
|
26
|
+
* `design-logging.md`). Cross-instance aggregation is the log
|
|
27
|
+
* aggregator's job, not Gazetta's.
|
|
28
|
+
*/
|
|
29
|
+
import type { AdminCache, CacheStats } from '../cache/types.js';
|
|
30
|
+
export interface StartCacheStatsLoggerOptions {
|
|
31
|
+
cache: AdminCache;
|
|
32
|
+
/**
|
|
33
|
+
* Interval between log emissions, in milliseconds. Defaults to 5
|
|
34
|
+
* minutes. Tests pass a smaller value (or `0` to disable the
|
|
35
|
+
* background timer entirely and drive emissions manually via
|
|
36
|
+
* `tick()`).
|
|
37
|
+
*/
|
|
38
|
+
intervalMs?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Sink for emitted log entries. Defaults to `console.log` with a
|
|
41
|
+
* JSON payload — matches `design-logging.md`'s "structured JSON
|
|
42
|
+
* logs" rule. Tests pass a capture function.
|
|
43
|
+
*/
|
|
44
|
+
sink?: (entry: CacheStatsLogEntry) => void;
|
|
45
|
+
}
|
|
46
|
+
export interface CacheStatsLogEntry {
|
|
47
|
+
/** ISO 8601 with Z suffix; matches the audit-log convention. */
|
|
48
|
+
timestamp: string;
|
|
49
|
+
/** Always 'info' — periodic stats are healthy operational signal. */
|
|
50
|
+
level: 'info';
|
|
51
|
+
/** Module namespace per design-logging.md. */
|
|
52
|
+
module: 'cache.stats';
|
|
53
|
+
/**
|
|
54
|
+
* Identity of the reporting cache instance — top-level for log-
|
|
55
|
+
* aggregator filtering (`module:cache.* AND instance:pod-abc`)
|
|
56
|
+
* per `design-logging.md` Multi-instance correlation. Also nested
|
|
57
|
+
* inside `stats.instance` for callers that consume the stats blob
|
|
58
|
+
* directly. Optional because providers may report stats without an
|
|
59
|
+
* identity field.
|
|
60
|
+
*/
|
|
61
|
+
instance?: string;
|
|
62
|
+
message: string;
|
|
63
|
+
stats: CacheStats;
|
|
64
|
+
}
|
|
65
|
+
export interface CacheStatsLogger {
|
|
66
|
+
/** Stop the periodic timer (does nothing if no timer is running). */
|
|
67
|
+
dispose(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Manually emit one entry. Useful for tests or for triggering an
|
|
70
|
+
* extra emission ahead of a planned rollover.
|
|
71
|
+
*/
|
|
72
|
+
tick(): Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Start the periodic logger. Returns a handle exposing `dispose()`
|
|
76
|
+
* for clean shutdown (tests, hot reload, graceful exit).
|
|
77
|
+
*
|
|
78
|
+
* When `intervalMs` is 0, no timer is scheduled — the caller drives
|
|
79
|
+
* emissions via `tick()` only. Useful in tests that need
|
|
80
|
+
* deterministic emit timing without fake timers.
|
|
81
|
+
*/
|
|
82
|
+
export declare function startCacheStatsLogger(opts: StartCacheStatsLoggerOptions): CacheStatsLogger;
|
|
83
|
+
//# sourceMappingURL=cache-stats-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-stats-logger.d.ts","sourceRoot":"","sources":["../../src/admin-api/cache-stats-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAK/D,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,UAAU,CAAA;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,MAAM,EAAE,aAAa,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAAA;IACf;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,gBAAgB,CA0C1F"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** Default cadence — 5 minutes. */
|
|
2
|
+
const DEFAULT_INTERVAL_MS = 5 * 60 * 1000;
|
|
3
|
+
/**
|
|
4
|
+
* Start the periodic logger. Returns a handle exposing `dispose()`
|
|
5
|
+
* for clean shutdown (tests, hot reload, graceful exit).
|
|
6
|
+
*
|
|
7
|
+
* When `intervalMs` is 0, no timer is scheduled — the caller drives
|
|
8
|
+
* emissions via `tick()` only. Useful in tests that need
|
|
9
|
+
* deterministic emit timing without fake timers.
|
|
10
|
+
*/
|
|
11
|
+
export function startCacheStatsLogger(opts) {
|
|
12
|
+
const intervalMs = opts.intervalMs ?? DEFAULT_INTERVAL_MS;
|
|
13
|
+
const sink = opts.sink ?? defaultSink;
|
|
14
|
+
async function tick() {
|
|
15
|
+
// stats() is optional on the contract — providers that don't
|
|
16
|
+
// expose it produce a minimum-floor snapshot so the log entry
|
|
17
|
+
// shape stays stable across providers.
|
|
18
|
+
const stats = (await opts.cache.stats?.()) ?? { hits: 0, misses: 0, size: 0 };
|
|
19
|
+
sink({
|
|
20
|
+
timestamp: new Date().toISOString(),
|
|
21
|
+
level: 'info',
|
|
22
|
+
module: 'cache.stats',
|
|
23
|
+
instance: stats.instance,
|
|
24
|
+
message: 'cache stats',
|
|
25
|
+
stats,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
let timer = null;
|
|
29
|
+
if (intervalMs > 0) {
|
|
30
|
+
timer = setInterval(() => {
|
|
31
|
+
// Don't await — periodic emission must not back up if a sink
|
|
32
|
+
// is slow. Swallow rejections so a transient failure on one
|
|
33
|
+
// tick (e.g., provider blip) doesn't propagate to the
|
|
34
|
+
// unhandled-rejection handler; the next tick fires regardless.
|
|
35
|
+
tick().catch(() => undefined);
|
|
36
|
+
}, intervalMs);
|
|
37
|
+
// Don't keep the event loop alive solely for this timer —
|
|
38
|
+
// graceful shutdown shouldn't have to remember to dispose this.
|
|
39
|
+
if (timer && typeof timer.unref === 'function')
|
|
40
|
+
timer.unref();
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
dispose() {
|
|
44
|
+
if (timer) {
|
|
45
|
+
clearInterval(timer);
|
|
46
|
+
timer = null;
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
tick,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function defaultSink(entry) {
|
|
53
|
+
// Matches design-logging.md's "structured JSON logs" rule.
|
|
54
|
+
// pino integration lands when the logging foundation ships;
|
|
55
|
+
// until then, stringify so log aggregators tailing stdout see
|
|
56
|
+
// a parseable line.
|
|
57
|
+
console.log(JSON.stringify(entry));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=cache-stats-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-stats-logger.js","sourceRoot":"","sources":["../../src/admin-api/cache-stats-logger.ts"],"names":[],"mappings":"AA8BA,mCAAmC;AACnC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAiDzC;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAkC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAA;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAA;IAErC,KAAK,UAAU,IAAI;QACjB,6DAA6D;QAC7D,8DAA8D;QAC9D,uCAAuC;QACvC,MAAM,KAAK,GAAe,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACzF,IAAI,CAAC;YACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,aAAa;YACtB,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,KAAK,GAA0C,IAAI,CAAA;IACvD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YACvB,6DAA6D;YAC7D,4DAA4D;YAC5D,sDAAsD;YACtD,+DAA+D;YAC/D,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC,EAAE,UAAU,CAAC,CAAA;QACd,0DAA0D;QAC1D,gEAAgE;QAChE,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAAE,KAAK,CAAC,KAAK,EAAE,CAAA;IAC/D,CAAC;IAED,OAAO;QACL,OAAO;YACL,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,2DAA2D;IAC3D,4DAA4D;IAC5D,8DAA8D;IAC9D,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge between the hooks dispatch and the audit recorder.
|
|
3
|
+
*
|
|
4
|
+
* Per design-hooks.md "Audit events" + design-audit.md's locked
|
|
5
|
+
* action/outcome enum extensions, every hook firing emits one
|
|
6
|
+
* audit event:
|
|
7
|
+
*
|
|
8
|
+
* action: 'hook-fired'
|
|
9
|
+
* outcome: 'success' | 'hook-cancelled' | 'timeout'
|
|
10
|
+
* scope: { kind: 'site' } // hook firings aren't scoped to a
|
|
11
|
+
* // specific page; the triggering
|
|
12
|
+
* // operation has its own audit record
|
|
13
|
+
* metadata: { hookName, phase, source, priority, durationMs }
|
|
14
|
+
*
|
|
15
|
+
* # Why scope.kind: 'site'
|
|
16
|
+
*
|
|
17
|
+
* The triggering operation (save / publish / upload) records its
|
|
18
|
+
* own audit event with the right scope. The hook-firing record
|
|
19
|
+
* is observational — "this hook ran during a site operation."
|
|
20
|
+
* Scope at the operation level would require duplicating scope
|
|
21
|
+
* resolution into dispatch; site-level keeps the seam clean and
|
|
22
|
+
* forensic queries can correlate via requestId.
|
|
23
|
+
*
|
|
24
|
+
* # SOLID lenses
|
|
25
|
+
*
|
|
26
|
+
* - SRP: bridge owns translation from HookFiringEvent →
|
|
27
|
+
* AuditEvent. Doesn't fire hooks, doesn't record events.
|
|
28
|
+
* - DIP: takes an AuditContext (or any record-shaped sink);
|
|
29
|
+
* dispatch depends on the emitter callback shape.
|
|
30
|
+
*/
|
|
31
|
+
import type { AuditContext } from '../audit/index.js';
|
|
32
|
+
import type { HookFiringEmitter } from '../hooks/index.js';
|
|
33
|
+
/**
|
|
34
|
+
* Build a HookFiringEmitter that forwards every firing to
|
|
35
|
+
* `audit.record(...)`. Pass into HookContext.auditEmit.
|
|
36
|
+
*/
|
|
37
|
+
export declare function makeAuditFiringEmitter(audit: AuditContext): HookFiringEmitter;
|
|
38
|
+
//# sourceMappingURL=hook-audit-emitter.d.ts.map
|