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,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alt-text prompt policies — five `AltPromptPolicy` modules that each
|
|
3
|
+
* own one dimension of prompt content.
|
|
4
|
+
*
|
|
5
|
+
* # Why split into five
|
|
6
|
+
*
|
|
7
|
+
* Per [team-preferences rule 18], "structurally correct from the
|
|
8
|
+
* start". A single mega-string would be a god-string with five
|
|
9
|
+
* reasons to change (task framing, style, length, locale, output
|
|
10
|
+
* discipline). Splitting at the SOLID seam means:
|
|
11
|
+
*
|
|
12
|
+
* - WCAG guidance update → edit `styleGuidancePolicy` only
|
|
13
|
+
* - Locale strategy change → edit `localePolicy` only
|
|
14
|
+
* - Length convention change → edit `lengthPolicy` only
|
|
15
|
+
*
|
|
16
|
+
* Each policy is independently testable. The composer assembles them
|
|
17
|
+
* via `composePrompt(req, DEFAULT_POLICIES)`.
|
|
18
|
+
*
|
|
19
|
+
* # Adding a new style
|
|
20
|
+
*
|
|
21
|
+
* Future styles like `'marketing'` or `'technical'` extend the
|
|
22
|
+
* `AltStyle` enum + add a switch arm in `styleGuidancePolicy`. Other
|
|
23
|
+
* policies untouched (OCP).
|
|
24
|
+
*
|
|
25
|
+
* # Locale handling
|
|
26
|
+
*
|
|
27
|
+
* Direct generation: when locale ≠ default, ask the model to write in
|
|
28
|
+
* that locale. Modern vision models are competently multilingual at
|
|
29
|
+
* description tasks. Translation as a separate pipeline was rejected
|
|
30
|
+
* — would require a parallel `TranslationAdapter` system before its
|
|
31
|
+
* second consumer exists.
|
|
32
|
+
*/
|
|
33
|
+
import type { AltPromptPolicy } from './adapter.js';
|
|
34
|
+
/**
|
|
35
|
+
* Policy 1 — frame the task. Sets the model's frame: this is alt
|
|
36
|
+
* text generation following web-accessibility conventions, not
|
|
37
|
+
* caption generation.
|
|
38
|
+
*/
|
|
39
|
+
export declare const taskFramingPolicy: AltPromptPolicy;
|
|
40
|
+
/**
|
|
41
|
+
* Policy 2 — style guidance per `request.style`. Currently only
|
|
42
|
+
* `'descriptive'`; extending the enum adds a switch arm here.
|
|
43
|
+
*
|
|
44
|
+
* The descriptive guidance steers the model away from common
|
|
45
|
+
* caption-style patterns ("Image of...", "A photograph of...") and
|
|
46
|
+
* toward direct description.
|
|
47
|
+
*/
|
|
48
|
+
export declare const styleGuidancePolicy: AltPromptPolicy;
|
|
49
|
+
/**
|
|
50
|
+
* Policy 3 — length cap as model guidance. Soft instruction; the
|
|
51
|
+
* suggester doesn't enforce truncation. WAI-ARIA convention is 125
|
|
52
|
+
* chars; per-call override via `request.maxChars`.
|
|
53
|
+
*/
|
|
54
|
+
export declare const lengthPolicy: AltPromptPolicy;
|
|
55
|
+
/**
|
|
56
|
+
* Policy 4 — locale instruction. Empty string when locale is the
|
|
57
|
+
* default (composer drops empty-string policies; the prompt has one
|
|
58
|
+
* fewer paragraph), non-empty otherwise.
|
|
59
|
+
*
|
|
60
|
+
* When locale ≠ 'en', the model writes the description in that
|
|
61
|
+
* language directly. No translation step.
|
|
62
|
+
*/
|
|
63
|
+
export declare const localePolicy: AltPromptPolicy;
|
|
64
|
+
/**
|
|
65
|
+
* Policy 5 — output discipline. Clamp the model's tendency to add
|
|
66
|
+
* preamble or wrapper quotes around its answer. Last in the order
|
|
67
|
+
* because it's the closing instruction.
|
|
68
|
+
*/
|
|
69
|
+
export declare const outputDisciplinePolicy: AltPromptPolicy;
|
|
70
|
+
/**
|
|
71
|
+
* Default policy set, in composition order. Most prompt-tuning lives
|
|
72
|
+
* in editing the policies above; the order here changes only when
|
|
73
|
+
* paragraph priority changes (rare).
|
|
74
|
+
*
|
|
75
|
+
* Callers can pass a custom array for one-off requests, but the
|
|
76
|
+
* default is what every alt-text generation uses in production.
|
|
77
|
+
*/
|
|
78
|
+
export declare const DEFAULT_ALT_PROMPT_POLICIES: readonly AltPromptPolicy[];
|
|
79
|
+
//# sourceMappingURL=prompt-policies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-policies.d.ts","sourceRoot":"","sources":["../../src/alt/prompt-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,cAAc,CAAA;AAQ7D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,eACgD,CAAA;AAEhF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAA8D,CAAA;AAEzF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,eAG1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAA6E,CAAA;AAElH;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,eAAe,EAMjE,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The default locale for which `localePolicy` doesn't add anything.
|
|
3
|
+
* Aligned with the WCAG-grounded prompts being written in English.
|
|
4
|
+
*/
|
|
5
|
+
const DEFAULT_LOCALE = 'en';
|
|
6
|
+
/**
|
|
7
|
+
* Policy 1 — frame the task. Sets the model's frame: this is alt
|
|
8
|
+
* text generation following web-accessibility conventions, not
|
|
9
|
+
* caption generation.
|
|
10
|
+
*/
|
|
11
|
+
export const taskFramingPolicy = () => `You are writing alt text for a webpage image, following WCAG 2.1 guidelines.`;
|
|
12
|
+
/**
|
|
13
|
+
* Policy 2 — style guidance per `request.style`. Currently only
|
|
14
|
+
* `'descriptive'`; extending the enum adds a switch arm here.
|
|
15
|
+
*
|
|
16
|
+
* The descriptive guidance steers the model away from common
|
|
17
|
+
* caption-style patterns ("Image of...", "A photograph of...") and
|
|
18
|
+
* toward direct description.
|
|
19
|
+
*/
|
|
20
|
+
export const styleGuidancePolicy = req => {
|
|
21
|
+
const style = req.style;
|
|
22
|
+
switch (style) {
|
|
23
|
+
case 'descriptive':
|
|
24
|
+
return `Describe what's visually present and meaningful. Be specific and concrete. Don't start with "image of" or "picture of" — write the description directly.`;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Policy 3 — length cap as model guidance. Soft instruction; the
|
|
29
|
+
* suggester doesn't enforce truncation. WAI-ARIA convention is 125
|
|
30
|
+
* chars; per-call override via `request.maxChars`.
|
|
31
|
+
*/
|
|
32
|
+
export const lengthPolicy = req => `Maximum ${req.maxChars} characters.`;
|
|
33
|
+
/**
|
|
34
|
+
* Policy 4 — locale instruction. Empty string when locale is the
|
|
35
|
+
* default (composer drops empty-string policies; the prompt has one
|
|
36
|
+
* fewer paragraph), non-empty otherwise.
|
|
37
|
+
*
|
|
38
|
+
* When locale ≠ 'en', the model writes the description in that
|
|
39
|
+
* language directly. No translation step.
|
|
40
|
+
*/
|
|
41
|
+
export const localePolicy = req => {
|
|
42
|
+
if (req.locale === DEFAULT_LOCALE)
|
|
43
|
+
return '';
|
|
44
|
+
return `Write the description in ${req.locale}.`;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Policy 5 — output discipline. Clamp the model's tendency to add
|
|
48
|
+
* preamble or wrapper quotes around its answer. Last in the order
|
|
49
|
+
* because it's the closing instruction.
|
|
50
|
+
*/
|
|
51
|
+
export const outputDisciplinePolicy = () => `Output the description only, no preamble or quotes.`;
|
|
52
|
+
/**
|
|
53
|
+
* Default policy set, in composition order. Most prompt-tuning lives
|
|
54
|
+
* in editing the policies above; the order here changes only when
|
|
55
|
+
* paragraph priority changes (rare).
|
|
56
|
+
*
|
|
57
|
+
* Callers can pass a custom array for one-off requests, but the
|
|
58
|
+
* default is what every alt-text generation uses in production.
|
|
59
|
+
*/
|
|
60
|
+
export const DEFAULT_ALT_PROMPT_POLICIES = [
|
|
61
|
+
taskFramingPolicy,
|
|
62
|
+
styleGuidancePolicy,
|
|
63
|
+
lengthPolicy,
|
|
64
|
+
localePolicy,
|
|
65
|
+
outputDisciplinePolicy,
|
|
66
|
+
];
|
|
67
|
+
//# sourceMappingURL=prompt-policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-policies.js","sourceRoot":"","sources":["../../src/alt/prompt-policies.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoB,GAAG,EAAE,CACrD,8EAA8E,CAAA;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoB,GAAG,CAAC,EAAE;IACxD,MAAM,KAAK,GAAa,GAAG,CAAC,KAAK,CAAA;IACjC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,0JAA0J,CAAA;IACrK,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB,GAAG,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,QAAQ,cAAc,CAAA;AAEzF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB,GAAG,CAAC,EAAE;IACjD,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,EAAE,CAAA;IAC5C,OAAO,4BAA4B,GAAG,CAAC,MAAM,GAAG,CAAA;AAClD,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAoB,GAAG,EAAE,CAAC,qDAAqD,CAAA;AAElH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA+B;IACrE,iBAAiB;IACjB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,sBAAsB;CACvB,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { GazettaManifest, SiteManifest, StorageProvider, TargetConfig } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result of orchestration. The route handler maps these to HTTP
|
|
4
|
+
* responses uniformly:
|
|
5
|
+
*
|
|
6
|
+
* - `'unavailable'` → 503 (no adapter / unsupported MIME)
|
|
7
|
+
* - `'failed'` → 502 (adapter threw)
|
|
8
|
+
* - `'not-found'` → 404 (asset doesn't exist)
|
|
9
|
+
* - `'ok'` → 200 (with body, including possible refused: true)
|
|
10
|
+
*
|
|
11
|
+
* `provider` is exposed on `ok` so the route handler can include it
|
|
12
|
+
* in the audit event (per testing-plan.md gap #4 — refusal forensics).
|
|
13
|
+
*/
|
|
14
|
+
export type SuggestAltResult = {
|
|
15
|
+
kind: 'ok';
|
|
16
|
+
suggestion: {
|
|
17
|
+
text: string;
|
|
18
|
+
refused: boolean;
|
|
19
|
+
refusalReason: string | null;
|
|
20
|
+
};
|
|
21
|
+
provider: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'unavailable';
|
|
24
|
+
message: string;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'failed';
|
|
27
|
+
message: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'not-found';
|
|
30
|
+
message: string;
|
|
31
|
+
};
|
|
32
|
+
export interface SuggestAltOptions {
|
|
33
|
+
/** Asset name (from `:name` URL param). */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Where assets live in storage (typically `'assets'`). */
|
|
36
|
+
assetsRoot: string;
|
|
37
|
+
/** Storage provider for the resolved target. */
|
|
38
|
+
storage: StorageProvider;
|
|
39
|
+
/** Site manifest carrying `ai:` and `altText:` blocks. */
|
|
40
|
+
site: Pick<SiteManifest, 'ai' | 'altText'>;
|
|
41
|
+
/** Resolved target config (target-level overrides applied via factory). */
|
|
42
|
+
target: Pick<TargetConfig, 'altText'> | undefined;
|
|
43
|
+
/** Optional gazetta-level manifest; first rung of the three-rung chain. */
|
|
44
|
+
gazetta?: Pick<GazettaManifest, 'ai' | 'altText'>;
|
|
45
|
+
/** Locale to generate alt in. Defaults to 'en' upstream. */
|
|
46
|
+
locale: string;
|
|
47
|
+
/** Optional AbortSignal forwarded to the adapter. */
|
|
48
|
+
signal?: AbortSignal;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Run an alt-text suggestion for an existing asset. Pure orchestration
|
|
52
|
+
* — no HTTP, no logging, no streaming. Returns a structured result
|
|
53
|
+
* that the route handler maps to HTTP.
|
|
54
|
+
*/
|
|
55
|
+
export declare function suggestAltForAsset(opts: SuggestAltOptions): Promise<SuggestAltResult>;
|
|
56
|
+
//# sourceMappingURL=route-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-handler.d.ts","sourceRoot":"","sources":["../../src/alt/route-handler.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/F;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC5E,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1C,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,OAAO,EAAE,eAAe,CAAA;IACxB,0DAA0D;IAC1D,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC,CAAA;IAC1C,2EAA2E;IAC3E,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;IACjD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,CAAA;IACjD,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgG3F"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route-level orchestration for `POST /api/assets/:name/suggest-alt`.
|
|
3
|
+
*
|
|
4
|
+
* This module owns the wiring between the admin-api HTTP layer and the
|
|
5
|
+
* alt-text task: loads the asset manifest, reads bytes from storage,
|
|
6
|
+
* builds the suggester, runs it, returns the response body.
|
|
7
|
+
*
|
|
8
|
+
* Lives outside `admin-api/routes/assets.ts` so route handlers stay
|
|
9
|
+
* thin (HTTP concerns only) and the orchestration is unit-testable
|
|
10
|
+
* without spinning up Hono.
|
|
11
|
+
*
|
|
12
|
+
* # SOLID
|
|
13
|
+
*
|
|
14
|
+
* - SRP: this module owns "given a name + locale + storage + site,
|
|
15
|
+
* return a suggestion or a typed error". No HTTP concerns; no
|
|
16
|
+
* adapter construction (delegates to `buildAltAdapter`).
|
|
17
|
+
* - DIP: depends on `StorageProvider` + `SiteManifest` + factory
|
|
18
|
+
* functions, never on a specific provider. Tests substitute via
|
|
19
|
+
* the same abstractions.
|
|
20
|
+
* - OCP: adding response fields (e.g., locale fallback used) is one
|
|
21
|
+
* additional field on the returned shape; no changes to the route.
|
|
22
|
+
*/
|
|
23
|
+
import { readManifest } from '../assets/manifest.js';
|
|
24
|
+
import { assetStoragePaths } from '../assets/asset-paths.js';
|
|
25
|
+
import { AssetManifestNotFoundError } from '../assets/errors.js';
|
|
26
|
+
import { buildAltAdapter } from './factory.js';
|
|
27
|
+
import { resolveAltConfig } from './config.js';
|
|
28
|
+
import { createAltSuggester } from './suggester.js';
|
|
29
|
+
/**
|
|
30
|
+
* Run an alt-text suggestion for an existing asset. Pure orchestration
|
|
31
|
+
* — no HTTP, no logging, no streaming. Returns a structured result
|
|
32
|
+
* that the route handler maps to HTTP.
|
|
33
|
+
*/
|
|
34
|
+
export async function suggestAltForAsset(opts) {
|
|
35
|
+
// Resolve config first to validate the feature is configured for
|
|
36
|
+
// this site/target. No adapter construction yet — cheap.
|
|
37
|
+
const resolved = resolveAltConfig(opts.site, opts.target, opts.gazetta);
|
|
38
|
+
if (!resolved) {
|
|
39
|
+
return {
|
|
40
|
+
kind: 'unavailable',
|
|
41
|
+
message: 'AI alt-text is not configured for this site. Add an `altText:` block to site.config.ts.',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// Load the asset manifest. Wrapped in try/catch so we surface
|
|
45
|
+
// missing-asset as a typed result rather than letting the asset
|
|
46
|
+
// domain's typed error escape into the route handler's
|
|
47
|
+
// pattern-match list.
|
|
48
|
+
let manifest;
|
|
49
|
+
try {
|
|
50
|
+
manifest = await readManifest(opts.storage, opts.assetsRoot, opts.name);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (err instanceof AssetManifestNotFoundError) {
|
|
54
|
+
return { kind: 'not-found', message: `Asset '${opts.name}' not found` };
|
|
55
|
+
}
|
|
56
|
+
// Other asset-domain errors bubble — they indicate misconfiguration
|
|
57
|
+
// (e.g., corrupt manifest), which the route handler maps via
|
|
58
|
+
// `respondWithAssetError`.
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
// Build the adapter via the factory. Returns nullAltAdapter when no
|
|
62
|
+
// provider is configured — the suggester's `available()` check
|
|
63
|
+
// surfaces this as `false` and we map to 503.
|
|
64
|
+
const adapter = buildAltAdapter(opts.site, opts.target, opts.gazetta);
|
|
65
|
+
const suggester = createAltSuggester({ adapter });
|
|
66
|
+
if (!suggester.available(manifest.mime)) {
|
|
67
|
+
return {
|
|
68
|
+
kind: 'unavailable',
|
|
69
|
+
message: `AI alt-text adapter unavailable. Check that '${resolved.provider.name}' credentials are valid and that the asset MIME (${manifest.mime}) is supported.`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// Resolve the bytes path for the default-locale variant. v1.5
|
|
73
|
+
// suggests against the asset's default bytes regardless of the
|
|
74
|
+
// requested locale — locale only affects the prompt language. Future
|
|
75
|
+
// locale-specific bytes (e.g., a French-text-overlay version) could
|
|
76
|
+
// route through the override slices; deferred until a real consumer
|
|
77
|
+
// requests it.
|
|
78
|
+
const paths = assetStoragePaths(opts.assetsRoot, manifest);
|
|
79
|
+
let bytes;
|
|
80
|
+
try {
|
|
81
|
+
bytes = await opts.storage.readBytes(paths.defaultBytes);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
return {
|
|
85
|
+
kind: 'failed',
|
|
86
|
+
message: `Could not read asset bytes for '${opts.name}': ${err instanceof Error ? err.message : 'unknown error'}`,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// Optional poster bytes for animated images — the analyzer extracts
|
|
90
|
+
// them at upload time and writes a manifest path; we forward to the
|
|
91
|
+
// suggester so vision-prep skips re-rasterization.
|
|
92
|
+
let posterBytes;
|
|
93
|
+
if (manifest.poster) {
|
|
94
|
+
try {
|
|
95
|
+
posterBytes = await opts.storage.readBytes(`${opts.assetsRoot}/${manifest.poster}`);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Poster missing or unreadable — fall through to source bytes.
|
|
99
|
+
// Vision-prep handles the rasterize-source path.
|
|
100
|
+
posterBytes = undefined;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const suggestion = await suggester.suggest({
|
|
104
|
+
bytes,
|
|
105
|
+
mime: manifest.mime,
|
|
106
|
+
hash: manifest.hash,
|
|
107
|
+
locale: opts.locale,
|
|
108
|
+
maxImageEdge: resolved.maxImageEdge,
|
|
109
|
+
posterBytes,
|
|
110
|
+
}, opts.signal);
|
|
111
|
+
if (suggestion === null) {
|
|
112
|
+
// The suggester returns null on capability miss, abort, or any
|
|
113
|
+
// typed AI error. We've already verified availability above, so
|
|
114
|
+
// here the cause is most likely a transport failure.
|
|
115
|
+
return {
|
|
116
|
+
kind: 'failed',
|
|
117
|
+
message: `Alt-text generation failed. Check ${resolved.provider} status and retry.`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
return { kind: 'ok', suggestion, provider: resolved.provider.name };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=route-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-handler.js","sourceRoot":"","sources":["../../src/alt/route-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AA2CnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAuB;IAC9D,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,yFAAyF;SACnG,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,gEAAgE;IAChE,uDAAuD;IACvD,sBAAsB;IACtB,IAAI,QAAkD,CAAA;IACtD,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,0BAA0B,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,aAAa,EAAE,CAAA;QACzE,CAAC;QACD,oEAAoE;QACpE,6DAA6D;QAC7D,2BAA2B;QAC3B,MAAM,GAAG,CAAA;IACX,CAAC;IAED,oEAAoE;IACpE,+DAA+D;IAC/D,8CAA8C;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAEjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,gDAAgD,QAAQ,CAAC,QAAQ,CAAC,IAAI,oDAAoD,QAAQ,CAAC,IAAI,iBAAiB;SAClK,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,+DAA+D;IAC/D,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,eAAe;IACf,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAE1D,IAAI,KAAiB,CAAA;IACrB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,mCAAmC,IAAI,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SAClH,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,oEAAoE;IACpE,mDAAmD;IACnD,IAAI,WAAmC,CAAA;IACvC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;YAC/D,iDAAiD;YACjD,WAAW,GAAG,SAAS,CAAA;QACzB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CACxC;QACE,KAAK;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,WAAW;KACZ,EACD,IAAI,CAAC,MAAM,CACZ,CAAA;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,+DAA+D;QAC/D,gEAAgE;QAChE,qDAAqD;QACrD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,qCAAqC,QAAQ,CAAC,QAAQ,oBAAoB;SACpF,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;AACrE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { AIAdapterFailedError, AIAdapterUnavailableError, AIInvalidResponseError } from '../ai/errors.js';
|
|
2
|
+
import { type AltSuggestion, type AltTextAdapter } from './adapter.js';
|
|
3
|
+
export interface SuggestInput {
|
|
4
|
+
/** Source asset bytes. */
|
|
5
|
+
bytes: Uint8Array;
|
|
6
|
+
/** Source MIME from manifest. */
|
|
7
|
+
mime: string;
|
|
8
|
+
/** For diagnostics (logging); not used for memoization in v1.5. */
|
|
9
|
+
hash: string;
|
|
10
|
+
/** Target locale for the description. Default 'en'. */
|
|
11
|
+
locale?: string;
|
|
12
|
+
/**
|
|
13
|
+
* For animated images: the analyzer-extracted first-frame poster
|
|
14
|
+
* bytes. The suggester forwards to `prepareForVision` which uses
|
|
15
|
+
* them directly (no re-rasterization).
|
|
16
|
+
*/
|
|
17
|
+
posterBytes?: Uint8Array;
|
|
18
|
+
/**
|
|
19
|
+
* Per-call max-edge override for vision-prep. Defaults to the
|
|
20
|
+
* `prepareForVision` default (768).
|
|
21
|
+
*/
|
|
22
|
+
maxImageEdge?: number;
|
|
23
|
+
/** Soft length cap; default 125. */
|
|
24
|
+
maxChars?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The orchestration interface. UI components and route handlers
|
|
28
|
+
* depend on this; the concrete `createAltSuggester` builds an
|
|
29
|
+
* implementation backed by an adapter.
|
|
30
|
+
*/
|
|
31
|
+
export interface AltSuggester {
|
|
32
|
+
/**
|
|
33
|
+
* True when the wrapped adapter is configured AND supports the
|
|
34
|
+
* given MIME. UI uses this to decide whether to render AI affordances.
|
|
35
|
+
*/
|
|
36
|
+
available(mime: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Run the alt-text suggestion. Returns the structured result from
|
|
39
|
+
* the adapter (which may have `refused: true`), or null when the
|
|
40
|
+
* call couldn't complete (unavailable, transport error, abort).
|
|
41
|
+
*/
|
|
42
|
+
suggest(input: SuggestInput, signal?: AbortSignal): Promise<AltSuggestion | null>;
|
|
43
|
+
}
|
|
44
|
+
export interface CreateAltSuggesterOptions {
|
|
45
|
+
adapter: AltTextAdapter;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Build a suggester wrapping the given adapter. Pure factory — no I/O,
|
|
49
|
+
* no env-var reads. Caller (the route handler or test setup) supplies
|
|
50
|
+
* a fully-constructed adapter.
|
|
51
|
+
*
|
|
52
|
+
* Tests substitute by passing `nullAltAdapter`, a recording mock, or
|
|
53
|
+
* a real adapter with an msw-mocked transport.
|
|
54
|
+
*/
|
|
55
|
+
export declare function createAltSuggester(opts: CreateAltSuggesterOptions): AltSuggester;
|
|
56
|
+
export { AIAdapterFailedError, AIAdapterUnavailableError, AIInvalidResponseError };
|
|
57
|
+
//# sourceMappingURL=suggester.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggester.d.ts","sourceRoot":"","sources":["../../src/alt/suggester.ts"],"names":[],"mappings":"AAiDA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAW,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAElH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAA;AAGrB,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,KAAK,EAAE,UAAU,CAAA;IACjB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAChC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;CAClF;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,YAAY,CAoEhF;AAOD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,CAAA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `AltSuggester` — orchestration between callers and adapters.
|
|
3
|
+
*
|
|
4
|
+
* The suggester is **stateless**. No memoization, no per-replica cache.
|
|
5
|
+
* Multi-replica admin correctness > per-replica optimization. If
|
|
6
|
+
* caching ever earns its keep operationally, it lands as a decorator
|
|
7
|
+
* (`CachedAltSuggester`) wrapping this base — additive, multi-replica
|
|
8
|
+
* correct via shared storage.
|
|
9
|
+
*
|
|
10
|
+
* # What the suggester owns
|
|
11
|
+
*
|
|
12
|
+
* - Build typed `AltRequest` from caller input + defaults
|
|
13
|
+
* - Compose the prompt via `composePrompt(request, policies)`
|
|
14
|
+
* - Call `prepareForVision` to resize bytes before adapter call
|
|
15
|
+
* - Forward `AbortSignal` to adapter
|
|
16
|
+
* - Return `AltSuggestion | null` — null = call failed (adapter
|
|
17
|
+
* unavailable, error, etc.)
|
|
18
|
+
*
|
|
19
|
+
* # What it doesn't own
|
|
20
|
+
*
|
|
21
|
+
* - HTTP / SDK transport (adapter)
|
|
22
|
+
* - Provider-specific request shape (adapter)
|
|
23
|
+
* - Refusal detection (adapter calls `detectRefusal` and constructs
|
|
24
|
+
* the structured `AltSuggestion`; suggester forwards the result)
|
|
25
|
+
* - Cache (none; future decorator)
|
|
26
|
+
* - UI concerns (consumer)
|
|
27
|
+
*
|
|
28
|
+
* # Returning null vs. throwing
|
|
29
|
+
*
|
|
30
|
+
* The suggester's contract: returns `AltSuggestion | null`. Null
|
|
31
|
+
* means "call couldn't complete" — the adapter doesn't support the
|
|
32
|
+
* MIME, or threw a transport error, or was canceled. Consumers treat
|
|
33
|
+
* null uniformly (don't auto-fill).
|
|
34
|
+
*
|
|
35
|
+
* Refusals (model said no but we got a response) come back as
|
|
36
|
+
* `AltSuggestion` with `refused: true`. Different from null — the
|
|
37
|
+
* suggester DID complete, the model just declined. Consumers can
|
|
38
|
+
* surface `refusalReason` to the author.
|
|
39
|
+
*
|
|
40
|
+
* # SOLID
|
|
41
|
+
*
|
|
42
|
+
* - SRP: this module owns one concern (orchestration of the
|
|
43
|
+
* adapter call from caller input to result/null)
|
|
44
|
+
* - OCP: caching, retry, throttling all land as decorators wrapping
|
|
45
|
+
* `AltSuggester` — none requires changing this module
|
|
46
|
+
* - DIP: depends on `AltTextAdapter` (abstract), uses `prepareForVision`
|
|
47
|
+
* and `composePrompt` (utilities); no knowledge of any provider
|
|
48
|
+
*/
|
|
49
|
+
import { composePrompt } from '../ai/compose-prompt.js';
|
|
50
|
+
import { AIAdapterFailedError, AIAdapterUnavailableError, AIError, AIInvalidResponseError } from '../ai/errors.js';
|
|
51
|
+
import { prepareForVision } from '../ai/vision-prep.js';
|
|
52
|
+
import { DEFAULT_ALT_REQUEST, } from './adapter.js';
|
|
53
|
+
import { DEFAULT_ALT_PROMPT_POLICIES } from './prompt-policies.js';
|
|
54
|
+
/**
|
|
55
|
+
* Build a suggester wrapping the given adapter. Pure factory — no I/O,
|
|
56
|
+
* no env-var reads. Caller (the route handler or test setup) supplies
|
|
57
|
+
* a fully-constructed adapter.
|
|
58
|
+
*
|
|
59
|
+
* Tests substitute by passing `nullAltAdapter`, a recording mock, or
|
|
60
|
+
* a real adapter with an msw-mocked transport.
|
|
61
|
+
*/
|
|
62
|
+
export function createAltSuggester(opts) {
|
|
63
|
+
const { adapter } = opts;
|
|
64
|
+
return {
|
|
65
|
+
available(mime) {
|
|
66
|
+
return adapter.supports(mime);
|
|
67
|
+
},
|
|
68
|
+
async suggest(input, signal) {
|
|
69
|
+
// Capability check first — adapter may be null-adapter or may
|
|
70
|
+
// not support this MIME. Either way: nothing to attempt.
|
|
71
|
+
if (!adapter.supports(input.mime))
|
|
72
|
+
return null;
|
|
73
|
+
// Bail on already-aborted signals before doing any work.
|
|
74
|
+
if (signal?.aborted)
|
|
75
|
+
return null;
|
|
76
|
+
// Build the typed request from input + defaults.
|
|
77
|
+
const request = {
|
|
78
|
+
...DEFAULT_ALT_REQUEST,
|
|
79
|
+
locale: input.locale ?? DEFAULT_ALT_REQUEST.locale,
|
|
80
|
+
maxChars: input.maxChars ?? DEFAULT_ALT_REQUEST.maxChars,
|
|
81
|
+
};
|
|
82
|
+
// Compose prompt and prepare bytes — both pure, both idempotent.
|
|
83
|
+
const prompt = composePrompt(request, DEFAULT_ALT_PROMPT_POLICIES);
|
|
84
|
+
let prepared;
|
|
85
|
+
try {
|
|
86
|
+
prepared = await prepareForVision({
|
|
87
|
+
bytes: input.bytes,
|
|
88
|
+
mime: input.mime,
|
|
89
|
+
posterBytes: input.posterBytes,
|
|
90
|
+
maxEdge: input.maxImageEdge,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Vision-prep failure (sharp couldn't decode): treat as
|
|
95
|
+
// unavailable. The asset's bytes are presumably corrupt or
|
|
96
|
+
// an unexpected format — not worth calling the model on
|
|
97
|
+
// garbage.
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const generateInput = {
|
|
101
|
+
bytes: prepared.bytes,
|
|
102
|
+
mime: prepared.mime,
|
|
103
|
+
request,
|
|
104
|
+
prompt,
|
|
105
|
+
};
|
|
106
|
+
try {
|
|
107
|
+
return await adapter.generate(generateInput, signal);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
// AbortSignal-induced rejection: surface as null (call canceled).
|
|
111
|
+
if (signal?.aborted)
|
|
112
|
+
return null;
|
|
113
|
+
// AI errors are expected failure modes — caller maps null →
|
|
114
|
+
// user-facing toast. Re-throwing would force every caller to
|
|
115
|
+
// try/catch around `suggest`, which is exactly what the
|
|
116
|
+
// suggester contract abstracts away.
|
|
117
|
+
if (err instanceof AIError)
|
|
118
|
+
return null;
|
|
119
|
+
// Non-AI errors (programmer bugs, unexpected exceptions)
|
|
120
|
+
// bubble — the suggester doesn't swallow these, since they
|
|
121
|
+
// indicate a real problem worth surfacing.
|
|
122
|
+
throw err;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// Re-export AI error types so callers/tests can pattern-match without
|
|
128
|
+
// importing from `ai/`. Useful during the brief window where adapter
|
|
129
|
+
// implementations distinguish unavailable vs. failed vs. invalid-
|
|
130
|
+
// response; in practice route handlers only need the suggester's
|
|
131
|
+
// null/non-null result.
|
|
132
|
+
export { AIAdapterFailedError, AIAdapterUnavailableError, AIInvalidResponseError };
|
|
133
|
+
//# sourceMappingURL=suggester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggester.js","sourceRoot":"","sources":["../../src/alt/suggester.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAKL,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAiDlE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAExB,OAAO;QACL,SAAS,CAAC,IAAY;YACpB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAmB,EAAE,MAAoB;YACrD,8DAA8D;YAC9D,yDAAyD;YACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE9C,yDAAyD;YACzD,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO,IAAI,CAAA;YAEhC,iDAAiD;YACjD,MAAM,OAAO,GAAe;gBAC1B,GAAG,mBAAmB;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,MAAM;gBAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,QAAQ;aACzD,CAAA;YAED,iEAAiE;YACjE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAA;YAElE,IAAI,QAA6C,CAAA;YACjD,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC;oBAChC,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,OAAO,EAAE,KAAK,CAAC,YAAY;iBAC5B,CAAC,CAAA;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,wDAAwD;gBACxD,2DAA2D;gBAC3D,wDAAwD;gBACxD,WAAW;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,aAAa,GAAqB;gBACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO;gBACP,MAAM;aACP,CAAA;YAED,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,IAAI,MAAM,EAAE,OAAO;oBAAE,OAAO,IAAI,CAAA;gBAEhC,4DAA4D;gBAC5D,6DAA6D;gBAC7D,wDAAwD;gBACxD,qCAAqC;gBACrC,IAAI,GAAG,YAAY,OAAO;oBAAE,OAAO,IAAI,CAAA;gBAEvC,yDAAyD;gBACzD,2DAA2D;gBAC3D,2CAA2C;gBAC3C,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,sEAAsE;AACtE,qEAAqE;AACrE,kEAAkE;AAClE,iEAAiE;AACjE,wBAAwB;AACxB,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,CAAA"}
|
package/dist/app.js
CHANGED
|
@@ -4,7 +4,7 @@ import { resolvePage } from './resolver.js';
|
|
|
4
4
|
import { renderPage } from './renderer.js';
|
|
5
5
|
export async function createApp(siteDir, storage) {
|
|
6
6
|
const app = new Hono();
|
|
7
|
-
const site = await loadSite({ siteDir, storage });
|
|
7
|
+
const site = await loadSite({ siteDir, storage, manifest: { name: '(app)' } });
|
|
8
8
|
for (const [pageName, page] of site.pages) {
|
|
9
9
|
app.get(page.route, async (c) => {
|
|
10
10
|
const resolved = await resolvePage(pageName, site);
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,OAAwB;IACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,OAAwB;IACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAE9E,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAClD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Archive-alias-targets sidecar binding for the generic dep-sidecars
|
|
3
|
+
* module.
|
|
4
|
+
*
|
|
5
|
+
* Answers "which archived items have `aliasOf === X`?" via the same
|
|
6
|
+
* per-edge sidecar shape as `asset-refs` and `fragment-deps`:
|
|
7
|
+
*
|
|
8
|
+
* `{root}/.gazetta/alias-targets/{X}/{encoded-source-item}`
|
|
9
|
+
*
|
|
10
|
+
* Without this index, the purge handler (Cut 5) would have to walk
|
|
11
|
+
* every page + fragment manifest on every purge attempt to find
|
|
12
|
+
* aliases pointing at the target. At the 5K-page envelope per
|
|
13
|
+
* `design-scale.md`, that's a ~30s walk on real cloud storage —
|
|
14
|
+
* unacceptable for an interactive admin operation. The sidecar
|
|
15
|
+
* makes it a single `readDir` (~5ms).
|
|
16
|
+
*
|
|
17
|
+
* Per `team-preferences.md` rule 24: "Validate every primitive
|
|
18
|
+
* against the 5K-page envelope" — the sidecar IS the perf design.
|
|
19
|
+
*
|
|
20
|
+
* # Lifecycle
|
|
21
|
+
*
|
|
22
|
+
* - Save handler: when an item is archived with `aliasOf` set,
|
|
23
|
+
* `rebuildArchiveAliases` writes the sidecar at
|
|
24
|
+
* `.gazetta/alias-targets/{aliasTarget}/{item}`.
|
|
25
|
+
* - Save handler: when the same item is unarchived OR has its
|
|
26
|
+
* `aliasOf` field changed, the diff drops the old target's
|
|
27
|
+
* sidecar and adds the new target's sidecar.
|
|
28
|
+
* - Delete/purge handler: pass `newManifest = null` to tear down
|
|
29
|
+
* the sidecar for the item being purged.
|
|
30
|
+
* - Cross-target: source-and-target consistent (same shape on
|
|
31
|
+
* both); the publish flow propagates the `.gazetta/` namespace.
|
|
32
|
+
*
|
|
33
|
+
* Per Q3's flatten-on-rename lock: aliases never form chains.
|
|
34
|
+
* `aliasOf` always points at a live item (or at a missing item,
|
|
35
|
+
* which the `dangling-alias` validator surfaces). The sidecar
|
|
36
|
+
* stores ONE target per archive — the relation's `extract`
|
|
37
|
+
* returns either `{aliasOf}` or `∅`.
|
|
38
|
+
*/
|
|
39
|
+
import type { ContentRoot } from './content-root.js';
|
|
40
|
+
import { type DepRelation, type ItemRef, type ManifestLike } from './dep-sidecars.js';
|
|
41
|
+
/**
|
|
42
|
+
* The archive-aliases relation.
|
|
43
|
+
*
|
|
44
|
+
* Extracts the alias target from a manifest. The set is at most
|
|
45
|
+
* one element — Q3 flatten guarantees one-hop aliases. A live
|
|
46
|
+
* manifest (or an archived-without-alias manifest) yields the
|
|
47
|
+
* empty set, which means no sidecars are written for it.
|
|
48
|
+
*/
|
|
49
|
+
export declare const ARCHIVE_ALIASES: DepRelation;
|
|
50
|
+
/**
|
|
51
|
+
* Read every archived item that aliases this target. Returns
|
|
52
|
+
* `ItemRef[]`; the caller maps to `(kind, name)` for error bodies
|
|
53
|
+
* (e.g. the purge-blocked 409 response from `design-soft-delete.md`
|
|
54
|
+
* Q4).
|
|
55
|
+
*/
|
|
56
|
+
export declare function readArchivesAliasing(contentRoot: ContentRoot, targetName: string): Promise<ItemRef[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Apply the alias-targets diff for one item's manifest change.
|
|
59
|
+
*
|
|
60
|
+
* Pass the pre-save manifest as `oldManifest` and the post-save
|
|
61
|
+
* manifest as `newManifest`. The diff drops sidecars for any
|
|
62
|
+
* removed alias targets and writes sidecars for any added targets.
|
|
63
|
+
*
|
|
64
|
+
* Cases:
|
|
65
|
+
* - Live → archive(aliasOf=X) : write `.gazetta/alias-targets/X/{item}`
|
|
66
|
+
* - Live → archive(no aliasOf) : no I/O
|
|
67
|
+
* - Archive(X) → archive(Y) : remove X's sidecar, write Y's
|
|
68
|
+
* - Archive(X) → archive(no aliasOf) : remove X's sidecar
|
|
69
|
+
* - Archive(X) → live : remove X's sidecar
|
|
70
|
+
* - Archive(X) → null (purge) : remove X's sidecar
|
|
71
|
+
* - Live → null (purge) : no I/O
|
|
72
|
+
*/
|
|
73
|
+
export declare function rebuildArchiveAliases(contentRoot: ContentRoot, item: ItemRef, oldManifest: ManifestLike | null, newManifest: ManifestLike | null): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Apply a pre-computed diff (used in tests + cases where the
|
|
76
|
+
* caller has the alias names already).
|
|
77
|
+
*/
|
|
78
|
+
export declare function applyArchiveAliasesDiff(contentRoot: ContentRoot, item: ItemRef, oldTargets: ReadonlySet<string>, newTargets: ReadonlySet<string>): Promise<void>;
|
|
79
|
+
//# sourceMappingURL=archive-aliases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-aliases.d.ts","sourceRoot":"","sources":["../src/archive-aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,YAAY,EAIlB,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,WAY7B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAErG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,YAAY,GAAG,IAAI,EAChC,WAAW,EAAE,YAAY,GAAG,IAAI,GAC/B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|