gazetta 0.6.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/error-response.d.ts +21 -0
- package/dist/admin-api/error-response.d.ts.map +1 -0
- package/dist/admin-api/error-response.js +12 -0
- package/dist/admin-api/error-response.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 -2
- package/dist/admin-api/index.d.ts.map +1 -1
- package/dist/admin-api/index.js +257 -32
- 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 +21 -0
- package/dist/admin-api/routes/assets.d.ts.map +1 -0
- package/dist/admin-api/routes/assets.js +586 -0
- package/dist/admin-api/routes/assets.js.map +1 -0
- 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 +128 -67
- 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 +158 -85
- 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 +548 -99
- 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 +64 -0
- package/dist/admin-api/schemas/assets.d.ts.map +1 -0
- package/dist/admin-api/schemas/assets.js +59 -0
- package/dist/admin-api/schemas/assets.js.map +1 -0
- 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 +10 -0
- package/dist/admin-api/schemas/index.d.ts.map +1 -1
- package/dist/admin-api/schemas/index.js +10 -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 -17
- package/dist/admin-api/source-context.d.ts.map +1 -1
- package/dist/admin-api/source-context.js +43 -8
- 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/analyze-audio.d.ts +3 -0
- package/dist/assets/analyze-audio.d.ts.map +1 -0
- package/dist/assets/analyze-audio.js +80 -0
- package/dist/assets/analyze-audio.js.map +1 -0
- package/dist/assets/analyze-image.d.ts +19 -0
- package/dist/assets/analyze-image.d.ts.map +1 -0
- package/dist/assets/analyze-image.js +123 -0
- package/dist/assets/analyze-image.js.map +1 -0
- package/dist/assets/analyze.d.ts +94 -0
- package/dist/assets/analyze.d.ts.map +1 -0
- package/dist/assets/analyze.js +45 -0
- package/dist/assets/analyze.js.map +1 -0
- package/dist/assets/asset-deps.d.ts +30 -0
- package/dist/assets/asset-deps.d.ts.map +1 -0
- package/dist/assets/asset-deps.js +42 -0
- package/dist/assets/asset-deps.js.map +1 -0
- package/dist/assets/asset-paths.d.ts +155 -0
- package/dist/assets/asset-paths.d.ts.map +1 -0
- package/dist/assets/asset-paths.js +197 -0
- package/dist/assets/asset-paths.js.map +1 -0
- package/dist/assets/delete.d.ts +75 -0
- package/dist/assets/delete.d.ts.map +1 -0
- package/dist/assets/delete.js +82 -0
- package/dist/assets/delete.js.map +1 -0
- package/dist/assets/errors.d.ts +241 -0
- package/dist/assets/errors.d.ts.map +1 -0
- package/dist/assets/errors.js +300 -0
- package/dist/assets/errors.js.map +1 -0
- package/dist/assets/find-refs.d.ts +37 -0
- package/dist/assets/find-refs.d.ts.map +1 -0
- package/dist/assets/find-refs.js +35 -0
- package/dist/assets/find-refs.js.map +1 -0
- package/dist/assets/hash.d.ts +13 -0
- package/dist/assets/hash.d.ts.map +1 -0
- package/dist/assets/hash.js +43 -0
- package/dist/assets/hash.js.map +1 -0
- package/dist/assets/image-metadata.d.ts +11 -0
- package/dist/assets/image-metadata.d.ts.map +1 -0
- package/dist/assets/image-metadata.js +31 -0
- package/dist/assets/image-metadata.js.map +1 -0
- package/dist/assets/ingest-locale.d.ts +86 -0
- package/dist/assets/ingest-locale.d.ts.map +1 -0
- package/dist/assets/ingest-locale.js +209 -0
- package/dist/assets/ingest-locale.js.map +1 -0
- package/dist/assets/ingest.d.ts +96 -0
- package/dist/assets/ingest.d.ts.map +1 -0
- package/dist/assets/ingest.js +308 -0
- package/dist/assets/ingest.js.map +1 -0
- package/dist/assets/kind-compat.d.ts +34 -0
- package/dist/assets/kind-compat.d.ts.map +1 -0
- package/dist/assets/kind-compat.js +33 -0
- package/dist/assets/kind-compat.js.map +1 -0
- package/dist/assets/list.d.ts +46 -0
- package/dist/assets/list.d.ts.map +1 -0
- package/dist/assets/list.js +102 -0
- package/dist/assets/list.js.map +1 -0
- package/dist/assets/manifest-default.d.ts +56 -0
- package/dist/assets/manifest-default.d.ts.map +1 -0
- package/dist/assets/manifest-default.js +120 -0
- package/dist/assets/manifest-default.js.map +1 -0
- package/dist/assets/manifest-filename.d.ts +52 -0
- package/dist/assets/manifest-filename.d.ts.map +1 -0
- package/dist/assets/manifest-filename.js +104 -0
- package/dist/assets/manifest-filename.js.map +1 -0
- package/dist/assets/manifest-locale.d.ts +60 -0
- package/dist/assets/manifest-locale.d.ts.map +1 -0
- package/dist/assets/manifest-locale.js +206 -0
- package/dist/assets/manifest-locale.js.map +1 -0
- package/dist/assets/manifest-merge.d.ts +66 -0
- package/dist/assets/manifest-merge.d.ts.map +1 -0
- package/dist/assets/manifest-merge.js +82 -0
- package/dist/assets/manifest-merge.js.map +1 -0
- package/dist/assets/manifest.d.ts +83 -0
- package/dist/assets/manifest.d.ts.map +1 -0
- package/dist/assets/manifest.js +93 -0
- package/dist/assets/manifest.js.map +1 -0
- package/dist/assets/mime-sniff.d.ts +18 -0
- package/dist/assets/mime-sniff.d.ts.map +1 -0
- package/dist/assets/mime-sniff.js +84 -0
- package/dist/assets/mime-sniff.js.map +1 -0
- package/dist/assets/preprocess-svg.d.ts +3 -0
- package/dist/assets/preprocess-svg.d.ts.map +1 -0
- package/dist/assets/preprocess-svg.js +49 -0
- package/dist/assets/preprocess-svg.js.map +1 -0
- package/dist/assets/preprocess.d.ts +62 -0
- package/dist/assets/preprocess.d.ts.map +1 -0
- package/dist/assets/preprocess.js +86 -0
- package/dist/assets/preprocess.js.map +1 -0
- package/dist/assets/publish-plan.d.ts +41 -0
- package/dist/assets/publish-plan.d.ts.map +1 -0
- package/dist/assets/publish-plan.js +49 -0
- package/dist/assets/publish-plan.js.map +1 -0
- package/dist/assets/publish.d.ts +33 -0
- package/dist/assets/publish.d.ts.map +1 -0
- package/dist/assets/publish.js +81 -0
- package/dist/assets/publish.js.map +1 -0
- package/dist/assets/refs.d.ts +37 -0
- package/dist/assets/refs.d.ts.map +1 -0
- package/dist/assets/refs.js +33 -0
- package/dist/assets/refs.js.map +1 -0
- package/dist/assets/remove-override.d.ts +42 -0
- package/dist/assets/remove-override.d.ts.map +1 -0
- package/dist/assets/remove-override.js +53 -0
- package/dist/assets/remove-override.js.map +1 -0
- package/dist/assets/rename.d.ts +43 -0
- package/dist/assets/rename.d.ts.map +1 -0
- package/dist/assets/rename.js +271 -0
- package/dist/assets/rename.js.map +1 -0
- package/dist/assets/replace.d.ts +37 -0
- package/dist/assets/replace.d.ts.map +1 -0
- package/dist/assets/replace.js +195 -0
- package/dist/assets/replace.js.map +1 -0
- package/dist/assets/resolve.d.ts +141 -0
- package/dist/assets/resolve.d.ts.map +1 -0
- package/dist/assets/resolve.js +381 -0
- package/dist/assets/resolve.js.map +1 -0
- package/dist/assets/rewrite-manifest-asset-ref.d.ts +44 -0
- package/dist/assets/rewrite-manifest-asset-ref.d.ts.map +1 -0
- package/dist/assets/rewrite-manifest-asset-ref.js +51 -0
- package/dist/assets/rewrite-manifest-asset-ref.js.map +1 -0
- package/dist/assets/scan-manifest-for-asset.d.ts +63 -0
- package/dist/assets/scan-manifest-for-asset.d.ts.map +1 -0
- package/dist/assets/scan-manifest-for-asset.js +105 -0
- package/dist/assets/scan-manifest-for-asset.js.map +1 -0
- package/dist/assets/serve-route.d.ts +45 -0
- package/dist/assets/serve-route.d.ts.map +1 -0
- package/dist/assets/serve-route.js +123 -0
- package/dist/assets/serve-route.js.map +1 -0
- package/dist/assets/svg-sanitize.d.ts +38 -0
- package/dist/assets/svg-sanitize.d.ts.map +1 -0
- package/dist/assets/svg-sanitize.js +209 -0
- package/dist/assets/svg-sanitize.js.map +1 -0
- package/dist/assets/update-metadata.d.ts +61 -0
- package/dist/assets/update-metadata.d.ts.map +1 -0
- package/dist/assets/update-metadata.js +82 -0
- package/dist/assets/update-metadata.js.map +1 -0
- package/dist/assets/url.d.ts +82 -0
- package/dist/assets/url.d.ts.map +1 -0
- package/dist/assets/url.js +103 -0
- package/dist/assets/url.js.map +1 -0
- package/dist/assets/validate.d.ts +74 -0
- package/dist/assets/validate.d.ts.map +1 -0
- package/dist/assets/validate.js +136 -0
- package/dist/assets/validate.js.map +1 -0
- package/dist/assets/variants.d.ts +23 -0
- package/dist/assets/variants.d.ts.map +1 -0
- package/dist/assets/variants.js +74 -0
- package/dist/assets/variants.js.map +1 -0
- 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/assets-cli.d.ts +58 -0
- package/dist/cli/assets-cli.d.ts.map +1 -0
- package/dist/cli/assets-cli.js +233 -0
- package/dist/cli/assets-cli.js.map +1 -0
- package/dist/cli/assets-display.d.ts +112 -0
- package/dist/cli/assets-display.d.ts.map +1 -0
- package/dist/cli/assets-display.js +106 -0
- package/dist/cli/assets-display.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +15 -10
- package/dist/cli/bootstrap.d.ts.map +1 -1
- package/dist/cli/bootstrap.js +59 -24
- 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 +737 -374
- 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 +40 -35
- 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/dep-sidecars.d.ts +127 -0
- package/dist/dep-sidecars.d.ts.map +1 -0
- package/dist/dep-sidecars.js +122 -0
- package/dist/dep-sidecars.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/editor/AssetEmbeddedWidget.d.ts +3 -0
- package/dist/editor/AssetEmbeddedWidget.d.ts.map +1 -0
- package/dist/editor/AssetEmbeddedWidget.js +146 -0
- package/dist/editor/AssetEmbeddedWidget.js.map +1 -0
- package/dist/editor/mount.d.ts +12 -1
- package/dist/editor/mount.d.ts.map +1 -1
- package/dist/editor/mount.js +36 -5
- package/dist/editor/mount.js.map +1 -1
- package/dist/format.d.ts +44 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +65 -0
- package/dist/format.js.map +1 -0
- package/dist/fragment-deps.d.ts +24 -0
- package/dist/fragment-deps.d.ts.map +1 -0
- package/dist/fragment-deps.js +20 -0
- package/dist/fragment-deps.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/hash.d.ts +0 -6
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +0 -18
- package/dist/hash.js.map +1 -1
- package/dist/history-provider.d.ts.map +1 -1
- package/dist/history-provider.js +30 -8
- package/dist/history-provider.js.map +1 -1
- package/dist/history-recorder.d.ts +10 -6
- package/dist/history-recorder.d.ts.map +1 -1
- package/dist/history-recorder.js +13 -5
- package/dist/history-recorder.js.map +1 -1
- package/dist/history-restorer.d.ts.map +1 -1
- package/dist/history-restorer.js +34 -2
- package/dist/history-restorer.js.map +1 -1
- package/dist/history.d.ts +26 -8
- package/dist/history.d.ts.map +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 +27 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -7
- package/dist/index.js.map +1 -1
- package/dist/locale.d.ts +25 -1
- package/dist/locale.d.ts.map +1 -1
- package/dist/locale.js +44 -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/_atomic-write.d.ts +9 -0
- package/dist/providers/_atomic-write.d.ts.map +1 -0
- package/dist/providers/_atomic-write.js +72 -0
- package/dist/providers/_atomic-write.js.map +1 -0
- package/dist/providers/_rm-ignore-missing.d.ts +31 -0
- package/dist/providers/_rm-ignore-missing.d.ts.map +1 -0
- package/dist/providers/_rm-ignore-missing.js +12 -0
- package/dist/providers/_rm-ignore-missing.js.map +1 -0
- package/dist/providers/_stream-interop.d.ts +23 -0
- package/dist/providers/_stream-interop.d.ts.map +1 -0
- package/dist/providers/_stream-interop.js +21 -0
- package/dist/providers/_stream-interop.js.map +1 -0
- package/dist/providers/azure-blob.d.ts.map +1 -1
- package/dist/providers/azure-blob.js +60 -0
- package/dist/providers/azure-blob.js.map +1 -1
- 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/providers/filesystem.d.ts +4 -0
- package/dist/providers/filesystem.d.ts.map +1 -1
- package/dist/providers/filesystem.js +63 -2
- package/dist/providers/filesystem.js.map +1 -1
- package/dist/providers/s3.d.ts.map +1 -1
- package/dist/providers/s3.js +84 -1
- package/dist/providers/s3.js.map +1 -1
- 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 +37 -17
- package/dist/publish-rendered.d.ts.map +1 -1
- package/dist/publish-rendered.js +144 -71
- 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 +13 -12
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +24 -57
- 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 +12 -2
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +101 -32
- 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/schema/dimensions.d.ts +78 -0
- package/dist/schema/dimensions.d.ts.map +1 -0
- package/dist/schema/dimensions.js +97 -0
- package/dist/schema/dimensions.js.map +1 -0
- package/dist/schema/helpers.d.ts +108 -0
- package/dist/schema/helpers.d.ts.map +1 -0
- package/dist/schema/helpers.js +133 -0
- package/dist/schema/helpers.js.map +1 -0
- package/dist/schema/index.d.ts +27 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +25 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/types.d.ts +390 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +25 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/selector-chain.d.ts +63 -0
- package/dist/selector-chain.d.ts.map +1 -0
- package/dist/selector-chain.js +58 -0
- package/dist/selector-chain.js.map +1 -0
- package/dist/sidecars.d.ts +19 -18
- package/dist/sidecars.d.ts.map +1 -1
- package/dist/sidecars.js +70 -62
- package/dist/sidecars.js.map +1 -1
- 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 -117
- 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/themes.d.ts +69 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +85 -0
- package/dist/themes.js.map +1 -0
- package/dist/transforms/adapter.d.ts +115 -0
- package/dist/transforms/adapter.d.ts.map +1 -0
- package/dist/transforms/adapter.js +2 -0
- package/dist/transforms/adapter.js.map +1 -0
- package/dist/transforms/cloudflare.d.ts +17 -0
- package/dist/transforms/cloudflare.d.ts.map +1 -0
- package/dist/transforms/cloudflare.js +110 -0
- package/dist/transforms/cloudflare.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 +17 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +6 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/sharp.d.ts +17 -0
- package/dist/transforms/sharp.d.ts.map +1 -0
- package/dist/transforms/sharp.js +57 -0
- package/dist/transforms/sharp.js.map +1 -0
- package/dist/types.d.ts +485 -34
- 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 +69 -27
- package/admin-dist/assets/index-B6pVot0Y.css +0 -1
- package/admin-dist/assets/index-DniLwxJA.js +0 -609
- 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/providers/r2.d.ts +0 -8
- package/dist/providers/r2.d.ts.map +0 -1
- package/dist/providers/r2.js +0 -86
- package/dist/providers/r2.js.map +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
- package/dist/source-sidecars.d.ts +0 -32
- package/dist/source-sidecars.d.ts.map +0 -1
- package/dist/source-sidecars.js +0 -98
- package/dist/source-sidecars.js.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const circularAlias = {
|
|
2
|
+
source: 'gazetta',
|
|
3
|
+
name: 'circular-alias',
|
|
4
|
+
stages: ['background', 'pre-publish', 'cli'],
|
|
5
|
+
defaultSeverity() {
|
|
6
|
+
return 'error';
|
|
7
|
+
},
|
|
8
|
+
async validate(input) {
|
|
9
|
+
const { scope, site } = input;
|
|
10
|
+
if (scope.kind !== 'background')
|
|
11
|
+
return [];
|
|
12
|
+
const manifest = scope.manifest;
|
|
13
|
+
if (manifest.archived !== true)
|
|
14
|
+
return [];
|
|
15
|
+
if (typeof manifest.aliasOf !== 'string' || manifest.aliasOf.length === 0)
|
|
16
|
+
return [];
|
|
17
|
+
// Walk the chain. Q3 G1 invariant says one hop max — if we make
|
|
18
|
+
// it past 1 hop, that's already a violation. Cap at depth 16 to
|
|
19
|
+
// bound the walk on pathological data.
|
|
20
|
+
const chain = walkAliasChain(scope.item.kind, scope.item.name, site);
|
|
21
|
+
if (!chain.cycle && chain.depth <= 1)
|
|
22
|
+
return [];
|
|
23
|
+
if (chain.cycle) {
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
validator: 'circular-alias',
|
|
27
|
+
severity: 'error',
|
|
28
|
+
message: `Alias cycle: ${chain.path.join(' → ')}. Aliases must not form chains (Q3 G1 invariant).`,
|
|
29
|
+
itemPath: scope.item.itemPath,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
validator: 'circular-alias',
|
|
36
|
+
severity: 'error',
|
|
37
|
+
message: `Alias chain: ${chain.path.join(' → ')}. Aliases must point at live items (Q3 G1 invariant — no chaining).`,
|
|
38
|
+
itemPath: scope.item.itemPath,
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
function walkAliasChain(kind, start, site) {
|
|
44
|
+
const map = kind === 'page' ? site.pages : site.fragments;
|
|
45
|
+
const path = [start];
|
|
46
|
+
const visited = new Set([start]);
|
|
47
|
+
let cur = map.get(start);
|
|
48
|
+
const maxDepth = 16;
|
|
49
|
+
while (cur && cur.archived === true && typeof cur.aliasOf === 'string' && cur.aliasOf.length > 0) {
|
|
50
|
+
if (path.length - 1 >= maxDepth)
|
|
51
|
+
break;
|
|
52
|
+
const next = cur.aliasOf;
|
|
53
|
+
if (visited.has(next)) {
|
|
54
|
+
path.push(next);
|
|
55
|
+
return { path, depth: path.length - 1, cycle: true };
|
|
56
|
+
}
|
|
57
|
+
path.push(next);
|
|
58
|
+
visited.add(next);
|
|
59
|
+
cur = map.get(next);
|
|
60
|
+
}
|
|
61
|
+
return { path, depth: path.length - 1, cycle: false };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=circular-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circular-alias.js","sourceRoot":"","sources":["../../../src/validation/validators/circular-alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Validator } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect circular fragment references. A fragment that references @A which
|
|
4
|
+
* references @B which references back to the original creates an infinite
|
|
5
|
+
* resolve loop.
|
|
6
|
+
*
|
|
7
|
+
* Save-delta scope: walk fragment refs in the saved manifest, simulating the
|
|
8
|
+
* site state with the saved manifest substituted in. If a cycle is found,
|
|
9
|
+
* report the chain.
|
|
10
|
+
*
|
|
11
|
+
* Only fires for fragments (pages can't be referenced cyclically — pages
|
|
12
|
+
* aren't reachable from each other through @ refs).
|
|
13
|
+
*/
|
|
14
|
+
export declare const circularFragment: Validator;
|
|
15
|
+
//# sourceMappingURL=circular-fragment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circular-fragment.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/circular-fragment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,SAAS,EAAkB,MAAM,aAAa,CAAA;AAEnE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,SA8B9B,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect circular fragment references. A fragment that references @A which
|
|
3
|
+
* references @B which references back to the original creates an infinite
|
|
4
|
+
* resolve loop.
|
|
5
|
+
*
|
|
6
|
+
* Save-delta scope: walk fragment refs in the saved manifest, simulating the
|
|
7
|
+
* site state with the saved manifest substituted in. If a cycle is found,
|
|
8
|
+
* report the chain.
|
|
9
|
+
*
|
|
10
|
+
* Only fires for fragments (pages can't be referenced cyclically — pages
|
|
11
|
+
* aren't reachable from each other through @ refs).
|
|
12
|
+
*/
|
|
13
|
+
export const circularFragment = {
|
|
14
|
+
source: 'gazetta',
|
|
15
|
+
name: 'circular-fragment',
|
|
16
|
+
stages: ['save-delta', 'background', 'pre-publish', 'cli'],
|
|
17
|
+
defaultSeverity() {
|
|
18
|
+
return 'error';
|
|
19
|
+
},
|
|
20
|
+
async validate(input) {
|
|
21
|
+
const { scope, site } = input;
|
|
22
|
+
if (scope.kind !== 'save-delta' && scope.kind !== 'background')
|
|
23
|
+
return [];
|
|
24
|
+
if (scope.item.kind !== 'fragment')
|
|
25
|
+
return []; // only fragments form cycles
|
|
26
|
+
const manifest = scope.kind === 'save-delta' ? scope.after : scope.manifest;
|
|
27
|
+
const fragmentName = scope.item.name;
|
|
28
|
+
const fragmentsView = scope.kind === 'save-delta' ? withSubstituted(site, fragmentName, manifest) : site.fragments;
|
|
29
|
+
const cycle = findCycle(fragmentName, fragmentsView);
|
|
30
|
+
if (!cycle)
|
|
31
|
+
return [];
|
|
32
|
+
return [
|
|
33
|
+
{
|
|
34
|
+
validator: 'circular-fragment',
|
|
35
|
+
severity: 'error',
|
|
36
|
+
message: `Circular fragment reference: ${cycle.join(' → ')}.`,
|
|
37
|
+
itemPath: scope.item.itemPath,
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Build a fragments map with `name` substituted by the saved manifest.
|
|
44
|
+
* Other entries pass through. Used for save-delta to evaluate the cycle
|
|
45
|
+
* against the would-be-saved state, not the on-disk state.
|
|
46
|
+
*/
|
|
47
|
+
function withSubstituted(site, name, manifest) {
|
|
48
|
+
const map = new Map(site.fragments);
|
|
49
|
+
const existing = map.get(name);
|
|
50
|
+
// Cast: save-delta scope.after for a fragment IS a fragment manifest by construction.
|
|
51
|
+
const dir = existing?.dir ?? `fragments/${name}`;
|
|
52
|
+
map.set(name, { ...manifest, dir });
|
|
53
|
+
return map;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Depth-first search for a cycle starting at `start`. Returns the cycle path
|
|
57
|
+
* (with a closing element to make the loop visible: `a → b → a`) or null.
|
|
58
|
+
*/
|
|
59
|
+
function findCycle(start, fragments) {
|
|
60
|
+
const visiting = new Set();
|
|
61
|
+
const path = [];
|
|
62
|
+
return walk(start);
|
|
63
|
+
function walk(name) {
|
|
64
|
+
if (visiting.has(name)) {
|
|
65
|
+
const idx = path.indexOf(name);
|
|
66
|
+
if (idx >= 0)
|
|
67
|
+
return [...path.slice(idx), name];
|
|
68
|
+
return [name, name];
|
|
69
|
+
}
|
|
70
|
+
const frag = fragments.get(name);
|
|
71
|
+
if (!frag)
|
|
72
|
+
return null;
|
|
73
|
+
visiting.add(name);
|
|
74
|
+
path.push(name);
|
|
75
|
+
for (const ref of fragmentRefs(frag.components ?? [])) {
|
|
76
|
+
const cycle = walk(ref);
|
|
77
|
+
if (cycle)
|
|
78
|
+
return cycle;
|
|
79
|
+
}
|
|
80
|
+
visiting.delete(name);
|
|
81
|
+
path.pop();
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function fragmentRefs(components) {
|
|
86
|
+
const out = [];
|
|
87
|
+
for (const entry of components) {
|
|
88
|
+
if (typeof entry === 'string' && entry.startsWith('@')) {
|
|
89
|
+
out.push(entry.slice(1));
|
|
90
|
+
}
|
|
91
|
+
else if (typeof entry === 'object' && entry !== null && entry.components) {
|
|
92
|
+
out.push(...fragmentRefs(entry.components));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=circular-fragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circular-fragment.js","sourceRoot":"","sources":["../../../src/validation/validators/circular-fragment.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAU;IAEnE,eAAe;QACb,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB;QAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,EAAE,CAAA;QACzE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,EAAE,CAAA,CAAC,6BAA6B;QAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QAE3E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;QACpC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAElH,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACpD,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAErB,OAAO;YACL;gBACE,SAAS,EAAE,mBAAmB;gBAC9B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,gCAAgC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBAC7D,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;aAC9B;SACF,CAAA;IACH,CAAC;CACF,CAAA;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,IAAU,EACV,IAAY,EACZ,QAAyC;IAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,sFAAsF;IACtF,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,aAAa,IAAI,EAAE,CAAA;IAChD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAI,QAA6B,EAAE,GAAG,EAAE,CAAC,CAAA;IACzD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,KAAa,EACb,SAA0D;IAE1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;IAElB,SAAS,IAAI,CAAC,IAAY;QACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACvB,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAA;QACzB,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAAqC;IACzD,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P2: dangling-alias.
|
|
3
|
+
*
|
|
4
|
+
* Per `design-soft-delete.md` Q11 stage matrix: error at save-delta,
|
|
5
|
+
* background, pre-publish, and cli. Severity is always `error` —
|
|
6
|
+
* dangling aliases break the alias-aware renderer (the redirect
|
|
7
|
+
* target doesn't exist).
|
|
8
|
+
*
|
|
9
|
+
* The check: when an item is archived with `aliasOf: X`, validate
|
|
10
|
+
* that an item named `X` exists in `site.pages` (for archived pages)
|
|
11
|
+
* or `site.fragments` (for archived fragments).
|
|
12
|
+
*
|
|
13
|
+
* Symmetric to `referenced-fragment-exists` — both check that a
|
|
14
|
+
* reference has a target. The difference: this validator checks the
|
|
15
|
+
* archive's own aliasOf field, not the components list.
|
|
16
|
+
*
|
|
17
|
+
* # Why error
|
|
18
|
+
*
|
|
19
|
+
* An archived page with `aliasOf: 'missing'` would render `301 →
|
|
20
|
+
* /missing`, which then 404s. An archived fragment aliasing
|
|
21
|
+
* `@missing` would fail to compose at render time. Both are broken
|
|
22
|
+
* states; the publish gate must block.
|
|
23
|
+
*
|
|
24
|
+
* # Save-delta path
|
|
25
|
+
*
|
|
26
|
+
* When the saved manifest is itself archived with aliasOf, validate.
|
|
27
|
+
* When the saved manifest is live (not archived), no-op — only
|
|
28
|
+
* archives can be dangling.
|
|
29
|
+
*
|
|
30
|
+
* # SOLID
|
|
31
|
+
*
|
|
32
|
+
* - SRP: one check; doesn't overlap with circular-alias (P3) or
|
|
33
|
+
* aliasOf-points-to-archived (P5).
|
|
34
|
+
* - DIP: consumes Site; no extra I/O.
|
|
35
|
+
*/
|
|
36
|
+
import type { Validator } from '../types.js';
|
|
37
|
+
export declare const danglingAlias: Validator;
|
|
38
|
+
//# sourceMappingURL=dangling-alias.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangling-alias.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/dangling-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAS,SAAS,EAAkB,MAAM,aAAa,CAAA;AAEnE,eAAO,MAAM,aAAa,EAAE,SA8B3B,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const danglingAlias = {
|
|
2
|
+
source: 'gazetta',
|
|
3
|
+
name: 'dangling-alias',
|
|
4
|
+
stages: ['save-delta', 'background', 'pre-publish', 'cli'],
|
|
5
|
+
defaultSeverity() {
|
|
6
|
+
return 'error';
|
|
7
|
+
},
|
|
8
|
+
async validate(input) {
|
|
9
|
+
const { scope, site } = input;
|
|
10
|
+
if (scope.kind !== 'save-delta' && scope.kind !== 'background')
|
|
11
|
+
return [];
|
|
12
|
+
const manifest = scope.kind === 'save-delta' ? scope.after : scope.manifest;
|
|
13
|
+
if (manifest.archived !== true)
|
|
14
|
+
return [];
|
|
15
|
+
if (typeof manifest.aliasOf !== 'string' || manifest.aliasOf.length === 0)
|
|
16
|
+
return [];
|
|
17
|
+
const targetName = manifest.aliasOf;
|
|
18
|
+
const targetMap = scope.item.kind === 'page' ? site.pages : site.fragments;
|
|
19
|
+
if (targetMap.has(targetName))
|
|
20
|
+
return [];
|
|
21
|
+
return [
|
|
22
|
+
{
|
|
23
|
+
validator: 'dangling-alias',
|
|
24
|
+
severity: 'error',
|
|
25
|
+
message: `Aliased ${scope.item.kind} "${scope.item.name}" points to "${targetName}" which does not exist. The 301 redirect target is missing.`,
|
|
26
|
+
itemPath: scope.item.itemPath,
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=dangling-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangling-alias.js","sourceRoot":"","sources":["../../../src/validation/validators/dangling-alias.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAU;IAEnE,eAAe;QACb,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB;QAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,EAAE,CAAA;QACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QAE3E,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,EAAE,CAAA;QACzC,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAEpF,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAA;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAC1E,IAAI,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAA;QAExC,OAAO;YACL;gBACE,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAgB,UAAU,6DAA6D;gBAC9I,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;aAC9B;SACF,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-target-type-supported.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/deploy-target-type-supported.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAS,SAAS,EAAkB,MAAM,aAAa,CAAA;AAEnE,eAAO,MAAM,yBAAyB,EAAE,SAkCvC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const deployTargetTypeSupported = {
|
|
2
|
+
source: 'gazetta',
|
|
3
|
+
name: 'deploy-target-type-supported',
|
|
4
|
+
stages: ['cli'],
|
|
5
|
+
defaultSeverity() {
|
|
6
|
+
return 'error';
|
|
7
|
+
},
|
|
8
|
+
async validate(input) {
|
|
9
|
+
const { scope, site } = input;
|
|
10
|
+
if (scope.kind !== 'cli')
|
|
11
|
+
return [];
|
|
12
|
+
const targets = (site.manifest.targets ?? {});
|
|
13
|
+
const issues = [];
|
|
14
|
+
for (const [name, target] of Object.entries(targets)) {
|
|
15
|
+
const deploy = target.deploy;
|
|
16
|
+
if (!deploy)
|
|
17
|
+
continue; // no adapter → no compatibility to check
|
|
18
|
+
const targetType = target.type ?? 'static'; // default per TargetConfig
|
|
19
|
+
if (deploy.supports.includes(targetType))
|
|
20
|
+
continue;
|
|
21
|
+
issues.push({
|
|
22
|
+
validator: 'deploy-target-type-supported',
|
|
23
|
+
severity: 'error',
|
|
24
|
+
message: `Target "${name}" has type: "${targetType}" but deploy adapter "${deploy.name}" supports only [${deploy.supports.map(s => `"${s}"`).join(', ')}]. ` +
|
|
25
|
+
`Either switch to a compatible adapter or change target type.`,
|
|
26
|
+
itemPath: `site.config.ts:targets.${name}.deploy`,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return issues;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=deploy-target-type-supported.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-target-type-supported.js","sourceRoot":"","sources":["../../../src/validation/validators/deploy-target-type-supported.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,yBAAyB,GAAc;IAClD,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,8BAA8B;IACpC,MAAM,EAAE,CAAC,KAAK,CAAU;IAExB,eAAe;QACb,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB;QAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,CAAA;QAEnC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAiC,CAAA;QAC7E,MAAM,MAAM,GAAY,EAAE,CAAA;QAE1B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC5B,IAAI,CAAC,MAAM;gBAAE,SAAQ,CAAC,yCAAyC;YAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAA,CAAC,2BAA2B;YACtE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,SAAQ;YAElD,MAAM,CAAC,IAAI,CAAC;gBACV,SAAS,EAAE,8BAA8B;gBACzC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACL,WAAW,IAAI,gBAAgB,UAAU,yBAAyB,MAAM,CAAC,IAAI,oBAAoB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;oBACnJ,8DAA8D;gBAChE,QAAQ,EAAE,0BAA0B,IAAI,SAAS;aAClD,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Validator } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect dynamic route ambiguity between pages.
|
|
4
|
+
*
|
|
5
|
+
* Two routes conflict when one's static path would match the other's dynamic
|
|
6
|
+
* pattern. Examples:
|
|
7
|
+
* - `/blog/hello` (static) and `/blog/:slug` (dynamic) — both match `/blog/hello`
|
|
8
|
+
* - `/:catch-all` and any static page — overshadows everything
|
|
9
|
+
*
|
|
10
|
+
* Save-delta scope: only flags conflicts INTRODUCED by the save (the saved
|
|
11
|
+
* manifest's route conflicts with an existing page's route). Pre-existing
|
|
12
|
+
* conflicts between two unaffected pages are caught by the background scanner
|
|
13
|
+
* (Cut 2), not save-delta.
|
|
14
|
+
*
|
|
15
|
+
* Only fires for pages.
|
|
16
|
+
*/
|
|
17
|
+
export declare const dynamicRouteConflict: Validator;
|
|
18
|
+
//# sourceMappingURL=dynamic-route-conflict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-route-conflict.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/dynamic-route-conflict.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAS,SAAS,EAAkB,MAAM,aAAa,CAAA;AAEnE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAgClC,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect dynamic route ambiguity between pages.
|
|
3
|
+
*
|
|
4
|
+
* Two routes conflict when one's static path would match the other's dynamic
|
|
5
|
+
* pattern. Examples:
|
|
6
|
+
* - `/blog/hello` (static) and `/blog/:slug` (dynamic) — both match `/blog/hello`
|
|
7
|
+
* - `/:catch-all` and any static page — overshadows everything
|
|
8
|
+
*
|
|
9
|
+
* Save-delta scope: only flags conflicts INTRODUCED by the save (the saved
|
|
10
|
+
* manifest's route conflicts with an existing page's route). Pre-existing
|
|
11
|
+
* conflicts between two unaffected pages are caught by the background scanner
|
|
12
|
+
* (Cut 2), not save-delta.
|
|
13
|
+
*
|
|
14
|
+
* Only fires for pages.
|
|
15
|
+
*/
|
|
16
|
+
export const dynamicRouteConflict = {
|
|
17
|
+
source: 'gazetta',
|
|
18
|
+
name: 'dynamic-route-conflict',
|
|
19
|
+
stages: ['save-delta', 'background', 'pre-publish', 'cli'],
|
|
20
|
+
defaultSeverity() {
|
|
21
|
+
return 'error';
|
|
22
|
+
},
|
|
23
|
+
async validate(input) {
|
|
24
|
+
const { scope, site } = input;
|
|
25
|
+
if (scope.kind !== 'save-delta' && scope.kind !== 'background')
|
|
26
|
+
return [];
|
|
27
|
+
if (scope.item.kind !== 'page')
|
|
28
|
+
return [];
|
|
29
|
+
const manifest = scope.kind === 'save-delta' ? scope.after : scope.manifest;
|
|
30
|
+
const newRoute = manifest.route;
|
|
31
|
+
if (!newRoute)
|
|
32
|
+
return [];
|
|
33
|
+
const issues = [];
|
|
34
|
+
for (const [otherName, other] of site.pages) {
|
|
35
|
+
if (otherName === scope.item.name)
|
|
36
|
+
continue; // skip self
|
|
37
|
+
if (routesConflict(newRoute, other.route)) {
|
|
38
|
+
issues.push({
|
|
39
|
+
validator: 'dynamic-route-conflict',
|
|
40
|
+
severity: 'error',
|
|
41
|
+
message: `Route "${newRoute}" conflicts with existing page "${otherName}" (route "${other.route}").`,
|
|
42
|
+
itemPath: scope.item.itemPath,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return issues;
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Two routes conflict if they could both match the same incoming request path.
|
|
51
|
+
*
|
|
52
|
+
* Compares segment-by-segment:
|
|
53
|
+
* - Same length required (no wildcard catch-all in current routing)
|
|
54
|
+
* - Two static segments must match exactly
|
|
55
|
+
* - One static + one dynamic (`:param`) is a conflict (the static would shadow the dynamic, ambiguity in author intent)
|
|
56
|
+
* - Two dynamic segments (regardless of name) match the same set of paths — also a conflict
|
|
57
|
+
*/
|
|
58
|
+
function routesConflict(a, b) {
|
|
59
|
+
if (a === b)
|
|
60
|
+
return true;
|
|
61
|
+
const ap = a.split('/').filter(Boolean);
|
|
62
|
+
const bp = b.split('/').filter(Boolean);
|
|
63
|
+
if (ap.length !== bp.length)
|
|
64
|
+
return false;
|
|
65
|
+
for (let i = 0; i < ap.length; i++) {
|
|
66
|
+
const aSeg = ap[i];
|
|
67
|
+
const bSeg = bp[i];
|
|
68
|
+
const aDyn = aSeg.startsWith(':');
|
|
69
|
+
const bDyn = bSeg.startsWith(':');
|
|
70
|
+
if (!aDyn && !bDyn) {
|
|
71
|
+
// Two static segments must match exactly to compete.
|
|
72
|
+
if (aSeg !== bSeg)
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
// static-vs-dynamic and dynamic-vs-dynamic both potentially match same paths,
|
|
76
|
+
// continue checking remaining segments
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=dynamic-route-conflict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-route-conflict.js","sourceRoot":"","sources":["../../../src/validation/validators/dynamic-route-conflict.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAc;IAC7C,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAU;IAEnE,eAAe;QACb,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB;QAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,EAAE,CAAA;QACzE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QAE3E,MAAM,QAAQ,GAAI,QAAyB,CAAC,KAAK,CAAA;QACjD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAA;QAExB,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI;gBAAE,SAAQ,CAAC,YAAY;YACxD,IAAI,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,SAAS,EAAE,wBAAwB;oBACnC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,UAAU,QAAQ,mCAAmC,SAAS,aAAa,KAAK,CAAC,KAAK,KAAK;oBACpG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;iBAC9B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,qDAAqD;YACrD,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;QACjC,CAAC;QACD,8EAA8E;QAC9E,uCAAuC;IACzC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-validity.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/html-validity.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAS,SAAS,EAAkB,MAAM,aAAa,CAAA;AAmBnE,eAAO,MAAM,YAAY,EAAE,SA4C1B,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* html-validity validator (Validation Cut 3).
|
|
3
|
+
*
|
|
4
|
+
* Runs html-validate (https://html-validate.org/) against the rendered output
|
|
5
|
+
* of each page, surfacing structural HTML problems: missing required
|
|
6
|
+
* attributes, mis-nesting, unclosed tags, deprecated elements.
|
|
7
|
+
*
|
|
8
|
+
* Stages: background + pre-publish + cli (NOT save-delta — depends on
|
|
9
|
+
* rendered output, which save-delta doesn't have access to). Pre-publish
|
|
10
|
+
* promotes warns to errors via the standard severity-promotion mechanism;
|
|
11
|
+
* background surfaces them as warns to keep accumulated debt non-blocking.
|
|
12
|
+
*
|
|
13
|
+
* Rendered output is supplied via `input.renderedOutput` (Cut 3 contract).
|
|
14
|
+
* When `renderedOutput` is absent (e.g., a save-delta scope or a setup that
|
|
15
|
+
* doesn't render), the validator returns no issues — it can't analyze HTML
|
|
16
|
+
* it doesn't have.
|
|
17
|
+
*
|
|
18
|
+
* # SOLID lenses
|
|
19
|
+
*
|
|
20
|
+
* - SRP: this validator owns the HTML-validity check. Render-for-analysis
|
|
21
|
+
* produces the bytes; the validator consumes them.
|
|
22
|
+
* - DIP: depends on `RenderedOutputAccess` interface, not the renderer.
|
|
23
|
+
* - OCP: html-validate's rule set is configurable; future operator-tunable
|
|
24
|
+
* rule subsets ship via per-site config without changing this file.
|
|
25
|
+
*/
|
|
26
|
+
import { HtmlValidate } from 'html-validate';
|
|
27
|
+
let cachedValidator = null;
|
|
28
|
+
function getValidator() {
|
|
29
|
+
if (!cachedValidator) {
|
|
30
|
+
cachedValidator = new HtmlValidate({
|
|
31
|
+
extends: ['html-validate:recommended'],
|
|
32
|
+
// Rules that fire too often on Gazetta-rendered output without adding
|
|
33
|
+
// value. Kept narrow; expand only when concrete operator demand surfaces.
|
|
34
|
+
rules: {
|
|
35
|
+
// Allow dynamically inserted IDs (scoped CSS via hashPath).
|
|
36
|
+
'no-dup-id': 'error',
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return cachedValidator;
|
|
41
|
+
}
|
|
42
|
+
export const htmlValidity = {
|
|
43
|
+
source: 'gazetta',
|
|
44
|
+
name: 'html-validity',
|
|
45
|
+
stages: ['background', 'pre-publish', 'cli'],
|
|
46
|
+
defaultSeverity(stage) {
|
|
47
|
+
return stage === 'pre-publish' ? 'error' : 'warn';
|
|
48
|
+
},
|
|
49
|
+
async validate(input) {
|
|
50
|
+
const { scope, renderedOutput } = input;
|
|
51
|
+
if (scope.kind !== 'background' && scope.kind !== 'pre-publish' && scope.kind !== 'cli')
|
|
52
|
+
return [];
|
|
53
|
+
if (!renderedOutput)
|
|
54
|
+
return [];
|
|
55
|
+
const items = scope.kind === 'background' ? [scope.item] : scope.kind === 'pre-publish' ? [...scope.items] : [];
|
|
56
|
+
if (scope.kind === 'cli')
|
|
57
|
+
return []; // CLI scope walks the site itself; rendered output is per-item
|
|
58
|
+
const issues = [];
|
|
59
|
+
const validator = getValidator();
|
|
60
|
+
for (const item of items) {
|
|
61
|
+
if (item.kind !== 'page')
|
|
62
|
+
continue; // fragments are partials, not full HTML
|
|
63
|
+
const html = await renderedOutput.htmlFor(item);
|
|
64
|
+
if (!html)
|
|
65
|
+
continue;
|
|
66
|
+
const report = await validator.validateString(html);
|
|
67
|
+
if (report.valid)
|
|
68
|
+
continue;
|
|
69
|
+
for (const result of report.results) {
|
|
70
|
+
for (const msg of result.messages) {
|
|
71
|
+
issues.push({
|
|
72
|
+
// Per design-validation.md "Stage × validator matrix":
|
|
73
|
+
// html-validity is warn at every stage (including pre-publish).
|
|
74
|
+
// Operators who want it to block publish opt into
|
|
75
|
+
// publishAudit.strict on the destination target — strict
|
|
76
|
+
// promotion in the publish-audit orchestrator turns warns
|
|
77
|
+
// into errors. The validator itself stays uniformly warn.
|
|
78
|
+
validator: 'html-validity',
|
|
79
|
+
severity: msg.severity === 2 ? 'warn' : 'info',
|
|
80
|
+
message: `${msg.ruleId}: ${msg.message} (line ${msg.line}, col ${msg.column})`,
|
|
81
|
+
itemPath: item.itemPath,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return issues;
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=html-validity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-validity.js","sourceRoot":"","sources":["../../../src/validation/validators/html-validity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,IAAI,eAAe,GAAwB,IAAI,CAAA;AAE/C,SAAS,YAAY;IACnB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,IAAI,YAAY,CAAC;YACjC,OAAO,EAAE,CAAC,2BAA2B,CAAC;YACtC,sEAAsE;YACtE,0EAA0E;YAC1E,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,WAAW,EAAE,OAAO;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAU;IAErD,eAAe,CAAC,KAAK;QACnB,OAAO,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB;QAClC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,CAAA;QAClG,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAA;QAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC/G,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,CAAA,CAAC,+DAA+D;QAEnG,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAQ,CAAC,wCAAwC;YAC3E,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/C,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,MAAM,CAAC,KAAK;gBAAE,SAAQ;YAC1B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC;wBACV,uDAAuD;wBACvD,gEAAgE;wBAChE,kDAAkD;wBAClD,yDAAyD;wBACzD,0DAA0D;wBAC1D,0DAA0D;wBAC1D,SAAS,EAAE,eAAe;wBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;wBAC9C,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG;wBAC9E,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Validator } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect locale-variant manifests whose locale isn't supported by the site.
|
|
4
|
+
*
|
|
5
|
+
* Concrete cases this catches:
|
|
6
|
+
* - `page.fr.json` exists but site config omits `fr` from `locales.supported`
|
|
7
|
+
* (typo, removed locale, or copy-paste leftover)
|
|
8
|
+
* - Same for `fragment.{loc}.json`
|
|
9
|
+
*
|
|
10
|
+
* Doesn't flag missing-default — `page.json` (default locale) absence with
|
|
11
|
+
* `page.fr.json` present means "French-only page," which is valid (per
|
|
12
|
+
* `design-i18n.md` "Edge cases" — French-only pages are allowed).
|
|
13
|
+
*
|
|
14
|
+
* Background scope only — orphan-locale is a site-wide property of the file
|
|
15
|
+
* tree; save-delta on `page.fr.json` already runs the standard ref validators
|
|
16
|
+
* against the saved variant.
|
|
17
|
+
*
|
|
18
|
+
* Issues surface on the orphaned variant file itself.
|
|
19
|
+
*/
|
|
20
|
+
export declare const orphanedLocaleFile: Validator;
|
|
21
|
+
//# sourceMappingURL=orphaned-locale-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orphaned-locale-file.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/orphaned-locale-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,SAAS,EAAkB,MAAM,aAAa,CAAA;AAGnE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAE,SA8DhC,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { resolveSiteLocales } from '../../locale.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect locale-variant manifests whose locale isn't supported by the site.
|
|
4
|
+
*
|
|
5
|
+
* Concrete cases this catches:
|
|
6
|
+
* - `page.fr.json` exists but site config omits `fr` from `locales.supported`
|
|
7
|
+
* (typo, removed locale, or copy-paste leftover)
|
|
8
|
+
* - Same for `fragment.{loc}.json`
|
|
9
|
+
*
|
|
10
|
+
* Doesn't flag missing-default — `page.json` (default locale) absence with
|
|
11
|
+
* `page.fr.json` present means "French-only page," which is valid (per
|
|
12
|
+
* `design-i18n.md` "Edge cases" — French-only pages are allowed).
|
|
13
|
+
*
|
|
14
|
+
* Background scope only — orphan-locale is a site-wide property of the file
|
|
15
|
+
* tree; save-delta on `page.fr.json` already runs the standard ref validators
|
|
16
|
+
* against the saved variant.
|
|
17
|
+
*
|
|
18
|
+
* Issues surface on the orphaned variant file itself.
|
|
19
|
+
*/
|
|
20
|
+
export const orphanedLocaleFile = {
|
|
21
|
+
source: 'gazetta',
|
|
22
|
+
name: 'orphaned-locale-file',
|
|
23
|
+
stages: ['background', 'cli'],
|
|
24
|
+
defaultSeverity() {
|
|
25
|
+
return 'warn';
|
|
26
|
+
},
|
|
27
|
+
async validate(input) {
|
|
28
|
+
const { scope, site } = input;
|
|
29
|
+
if (scope.kind !== 'background' && scope.kind !== 'cli')
|
|
30
|
+
return [];
|
|
31
|
+
const resolved = resolveSiteLocales(site.manifest);
|
|
32
|
+
if (!resolved)
|
|
33
|
+
return []; // single-locale site — no locale variants to check
|
|
34
|
+
const supported = new Set(resolved.supported);
|
|
35
|
+
if (scope.kind === 'background') {
|
|
36
|
+
// Per-item: only emit if THIS item's locale is unsupported.
|
|
37
|
+
const item = scope.item;
|
|
38
|
+
const variants = item.kind === 'page' ? site.pageLocales.get(item.name) : site.fragmentLocales.get(item.name);
|
|
39
|
+
if (!variants)
|
|
40
|
+
return [];
|
|
41
|
+
const issues = [];
|
|
42
|
+
for (const [locale, manifest] of variants.locales) {
|
|
43
|
+
if (supported.has(locale))
|
|
44
|
+
continue;
|
|
45
|
+
const ext = item.kind === 'page' ? 'page' : 'fragment';
|
|
46
|
+
issues.push({
|
|
47
|
+
validator: 'orphaned-locale-file',
|
|
48
|
+
severity: 'warn',
|
|
49
|
+
message: `Locale variant "${locale}" exists but is not in site.locales.supported. Add the locale to site.config.ts or remove the file.`,
|
|
50
|
+
itemPath: `${manifest.dir}/${ext}.${locale}.json`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return issues;
|
|
54
|
+
}
|
|
55
|
+
// CLI: enumerate every orphan across the site
|
|
56
|
+
const issues = [];
|
|
57
|
+
for (const [, entry] of site.pageLocales) {
|
|
58
|
+
for (const [locale, manifest] of entry.locales) {
|
|
59
|
+
if (supported.has(locale))
|
|
60
|
+
continue;
|
|
61
|
+
issues.push({
|
|
62
|
+
validator: 'orphaned-locale-file',
|
|
63
|
+
severity: 'warn',
|
|
64
|
+
message: `Locale variant "${locale}" exists but is not in site.locales.supported.`,
|
|
65
|
+
itemPath: `${manifest.dir}/page.${locale}.json`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
for (const [, entry] of site.fragmentLocales) {
|
|
70
|
+
for (const [locale, manifest] of entry.locales) {
|
|
71
|
+
if (supported.has(locale))
|
|
72
|
+
continue;
|
|
73
|
+
issues.push({
|
|
74
|
+
validator: 'orphaned-locale-file',
|
|
75
|
+
severity: 'warn',
|
|
76
|
+
message: `Locale variant "${locale}" exists but is not in site.locales.supported.`,
|
|
77
|
+
itemPath: `${manifest.dir}/fragment.${locale}.json`,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return issues;
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=orphaned-locale-file.js.map
|