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,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Create — POST handler logic for `/api/pages`.
|
|
3
|
+
*
|
|
4
|
+
* Different from `savePage`:
|
|
5
|
+
* - No etag precheck (nothing to compare against; new page)
|
|
6
|
+
* - No locale variant lookup (creates the default Page Manifest)
|
|
7
|
+
* - Name conflict resolution per `design-soft-delete.md` Q5 I3:
|
|
8
|
+
* - Live name in use → typed `LIVE_CONFLICT` outcome
|
|
9
|
+
* - Archived name in use, no `?onConflict` flag → typed
|
|
10
|
+
* `ARCHIVED_CONFLICT` outcome with archive details
|
|
11
|
+
* - Archived name in use, with mode → delegate to
|
|
12
|
+
* `resolveArchivedNameConflict` (restore / replace / moveAside)
|
|
13
|
+
* - Folder creation (`storage.mkdir(pageDir)`)
|
|
14
|
+
* - Initial sidecar wiring (`rebuildAssetRefs` /
|
|
15
|
+
* `rebuildFragmentDeps` against `null` → empty manifest)
|
|
16
|
+
* - Cache invalidation (`pages:`)
|
|
17
|
+
*
|
|
18
|
+
* Same as `savePage` for the post-resolution-or-create write itself —
|
|
19
|
+
* eventually creates pass through `saveManifestCore` once the
|
|
20
|
+
* "before is null" path lands. v1 keeps the create-time path
|
|
21
|
+
* separate because it doesn't need validators / hooks / scanner /
|
|
22
|
+
* audit-on-failure (a new empty page has no validation surface to
|
|
23
|
+
* exercise yet).
|
|
24
|
+
*
|
|
25
|
+
* Per Q6 lock: separate `createPage` instead of folding into
|
|
26
|
+
* `savePage` — Create has its own pre-write phase (conflict prompt,
|
|
27
|
+
* mkdir, route derive) that update doesn't. Branchy A would merge
|
|
28
|
+
* two distinct intents.
|
|
29
|
+
*/
|
|
30
|
+
import { join } from 'node:path';
|
|
31
|
+
import { resolveArchivedNameConflict, } from '../admin-api/archived-name-conflict.js';
|
|
32
|
+
import { rebuildAssetRefs } from '../assets/asset-deps.js';
|
|
33
|
+
import { rebuildFragmentDeps } from '../fragment-deps.js';
|
|
34
|
+
import { loadSiteFromSource } from '../admin-api/source-context.js';
|
|
35
|
+
/**
|
|
36
|
+
* Create a Page. Wraps the conflict-resolution decision tree + the
|
|
37
|
+
* fresh-create write path. Routes project the typed `CreatePageResult`
|
|
38
|
+
* to HTTP (200 / 400 / 409).
|
|
39
|
+
*/
|
|
40
|
+
export async function createPage(input) {
|
|
41
|
+
const { source, name, template, content, onConflict, principal, audit } = input;
|
|
42
|
+
const { storage } = source;
|
|
43
|
+
const pageDir = source.contentRoot.path('pages', name);
|
|
44
|
+
const manifestPath = join(pageDir, 'page.json');
|
|
45
|
+
// Conflict path — manifest already exists at the target name.
|
|
46
|
+
if (await storage.exists(manifestPath)) {
|
|
47
|
+
const site = await loadSiteFromSource(source);
|
|
48
|
+
const existing = site.pages.get(name);
|
|
49
|
+
const isArchived = existing?.archived === true;
|
|
50
|
+
if (!isArchived) {
|
|
51
|
+
return { ok: false, code: 'LIVE_CONFLICT', name };
|
|
52
|
+
}
|
|
53
|
+
// Archived conflict, no resolution flag → return structured
|
|
54
|
+
// body so the client can prompt the author per Q5 I3.
|
|
55
|
+
if (!onConflict) {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
code: 'ARCHIVED_CONFLICT',
|
|
59
|
+
archive: {
|
|
60
|
+
kind: 'page',
|
|
61
|
+
name,
|
|
62
|
+
...(existing?.archivedAt ? { archivedAt: existing.archivedAt } : {}),
|
|
63
|
+
...(existing?.archivedBy ? { archivedBy: existing.archivedBy } : {}),
|
|
64
|
+
...(existing?.aliasOf ? { aliasOf: existing.aliasOf } : {}),
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// Archived conflict + mode → delegate to the resolver.
|
|
69
|
+
const result = await resolveArchivedNameConflict({
|
|
70
|
+
source,
|
|
71
|
+
kind: 'page',
|
|
72
|
+
name,
|
|
73
|
+
existing: existing,
|
|
74
|
+
mode: onConflict,
|
|
75
|
+
newTemplate: template,
|
|
76
|
+
newContent: content,
|
|
77
|
+
actorId: principal.id,
|
|
78
|
+
});
|
|
79
|
+
if (result.kind === 'invalid-mode') {
|
|
80
|
+
return { ok: false, code: 'INVALID_CONFLICT_MODE', mode: onConflict };
|
|
81
|
+
}
|
|
82
|
+
// Audit one event per logical mode — mirror existing route shape.
|
|
83
|
+
const action = result.kind === 'restored' ? 'unarchive' : result.kind === 'replaced' ? 'archive' : 'rename';
|
|
84
|
+
await audit.record({
|
|
85
|
+
// The audit recorder's typed shape limits action to save-flow values;
|
|
86
|
+
// the resolver's audit events use the soft-delete vocabulary. Cast
|
|
87
|
+
// through `unknown` keeps the recorder shape narrow without forcing a
|
|
88
|
+
// wider union into the save pipeline's contract.
|
|
89
|
+
action: action,
|
|
90
|
+
outcome: 'success',
|
|
91
|
+
scope: { kind: 'page', name },
|
|
92
|
+
metadata: { onConflict },
|
|
93
|
+
});
|
|
94
|
+
await source.cache.invalidatePrefix('pages:');
|
|
95
|
+
return { ok: true, name, resolution: result.kind };
|
|
96
|
+
}
|
|
97
|
+
// Fresh create path — no existing manifest at the target name.
|
|
98
|
+
await storage.mkdir(pageDir);
|
|
99
|
+
const manifest = {
|
|
100
|
+
template,
|
|
101
|
+
content: content ?? { title: name },
|
|
102
|
+
components: [],
|
|
103
|
+
};
|
|
104
|
+
await storage.writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
105
|
+
// Sidecar wiring — fresh manifest has empty components[] so the
|
|
106
|
+
// diff against null is mostly a no-op today; wires the dep tracking
|
|
107
|
+
// for the moment templates ship initial content with `_asset` or
|
|
108
|
+
// `@fragment` refs.
|
|
109
|
+
const item = { source: 'page', name };
|
|
110
|
+
await Promise.all([
|
|
111
|
+
rebuildAssetRefs(source.contentRoot, item, null, manifest),
|
|
112
|
+
rebuildFragmentDeps(source.contentRoot, item, null, manifest),
|
|
113
|
+
]);
|
|
114
|
+
await source.cache.invalidatePrefix('pages:');
|
|
115
|
+
return { ok: true, name };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/pages/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Publish — kind-specific wrapper around `publishItemCore`.
|
|
3
|
+
*
|
|
4
|
+
* Owns the bits unique to Page publishes:
|
|
5
|
+
* - Render-mode resolution from target.type + archive state:
|
|
6
|
+
* - archived → 'archive-marker' regardless of target type
|
|
7
|
+
* - target.type === 'esi' → 'page-rendered' (ESI placeholders)
|
|
8
|
+
* - target.type === 'static' → 'page-static' (full-bake)
|
|
9
|
+
* - target.type === 'dynamic' → 'page-static' (static fallback;
|
|
10
|
+
* dynamic origin handles per-request render)
|
|
11
|
+
* - Page-cache config flow-through (target → page → spine renderer
|
|
12
|
+
* reads it for the cache-control comment)
|
|
13
|
+
*
|
|
14
|
+
* Everything downstream — archive precheck, render dispatch, storage
|
|
15
|
+
* I/O, sidecar writes, cleanup — is `publishItemCore`'s spine.
|
|
16
|
+
*
|
|
17
|
+
* Per Q3 lock: two fns + shared core. The 5 page-vs-fragment diffs
|
|
18
|
+
* (mode resolution, page-cache, sidecar pub-state, etc.) live here in
|
|
19
|
+
* one file the reader can scan top-to-bottom.
|
|
20
|
+
*/
|
|
21
|
+
import { type PublishItemResult, type PublishRenderMode, type PublishTarget } from '../publish-item.js';
|
|
22
|
+
import type { ContentRoot } from '../content-root.js';
|
|
23
|
+
import type { Site } from '../site-loader.js';
|
|
24
|
+
/**
|
|
25
|
+
* Inputs to `publishPage`. Routes / CLI / orchestrator destructure
|
|
26
|
+
* their context and pass the parts the pipeline needs.
|
|
27
|
+
*/
|
|
28
|
+
export interface PublishPageInput {
|
|
29
|
+
/** Page name (folder name under `pages/`). */
|
|
30
|
+
readonly name: string;
|
|
31
|
+
/** Locale variant being published; undefined = default locale. */
|
|
32
|
+
readonly locale?: string;
|
|
33
|
+
/** Loaded site (caller does `loadSite()` once for the publish run). */
|
|
34
|
+
readonly site: Site;
|
|
35
|
+
/** Source content root (typically not used by core today; reserved for hooks). */
|
|
36
|
+
readonly sourceRoot: ContentRoot;
|
|
37
|
+
/** Target context (storage, type, optional manifestHash, seo, cache). */
|
|
38
|
+
readonly target: PublishTarget;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the render mode for a page on a target. Pure dispatch
|
|
42
|
+
* function — exported for tests + per-kind reuse.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolvePageRenderMode(page: {
|
|
45
|
+
archived?: boolean;
|
|
46
|
+
}, targetType: PublishTarget['type']): PublishRenderMode;
|
|
47
|
+
/**
|
|
48
|
+
* Publish a page to a target. Wraps `publishItemCore` with the
|
|
49
|
+
* page-specific mode resolution. Returns one of `PublishItemResult`'s
|
|
50
|
+
* typed variants — caller projects to wire shape (HTTP / SSE / CLI
|
|
51
|
+
* stdout / aggregate result).
|
|
52
|
+
*
|
|
53
|
+
* Caller responsibilities (handled by per-run orchestrator in Cut 5):
|
|
54
|
+
* - Capability check (`requireCapability('publish:...')`)
|
|
55
|
+
* - Template scan + loadSite (shared across run)
|
|
56
|
+
* - Per-target init + capability gates
|
|
57
|
+
*/
|
|
58
|
+
export declare function publishPage(input: PublishPageInput): Promise<PublishItemResult>;
|
|
59
|
+
//# sourceMappingURL=publish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/pages/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAmB,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;IAChC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC5B,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAChC,iBAAiB,CAcnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsBrF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Publish — kind-specific wrapper around `publishItemCore`.
|
|
3
|
+
*
|
|
4
|
+
* Owns the bits unique to Page publishes:
|
|
5
|
+
* - Render-mode resolution from target.type + archive state:
|
|
6
|
+
* - archived → 'archive-marker' regardless of target type
|
|
7
|
+
* - target.type === 'esi' → 'page-rendered' (ESI placeholders)
|
|
8
|
+
* - target.type === 'static' → 'page-static' (full-bake)
|
|
9
|
+
* - target.type === 'dynamic' → 'page-static' (static fallback;
|
|
10
|
+
* dynamic origin handles per-request render)
|
|
11
|
+
* - Page-cache config flow-through (target → page → spine renderer
|
|
12
|
+
* reads it for the cache-control comment)
|
|
13
|
+
*
|
|
14
|
+
* Everything downstream — archive precheck, render dispatch, storage
|
|
15
|
+
* I/O, sidecar writes, cleanup — is `publishItemCore`'s spine.
|
|
16
|
+
*
|
|
17
|
+
* Per Q3 lock: two fns + shared core. The 5 page-vs-fragment diffs
|
|
18
|
+
* (mode resolution, page-cache, sidecar pub-state, etc.) live here in
|
|
19
|
+
* one file the reader can scan top-to-bottom.
|
|
20
|
+
*/
|
|
21
|
+
import { isArchived } from '../archive-helpers.js';
|
|
22
|
+
import { publishItemCore } from '../publish-item.js';
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the render mode for a page on a target. Pure dispatch
|
|
25
|
+
* function — exported for tests + per-kind reuse.
|
|
26
|
+
*/
|
|
27
|
+
export function resolvePageRenderMode(page, targetType) {
|
|
28
|
+
// Archive precheck wins regardless of target type. The spine's
|
|
29
|
+
// archive-marker renderer body-skips and emits the marker line so
|
|
30
|
+
// the worker reads first 200 bytes and short-circuits to 301/410
|
|
31
|
+
// per design-soft-delete.md Q10.
|
|
32
|
+
if (isArchived(page))
|
|
33
|
+
return 'archive-marker';
|
|
34
|
+
// ESI mode: pages compose ESI placeholders for `@fragment` refs
|
|
35
|
+
// at request time on a worker-served target.
|
|
36
|
+
if (targetType === 'esi')
|
|
37
|
+
return 'page-rendered';
|
|
38
|
+
// Static + dynamic targets bake the full page. Dynamic targets'
|
|
39
|
+
// origin handles per-request rendering for dynamic FRAGMENTS only;
|
|
40
|
+
// pages themselves still get a static fallback (per
|
|
41
|
+
// design-rendering.md compatibility matrix).
|
|
42
|
+
return 'page-static';
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Publish a page to a target. Wraps `publishItemCore` with the
|
|
46
|
+
* page-specific mode resolution. Returns one of `PublishItemResult`'s
|
|
47
|
+
* typed variants — caller projects to wire shape (HTTP / SSE / CLI
|
|
48
|
+
* stdout / aggregate result).
|
|
49
|
+
*
|
|
50
|
+
* Caller responsibilities (handled by per-run orchestrator in Cut 5):
|
|
51
|
+
* - Capability check (`requireCapability('publish:...')`)
|
|
52
|
+
* - Template scan + loadSite (shared across run)
|
|
53
|
+
* - Per-target init + capability gates
|
|
54
|
+
*/
|
|
55
|
+
export async function publishPage(input) {
|
|
56
|
+
const page = input.site.pages.get(input.name);
|
|
57
|
+
if (!page) {
|
|
58
|
+
return {
|
|
59
|
+
kind: 'page',
|
|
60
|
+
name: input.name,
|
|
61
|
+
locale: input.locale,
|
|
62
|
+
ok: false,
|
|
63
|
+
code: 'NOT_FOUND',
|
|
64
|
+
reason: `Page "${input.name}" not found in source`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const mode = resolvePageRenderMode(page, input.target.type);
|
|
68
|
+
return publishItemCore({
|
|
69
|
+
kind: 'page',
|
|
70
|
+
name: input.name,
|
|
71
|
+
locale: input.locale,
|
|
72
|
+
mode,
|
|
73
|
+
site: input.site,
|
|
74
|
+
sourceRoot: input.sourceRoot,
|
|
75
|
+
target: input.target,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/pages/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAsE,MAAM,oBAAoB,CAAA;AAqBxH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA4B,EAC5B,UAAiC;IAEjC,+DAA+D;IAC/D,kEAAkE;IAClE,iEAAiE;IACjE,iCAAiC;IACjC,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAA;IAC7C,gEAAgE;IAChE,6CAA6C;IAC7C,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,eAAe,CAAA;IAChD,gEAAgE;IAChE,mEAAmE;IACnE,oDAAoD;IACpD,6CAA6C;IAC7C,OAAO,aAAa,CAAA;AACtB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,SAAS,KAAK,CAAC,IAAI,uBAAuB;SACnD,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Save — kind-specific wrapper around `saveManifestCore`.
|
|
3
|
+
*
|
|
4
|
+
* Owns the bits unique to Page Manifest writes:
|
|
5
|
+
* - Locale resolution (default vs `page.{locale}.json` variant)
|
|
6
|
+
* using `site.pages` + `site.pageLocales`
|
|
7
|
+
* - Component-ID auto-assignment via `ensureComponentIds`
|
|
8
|
+
* - Filename composition (`page.json` vs `page.{locale}.json`)
|
|
9
|
+
* - Manifest assembly (template/content/components/metadata, plus
|
|
10
|
+
* route preservation for locale variants)
|
|
11
|
+
* - The `route` field in `etagExtras` (folder-derived; not stored
|
|
12
|
+
* in the file but part of the etag projection chain per
|
|
13
|
+
* `design-offline.md` Q3)
|
|
14
|
+
* - Per-kind cache prefix `pages:`
|
|
15
|
+
*
|
|
16
|
+
* Everything downstream — etag check, validators, beforeSave hooks,
|
|
17
|
+
* history, write, sidecars, cache invalidate, audit, afterSave hooks,
|
|
18
|
+
* scanner — is `saveManifestCore`'s spine. This wrapper is the
|
|
19
|
+
* Page-flavored thin entry point routes (and the future CLI / plugin
|
|
20
|
+
* routes) call.
|
|
21
|
+
*
|
|
22
|
+
* Per Q3 lock: two fns + shared core. The 5 page-specific diffs
|
|
23
|
+
* (route field, locale lookup in `site.pages`, page-cache prefix,
|
|
24
|
+
* filename, route preservation in locale variants) live here in
|
|
25
|
+
* one file the reader can scan top-to-bottom.
|
|
26
|
+
*/
|
|
27
|
+
import { type SaveAuditRecorder, type SaveResult, type SavePrincipal, type SaveSourceWiring } from '../manifest-save.js';
|
|
28
|
+
import type { PageManifest } from '../types.js';
|
|
29
|
+
import type { Site } from '../site-loader.js';
|
|
30
|
+
import type { ValidatorRegistry } from '../validation/registry.js';
|
|
31
|
+
import type { ValidationScanner } from '../validation/scanner.js';
|
|
32
|
+
import type { HookFiringEmitter, HookRegistry } from '../hooks/index.js';
|
|
33
|
+
/**
|
|
34
|
+
* Inputs to `savePage`. Routes destructure their request and pass
|
|
35
|
+
* the parts the pipeline needs; CLI / plugin callers do the same
|
|
36
|
+
* without an HTTP shell. Returns one of `SaveResult`'s typed
|
|
37
|
+
* variants — caller projects to HTTP (200 / 409) or CLI exit code.
|
|
38
|
+
*/
|
|
39
|
+
export interface SavePageInput {
|
|
40
|
+
/** Page name (folder name under `pages/`). */
|
|
41
|
+
readonly name: string;
|
|
42
|
+
/** BCP-47 locale when saving a Locale Variant; undefined for default. */
|
|
43
|
+
readonly locale?: string;
|
|
44
|
+
/** Incoming manifest body (template/content/components/metadata). */
|
|
45
|
+
readonly body: Partial<PageManifest> & Record<string, unknown>;
|
|
46
|
+
/** Optional save-etag for concurrency check. */
|
|
47
|
+
readonly ifMatch?: string;
|
|
48
|
+
/** Loaded site (caller does `loadSiteFromSource(source)` once). */
|
|
49
|
+
readonly site: Site;
|
|
50
|
+
/** Source wiring (cache, history, storage, contentRoot, manifest, targetName). */
|
|
51
|
+
readonly source: SaveSourceWiring;
|
|
52
|
+
/** Authenticated principal driving this save. */
|
|
53
|
+
readonly principal: SavePrincipal;
|
|
54
|
+
/** Audit recorder bound to the request. */
|
|
55
|
+
readonly audit: SaveAuditRecorder;
|
|
56
|
+
/** Validator registry built once at admin boot. */
|
|
57
|
+
readonly validators: ValidatorRegistry;
|
|
58
|
+
/** Hook registry; absent when no hooks contributed. */
|
|
59
|
+
readonly hooks?: HookRegistry;
|
|
60
|
+
/** Audit-firing emitter for hook dispatch. */
|
|
61
|
+
readonly hookAuditEmit?: HookFiringEmitter;
|
|
62
|
+
/** Background scanner; absent when scanner not enabled. */
|
|
63
|
+
readonly scanner?: ValidationScanner;
|
|
64
|
+
/** Per-request correlation id; fresh UUID when absent. */
|
|
65
|
+
readonly requestId?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Page-name-not-found error. The route projects this to a 404; the
|
|
69
|
+
* pipeline can't compose the full save without a `before` manifest
|
|
70
|
+
* (etag check, validators, sidecar diffs all need it). Distinct
|
|
71
|
+
* from the typed `SaveResult` variants because absence-of-target is
|
|
72
|
+
* a route-level precondition, not a save-pipeline outcome.
|
|
73
|
+
*/
|
|
74
|
+
export declare class PageNotFoundError extends Error {
|
|
75
|
+
readonly name: string;
|
|
76
|
+
constructor(name: string);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Invalid locale code per `isValidLocale`. Routes project to 400.
|
|
80
|
+
*/
|
|
81
|
+
export declare class InvalidLocaleError extends Error {
|
|
82
|
+
readonly raw: string;
|
|
83
|
+
constructor(raw: string);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Save a Page Manifest. Wraps `saveManifestCore` with the Page-specific
|
|
87
|
+
* resolution + assembly. Throws `PageNotFoundError` / `InvalidLocaleError`
|
|
88
|
+
* for route-level preconditions; returns `SaveResult` for save outcomes.
|
|
89
|
+
*
|
|
90
|
+
* Caller responsibilities:
|
|
91
|
+
* - Capability check (`requireCapability('edit:pages')`) before calling
|
|
92
|
+
* - HTTP projection of `SaveResult` (200 success, 409 STALE /
|
|
93
|
+
* VALIDATION_FAILED / HOOK_CANCELLED with appropriate body shape)
|
|
94
|
+
* - Setting the `ETag` response header on success from `result.etag`
|
|
95
|
+
*/
|
|
96
|
+
export declare function savePage(input: SavePageInput): Promise<SaveResult>;
|
|
97
|
+
//# sourceMappingURL=save.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/pages/save.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAExE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9D,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACtC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAA;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IAC1C,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aACd,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAIzC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aACf,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CAIxC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAqExE"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Save — kind-specific wrapper around `saveManifestCore`.
|
|
3
|
+
*
|
|
4
|
+
* Owns the bits unique to Page Manifest writes:
|
|
5
|
+
* - Locale resolution (default vs `page.{locale}.json` variant)
|
|
6
|
+
* using `site.pages` + `site.pageLocales`
|
|
7
|
+
* - Component-ID auto-assignment via `ensureComponentIds`
|
|
8
|
+
* - Filename composition (`page.json` vs `page.{locale}.json`)
|
|
9
|
+
* - Manifest assembly (template/content/components/metadata, plus
|
|
10
|
+
* route preservation for locale variants)
|
|
11
|
+
* - The `route` field in `etagExtras` (folder-derived; not stored
|
|
12
|
+
* in the file but part of the etag projection chain per
|
|
13
|
+
* `design-offline.md` Q3)
|
|
14
|
+
* - Per-kind cache prefix `pages:`
|
|
15
|
+
*
|
|
16
|
+
* Everything downstream — etag check, validators, beforeSave hooks,
|
|
17
|
+
* history, write, sidecars, cache invalidate, audit, afterSave hooks,
|
|
18
|
+
* scanner — is `saveManifestCore`'s spine. This wrapper is the
|
|
19
|
+
* Page-flavored thin entry point routes (and the future CLI / plugin
|
|
20
|
+
* routes) call.
|
|
21
|
+
*
|
|
22
|
+
* Per Q3 lock: two fns + shared core. The 5 page-specific diffs
|
|
23
|
+
* (route field, locale lookup in `site.pages`, page-cache prefix,
|
|
24
|
+
* filename, route preservation in locale variants) live here in
|
|
25
|
+
* one file the reader can scan top-to-bottom.
|
|
26
|
+
*/
|
|
27
|
+
import { join } from 'node:path';
|
|
28
|
+
import { ensureComponentIds } from '../component-ids.js';
|
|
29
|
+
import { isValidLocale } from '../locale.js';
|
|
30
|
+
import { saveManifestCore, } from '../manifest-save.js';
|
|
31
|
+
/**
|
|
32
|
+
* Page-name-not-found error. The route projects this to a 404; the
|
|
33
|
+
* pipeline can't compose the full save without a `before` manifest
|
|
34
|
+
* (etag check, validators, sidecar diffs all need it). Distinct
|
|
35
|
+
* from the typed `SaveResult` variants because absence-of-target is
|
|
36
|
+
* a route-level precondition, not a save-pipeline outcome.
|
|
37
|
+
*/
|
|
38
|
+
export class PageNotFoundError extends Error {
|
|
39
|
+
name;
|
|
40
|
+
constructor(name) {
|
|
41
|
+
super(`Page "${name}" not found`);
|
|
42
|
+
this.name = name;
|
|
43
|
+
this.name = 'PageNotFoundError';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Invalid locale code per `isValidLocale`. Routes project to 400.
|
|
48
|
+
*/
|
|
49
|
+
export class InvalidLocaleError extends Error {
|
|
50
|
+
raw;
|
|
51
|
+
constructor(raw) {
|
|
52
|
+
super(`Invalid locale code: "${raw}"`);
|
|
53
|
+
this.raw = raw;
|
|
54
|
+
this.name = 'InvalidLocaleError';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Save a Page Manifest. Wraps `saveManifestCore` with the Page-specific
|
|
59
|
+
* resolution + assembly. Throws `PageNotFoundError` / `InvalidLocaleError`
|
|
60
|
+
* for route-level preconditions; returns `SaveResult` for save outcomes.
|
|
61
|
+
*
|
|
62
|
+
* Caller responsibilities:
|
|
63
|
+
* - Capability check (`requireCapability('edit:pages')`) before calling
|
|
64
|
+
* - HTTP projection of `SaveResult` (200 success, 409 STALE /
|
|
65
|
+
* VALIDATION_FAILED / HOOK_CANCELLED with appropriate body shape)
|
|
66
|
+
* - Setting the `ETag` response header on success from `result.etag`
|
|
67
|
+
*/
|
|
68
|
+
export async function savePage(input) {
|
|
69
|
+
// Locale validation — surface invalid codes as a typed error so
|
|
70
|
+
// routes can project to 400 without parsing the message. Mirrors
|
|
71
|
+
// pages.ts:292-294.
|
|
72
|
+
let locale;
|
|
73
|
+
if (input.locale !== undefined) {
|
|
74
|
+
if (!isValidLocale(input.locale))
|
|
75
|
+
throw new InvalidLocaleError(input.locale);
|
|
76
|
+
locale = input.locale.toLowerCase();
|
|
77
|
+
}
|
|
78
|
+
// Resolve the page to update — locale variant or default. Mirrors
|
|
79
|
+
// pages.ts:300-304. The default page MUST exist (creates go through
|
|
80
|
+
// a separate `createPage` entry point — Cut 5).
|
|
81
|
+
const defaultPage = input.site.pages.get(input.name);
|
|
82
|
+
if (!defaultPage)
|
|
83
|
+
throw new PageNotFoundError(input.name);
|
|
84
|
+
const localeVariant = locale ? input.site.pageLocales.get(input.name)?.locales.get(locale) : undefined;
|
|
85
|
+
const page = localeVariant ?? defaultPage;
|
|
86
|
+
// Component-ID auto-assignment. Existing IDs preserved; ID-less
|
|
87
|
+
// components get NanoIDs. Per `design-collaboration.md` IDs are the
|
|
88
|
+
// load-bearing anchor for inline comments — running this on every
|
|
89
|
+
// save migrates pre-existing pages without a separate migration
|
|
90
|
+
// step. Mirrors pages.ts:349.
|
|
91
|
+
const components = ensureComponentIds(input.body.components ?? page.components);
|
|
92
|
+
// Manifest assembly — body fields override page fields; route
|
|
93
|
+
// preserved for locale variants (so preview resolution works).
|
|
94
|
+
// Mirrors pages.ts:350-358.
|
|
95
|
+
const manifest = {
|
|
96
|
+
template: input.body.template ?? page.template,
|
|
97
|
+
content: input.body.content ?? page.content,
|
|
98
|
+
components,
|
|
99
|
+
};
|
|
100
|
+
if (input.body.metadata !== undefined)
|
|
101
|
+
manifest.metadata = input.body.metadata;
|
|
102
|
+
else if (page.metadata)
|
|
103
|
+
manifest.metadata = page.metadata;
|
|
104
|
+
// Locale variants store their route for preview resolution
|
|
105
|
+
if (locale && page.route)
|
|
106
|
+
manifest.route = page.route;
|
|
107
|
+
// Filename + path composition. Default → `page.json`; locale
|
|
108
|
+
// variant → `page.{locale}.json`. Both live in the default page's
|
|
109
|
+
// dir (locale variants don't get their own folder).
|
|
110
|
+
const filename = locale ? `page.${locale}.json` : 'page.json';
|
|
111
|
+
const manifestPath = join(defaultPage.dir, filename);
|
|
112
|
+
// Hand off to the spine. Page-specific extras:
|
|
113
|
+
// - cacheInvalidatePrefixes: ['pages:'] only (Page Saves don't
|
|
114
|
+
// dirty fragments)
|
|
115
|
+
// - etagExtras: { route } — folder-derived, not stored in the
|
|
116
|
+
// file but part of the etag projection chain
|
|
117
|
+
return saveManifestCore({
|
|
118
|
+
kind: 'page',
|
|
119
|
+
name: input.name,
|
|
120
|
+
locale,
|
|
121
|
+
manifest,
|
|
122
|
+
before: page,
|
|
123
|
+
manifestPath,
|
|
124
|
+
ifMatch: input.ifMatch,
|
|
125
|
+
site: input.site,
|
|
126
|
+
cacheInvalidatePrefixes: ['pages:'],
|
|
127
|
+
etagExtras: { route: page.route },
|
|
128
|
+
source: input.source,
|
|
129
|
+
audit: input.audit,
|
|
130
|
+
principal: input.principal,
|
|
131
|
+
hookAuditEmit: input.hookAuditEmit,
|
|
132
|
+
validators: input.validators,
|
|
133
|
+
hooks: input.hooks,
|
|
134
|
+
scanner: input.scanner,
|
|
135
|
+
requestId: input.requestId,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=save.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/pages/save.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function atomicWriteString(path: string, content: string): Promise<void>;
|
|
2
|
+
/**
|
|
3
|
+
* Atomic byte write — bytes-in, no string round-trip. Used by callers
|
|
4
|
+
* that have a buffer in hand (history blobs, bounded asset writes).
|
|
5
|
+
* Same write-then-rename guarantees as atomicWriteString.
|
|
6
|
+
*/
|
|
7
|
+
export declare function atomicWriteBytes(path: string, bytes: Uint8Array): Promise<void>;
|
|
8
|
+
export declare function atomicWriteStream(path: string, stream: ReadableStream<Uint8Array>): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=_atomic-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_atomic-write.d.ts","sourceRoot":"","sources":["../../src/providers/_atomic-write.ts"],"names":[],"mappings":"AA+BA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBvG"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic file write policy for the filesystem provider.
|
|
3
|
+
*
|
|
4
|
+
* Both text and binary-stream writes use a write-then-rename strategy so
|
|
5
|
+
* readers mid-write never see a partial file:
|
|
6
|
+
*
|
|
7
|
+
* - Text (`atomicWriteString`): delegates to the `write-file-atomic` package
|
|
8
|
+
* (same pattern everyone else in the Node ecosystem uses — sharp's internal
|
|
9
|
+
* config, npm's lockfile writer, etc.).
|
|
10
|
+
* - Binary stream (`atomicWriteStream`): pipes the incoming stream into a
|
|
11
|
+
* same-directory temp file, then renames onto the target. Temp is cleaned
|
|
12
|
+
* up on pipeline failure.
|
|
13
|
+
*
|
|
14
|
+
* Atomicity guarantees:
|
|
15
|
+
* - POSIX `rename(2)` is atomic within a single filesystem. Node's
|
|
16
|
+
* `fs.rename` delegates to it on POSIX systems.
|
|
17
|
+
* - Windows `MoveFileEx` with `MOVEFILE_REPLACE_EXISTING` is atomic on NTFS
|
|
18
|
+
* when source and target are on the same volume — write-file-atomic (for
|
|
19
|
+
* text) and our temp-path scheme (for streams) both place the temp file
|
|
20
|
+
* in the same directory as the target to meet this requirement.
|
|
21
|
+
*
|
|
22
|
+
* This module is filesystem-specific. Cloud storage (R2, S3, Azure) has
|
|
23
|
+
* naturally atomic single-object PUT and does not need this policy.
|
|
24
|
+
*/
|
|
25
|
+
import { createWriteStream } from 'node:fs';
|
|
26
|
+
import { mkdir, rename, rm } from 'node:fs/promises';
|
|
27
|
+
import { dirname } from 'node:path';
|
|
28
|
+
import { pipeline } from 'node:stream/promises';
|
|
29
|
+
import writeFileAtomic from 'write-file-atomic';
|
|
30
|
+
import { webReadableToNode } from './_stream-interop.js';
|
|
31
|
+
export async function atomicWriteString(path, content) {
|
|
32
|
+
// Parent directory must exist before write-file-atomic creates its tempfile
|
|
33
|
+
// next to the target. Same contract as atomicWriteStream.
|
|
34
|
+
await mkdir(dirname(path), { recursive: true });
|
|
35
|
+
await writeFileAtomic(path, content, 'utf-8');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Atomic byte write — bytes-in, no string round-trip. Used by callers
|
|
39
|
+
* that have a buffer in hand (history blobs, bounded asset writes).
|
|
40
|
+
* Same write-then-rename guarantees as atomicWriteString.
|
|
41
|
+
*/
|
|
42
|
+
export async function atomicWriteBytes(path, bytes) {
|
|
43
|
+
await mkdir(dirname(path), { recursive: true });
|
|
44
|
+
// write-file-atomic accepts Buffer | Uint8Array directly; no encoding
|
|
45
|
+
// applied when the second arg is bytes. Wrap in Buffer for consistent
|
|
46
|
+
// typing across Node versions (Buffer extends Uint8Array).
|
|
47
|
+
await writeFileAtomic(path, Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength));
|
|
48
|
+
}
|
|
49
|
+
export async function atomicWriteStream(path, stream) {
|
|
50
|
+
// Parent directory must exist before createWriteStream can create the file.
|
|
51
|
+
// (`write-file-atomic` handles this for text; for streams we do it ourselves.)
|
|
52
|
+
await mkdir(dirname(path), { recursive: true });
|
|
53
|
+
const tmpPath = `${path}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
54
|
+
const writer = createWriteStream(tmpPath);
|
|
55
|
+
try {
|
|
56
|
+
await pipeline(webReadableToNode(stream), writer);
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
// Clean up the temp file on pipeline failure; swallow rm errors
|
|
60
|
+
// (already-missing temp is fine).
|
|
61
|
+
await rm(tmpPath, { force: true }).catch(() => { });
|
|
62
|
+
throw err;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
await rename(tmpPath, path);
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
await rm(tmpPath, { force: true }).catch(() => { });
|
|
69
|
+
throw err;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=_atomic-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_atomic-write.js","sourceRoot":"","sources":["../../src/providers/_atomic-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAiB,MAAM,sBAAsB,CAAA;AAEvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IACnE,4EAA4E;IAC5E,0DAA0D;IAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAiB;IACpE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,sEAAsE;IACtE,sEAAsE;IACtE,2DAA2D;IAC3D,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAkC;IACtF,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE/C,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;IACnF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAEzC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAkB,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gEAAgE;QAChE,kCAAkC;QAClC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClD,MAAM,GAAG,CAAA;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage adapter utility — idempotent remove via probe-then-delete.
|
|
3
|
+
*
|
|
4
|
+
* Uses `exists()` to determine whether the path is present, then `rm()`
|
|
5
|
+
* only when it is. This delegates the "is it missing?" decision to the
|
|
6
|
+
* provider's own `exists()` implementation — no cross-provider error-
|
|
7
|
+
* shape matching needed.
|
|
8
|
+
*
|
|
9
|
+
* Why probe-then-delete instead of try/catch:
|
|
10
|
+
* - `exists()` is already part of the StorageProvider contract and every
|
|
11
|
+
* provider knows how to answer it correctly for its backend.
|
|
12
|
+
* - Matching raw error messages (`ENOENT`, `NoSuchKey`, etc.) across four
|
|
13
|
+
* providers is fragile and accumulates drift as providers version.
|
|
14
|
+
* - A TOCTOU race (file deleted between probe and rm) just means `rm()`
|
|
15
|
+
* throws, and the caller sees a real error — acceptable because the
|
|
16
|
+
* race is vanishingly rare in our single-writer model (the admin is the
|
|
17
|
+
* only writer on source content during v1).
|
|
18
|
+
*
|
|
19
|
+
* When the storage interface grows a typed `StorageNotFoundError`
|
|
20
|
+
* (separate PR — retrofit across all four providers + all existing `rm`
|
|
21
|
+
* callers), this helper becomes a one-liner try/catch. Until then, the
|
|
22
|
+
* probe is the honest abstraction boundary.
|
|
23
|
+
*/
|
|
24
|
+
import type { StorageProvider } from '../types.js';
|
|
25
|
+
/**
|
|
26
|
+
* `rm(path)` that swallows "already missing" — probes with `exists()`
|
|
27
|
+
* first. Returns `true` if a file was actually removed, `false` if it
|
|
28
|
+
* was already gone. Callers that care can distinguish.
|
|
29
|
+
*/
|
|
30
|
+
export declare function rmIgnoreMissing(storage: StorageProvider, path: string): Promise<boolean>;
|
|
31
|
+
//# sourceMappingURL=_rm-ignore-missing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_rm-ignore-missing.d.ts","sourceRoot":"","sources":["../../src/providers/_rm-ignore-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9F"}
|