@ccslabs/xtend 0.1.0-rc.1 → 0.1.2
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/CHANGELOG.md +2 -0
- package/README.md +4 -0
- package/catalog/component-catalog-coverage.js +2 -0
- package/catalog/epic13-package-export-lock.js +11 -1
- package/catalog/epic13-rmt-production-readiness.js +0 -1
- package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
- package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
- package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
- package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
- package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
- package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
- package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
- package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
- package/catalog/epic18-rmt-component-template-primitives.js +240 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
- package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
- package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
- package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
- package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
- package/catalog/surface-manager-controller.js +5 -1
- package/catalog/surface-manager-materialization.js +7 -1
- package/catalog/surface-manager-overlay-bridge.js +41 -6
- package/catalog/surface-manager-workbench-fixture.js +1 -1
- package/catalog/surface-type-capability-matrix.d.ts +61 -0
- package/catalog/surface-type-capability-matrix.js +183 -0
- package/catalog/type-exports-rmt.js +37 -1
- package/catalog/type-exports.js +3 -3
- package/components/icon-packs/lucide.js +4 -0
- package/components/manifest.json +2 -0
- package/components/prism-rmt.d.ts +34 -0
- package/components/prism-rmt.js +130 -0
- package/components/xcards.js +15 -0
- package/components/xcode.d.ts +36 -1
- package/components/xcode.js +215 -20
- package/components/xfooter.js +17 -0
- package/components/xheader.js +14 -0
- package/components/xhero.js +16 -1
- package/components/xlink.js +97 -14
- package/components/xmasonry.js +15 -0
- package/components/xplayer.d.ts +44 -2
- package/components/xplayer.js +242 -15
- package/components/xrouter.js +27 -2
- package/components/xsection.js +15 -0
- package/components/xsidepanel.js +10 -2
- package/components/xsurfacemanager-controller.d.ts +2 -1
- package/components/xsurfacemanager-controller.js +27 -3
- package/components/xsurfacemanager.d.ts +2 -0
- package/components/xsurfacemanager.js +20 -8
- package/components/xsurfaceoverlay-bridge.d.ts +20 -5
- package/components/xsurfaceoverlay-bridge.js +114 -18
- package/components/xsurfaceportal.d.ts +29 -0
- package/components/xsurfaceportal.js +122 -0
- package/components/xsurfaceregion.d.ts +50 -0
- package/components/xsurfaceregion.js +285 -0
- package/components/xsurfacewindow.js +2 -1
- package/components/xtooltip.js +89 -23
- package/docs/README.md +222 -298
- package/docs/changelog.md +107 -0
- package/docs/component-catalog-coverage.md +9 -9
- package/docs/component-platform.md +19 -1
- package/docs/component-ux-app-authoring.md +56 -63
- package/docs/components/xcode.md +83 -53
- package/docs/components/xsurfaceportal.md +32 -0
- package/docs/components/xsurfaceregion.md +37 -0
- package/docs/components.md +105 -69
- package/docs/de/README.md +264 -0
- package/docs/de/XTend-ADR.md +221 -0
- package/docs/de/a11y-keyboard-smokes.md +62 -0
- package/docs/de/about.md +18 -0
- package/docs/de/api.md +157 -0
- package/docs/de/best-practices.md +76 -0
- package/docs/de/changelog.md +107 -0
- package/docs/de/component-catalog-coverage.md +58 -0
- package/docs/de/component-lab.md +103 -0
- package/docs/de/component-long-tail-migration.md +41 -0
- package/docs/de/component-platform.md +177 -0
- package/docs/de/component-ux-app-authoring.md +123 -0
- package/docs/de/component-ux-authoring.md +96 -0
- package/docs/de/component-ux-gates.md +45 -0
- package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/de/components/xalert.md +81 -0
- package/docs/de/components/xbutton.md +103 -0
- package/docs/de/components/xcalendar.md +82 -0
- package/docs/de/components/xcards.md +128 -0
- package/docs/de/components/xcheckbox.md +102 -0
- package/docs/de/components/xcode.md +156 -0
- package/docs/de/components/xdialog.md +92 -0
- package/docs/de/components/xdrawer.md +84 -0
- package/docs/de/components/xfooter.md +126 -0
- package/docs/de/components/xform.md +128 -0
- package/docs/de/components/xheader.md +308 -0
- package/docs/de/components/xhero.md +142 -0
- package/docs/de/components/xicon.md +125 -0
- package/docs/de/components/xinput.md +129 -0
- package/docs/de/components/xlightbox.md +98 -0
- package/docs/de/components/xlink.md +109 -0
- package/docs/de/components/xmasonry.md +124 -0
- package/docs/de/components/xmenu.md +158 -0
- package/docs/de/components/xmodal.md +82 -0
- package/docs/de/components/xplayer.md +104 -0
- package/docs/de/components/xpopover.md +67 -0
- package/docs/de/components/xprogress.md +56 -0
- package/docs/de/components/xradio.md +103 -0
- package/docs/de/components/xrouter.md +260 -0
- package/docs/de/components/xsection.md +125 -0
- package/docs/de/components/xselect.md +105 -0
- package/docs/de/components/xsidepanel.md +30 -0
- package/docs/de/components/xspinner.md +102 -0
- package/docs/de/components/xstate.md +148 -0
- package/docs/de/components/xstatus.md +55 -0
- package/docs/de/components/xsummary.md +78 -0
- package/docs/de/components/xsurfacemanager.md +27 -0
- package/docs/de/components/xsurfacewindow.md +21 -0
- package/docs/de/components/xtabs.md +160 -0
- package/docs/de/components/xtextarea.md +98 -0
- package/docs/de/components/xtheme.md +167 -0
- package/docs/de/components/xtoast.md +62 -0
- package/docs/de/components/xtooltip.md +66 -0
- package/docs/de/components/xtype.md +82 -0
- package/docs/de/components/xutils.md +144 -0
- package/docs/de/components/xwriter.md +94 -0
- package/docs/de/components.md +153 -0
- package/docs/de/conditional-network-evidence-ci.md +38 -0
- package/docs/de/conditional-network-evidence.md +50 -0
- package/docs/de/core-migration-guide.md +110 -0
- package/docs/de/design-tokens.md +116 -0
- package/docs/de/docs-rmt-production-hardening.md +31 -0
- package/docs/de/enterprise-adoption.md +413 -0
- package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/de/epic10-platform-gates.md +62 -0
- package/docs/de/epic10-release-handoff.md +81 -0
- package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/de/epic12-rc0-handoff.md +61 -0
- package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/de/epic18-vendor-bugfixes.md +34 -0
- package/docs/de/existing-component-metadata.md +67 -0
- package/docs/de/hydration-performance-closure.md +34 -0
- package/docs/de/hydration-policies.md +71 -0
- package/docs/de/known-residual-triage.md +22 -0
- package/docs/de/manifest-import-policy.md +79 -0
- package/docs/de/manifest.md +112 -0
- package/docs/de/motion-contrast.md +67 -0
- package/docs/de/package-export-lock.md +44 -0
- package/docs/de/performance-measurements.md +106 -0
- package/docs/de/performance-regression.md +89 -0
- package/docs/de/performance.md +94 -0
- package/docs/de/previews/README.md +17 -0
- package/docs/de/prod-browser-csp-smokes.md +40 -0
- package/docs/de/public-component-types.md +79 -0
- package/docs/de/quick-start-guide.md +220 -0
- package/docs/de/rc0-adoption-guide.md +102 -0
- package/docs/de/rc0-gate-matrix.md +58 -0
- package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/de/rc1-migration-notes.md +69 -0
- package/docs/de/rc1-readiness.md +46 -0
- package/docs/de/release-owner-acceptance.md +56 -0
- package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/de/rmt-action-effect-runtime.md +81 -0
- package/docs/de/rmt-app-platform-authoring.md +54 -0
- package/docs/de/rmt-app-platform-fixture.md +46 -0
- package/docs/de/rmt-app-platform-migration-guide.md +88 -0
- package/docs/de/rmt-app-platform-tooling.md +79 -0
- package/docs/de/rmt-component-template-primitives.md +57 -0
- package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/de/rmt-dsl-authoring-polish.md +145 -0
- package/docs/de/rmt-event-routing-runtime.md +81 -0
- package/docs/de/rmt-first-demo-app.md +77 -0
- package/docs/de/rmt-first-xtend-apps.md +129 -0
- package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/de/rmt-language-server.md +234 -0
- package/docs/de/rmt-lifecycle-demo.md +24 -0
- package/docs/de/rmt-linter.md +140 -0
- package/docs/de/rmt-node-ssr-adapter.md +100 -0
- package/docs/de/rmt-php-ssr-adapter.md +120 -0
- package/docs/de/rmt-production-readiness.md +63 -0
- package/docs/de/rmt-state-selector-runtime.md +47 -0
- package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/de/rmt-tooling-release-gates.md +77 -0
- package/docs/de/rmt-vnext-authoring.md +170 -0
- package/docs/de/rmt-vnext-component-primitives.md +188 -0
- package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/de/rmt-vnext-migration-notes.md +62 -0
- package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/de/rmt-vnext-primitive-migration.md +119 -0
- package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
- package/docs/de/rmt-vnext-release-handoff.md +83 -0
- package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
- package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/de/screenreader-signals.md +56 -0
- package/docs/de/supply-chain-gates.md +100 -0
- package/docs/de/surface-manager-authoring-guide.md +94 -0
- package/docs/de/surface-manager-browser-lab.md +45 -0
- package/docs/de/surface-manager-component-lab.md +43 -0
- package/docs/de/surface-manager-controller.md +66 -0
- package/docs/de/surface-manager-layout-engines.md +32 -0
- package/docs/de/surface-manager-lazy-hydration.md +63 -0
- package/docs/de/surface-manager-migration-guide.md +122 -0
- package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/de/surface-manager-overlay-bridge.md +53 -0
- package/docs/de/surface-manager-persistence.md +30 -0
- package/docs/de/surface-manager-quality-gates.md +51 -0
- package/docs/de/surface-manager-release-handoff.md +68 -0
- package/docs/de/surface-manager-remote-policy.md +54 -0
- package/docs/de/surface-manager-rmt-authoring.md +102 -0
- package/docs/de/surface-manager-route-lifecycle.md +59 -0
- package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/de/surface-manager-side-panel-runtime.md +36 -0
- package/docs/de/surface-manager-stack-policy.md +39 -0
- package/docs/de/surface-manager-window-runtime.md +47 -0
- package/docs/de/surface-manager-workbench-fixture.md +43 -0
- package/docs/de/third-party-design-authoring.md +406 -0
- package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/de/trusted-dom-sanitizing.md +110 -0
- package/docs/de/type-exports.md +61 -0
- package/docs/de/typescript-components.md +63 -0
- package/docs/de/visual-browser-regression.md +83 -0
- package/docs/de/visual-owner-artifacts.md +46 -0
- package/docs/de/visual-snapshot-automation.md +87 -0
- package/docs/de/xtend-api-types.md +55 -0
- package/docs/de/xtend-builder-types.md +55 -0
- package/docs/de/xtend-catalog-types.md +44 -0
- package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/de/xtend-fabric.md +474 -0
- package/docs/de/xtend-loader-types.md +58 -0
- package/docs/de/xtend-loader.md +265 -0
- package/docs/de/xtend-policy-types.md +38 -0
- package/docs/de/xtend-rmt-types.md +40 -0
- package/docs/de/xtend-vendor-types.md +36 -0
- package/docs/de/xtendrmt-app-dsl.md +334 -0
- package/docs/de/xtendrmt-migration-guide.md +266 -0
- package/docs/de/xtendrmt-native-authoring.md +333 -0
- package/docs/de/xtendrmt-overview.md +109 -0
- package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/de/xtendrmt-runtime-bridge.md +155 -0
- package/docs/en/README.md +163 -0
- package/docs/en/XTend-ADR.md +221 -0
- package/docs/en/a11y-keyboard-smokes.md +68 -0
- package/docs/en/about.md +25 -0
- package/docs/en/api.md +171 -0
- package/docs/en/best-practices.md +125 -0
- package/docs/en/changelog.md +104 -0
- package/docs/en/component-catalog-coverage.md +104 -0
- package/docs/en/component-lab.md +103 -0
- package/docs/en/component-long-tail-migration.md +41 -0
- package/docs/en/component-platform.md +243 -0
- package/docs/en/component-ux-app-authoring.md +118 -0
- package/docs/en/component-ux-authoring.md +96 -0
- package/docs/en/component-ux-gates.md +45 -0
- package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
- package/docs/en/components/xalert.md +94 -0
- package/docs/en/components/xbutton.md +118 -0
- package/docs/en/components/xcalendar.md +95 -0
- package/docs/en/components/xcards.md +139 -0
- package/docs/en/components/xcheckbox.md +118 -0
- package/docs/en/components/xcode.md +153 -0
- package/docs/en/components/xdialog.md +108 -0
- package/docs/en/components/xdrawer.md +110 -0
- package/docs/en/components/xfooter.md +138 -0
- package/docs/en/components/xform.md +147 -0
- package/docs/en/components/xheader.md +308 -0
- package/docs/en/components/xhero.md +157 -0
- package/docs/en/components/xicon.md +149 -0
- package/docs/en/components/xinput.md +147 -0
- package/docs/en/components/xlightbox.md +113 -0
- package/docs/en/components/xlink.md +130 -0
- package/docs/en/components/xmasonry.md +136 -0
- package/docs/en/components/xmenu.md +185 -0
- package/docs/en/components/xmodal.md +102 -0
- package/docs/en/components/xplayer.md +114 -0
- package/docs/en/components/xpopover.md +87 -0
- package/docs/en/components/xprogress.md +73 -0
- package/docs/en/components/xradio.md +119 -0
- package/docs/en/components/xrouter.md +260 -0
- package/docs/en/components/xsection.md +136 -0
- package/docs/en/components/xselect.md +122 -0
- package/docs/en/components/xsidepanel.md +48 -0
- package/docs/en/components/xspinner.md +118 -0
- package/docs/en/components/xstate.md +163 -0
- package/docs/en/components/xstatus.md +71 -0
- package/docs/en/components/xsummary.md +90 -0
- package/docs/en/components/xsurfacemanager.md +42 -0
- package/docs/en/components/xsurfacewindow.md +31 -0
- package/docs/en/components/xtabs.md +187 -0
- package/docs/en/components/xtextarea.md +115 -0
- package/docs/en/components/xtheme.md +203 -0
- package/docs/en/components/xtoast.md +78 -0
- package/docs/en/components/xtooltip.md +85 -0
- package/docs/en/components/xtype.md +91 -0
- package/docs/en/components/xutils.md +161 -0
- package/docs/en/components/xwriter.md +106 -0
- package/docs/en/components.md +151 -0
- package/docs/en/conditional-network-evidence-ci.md +38 -0
- package/docs/en/conditional-network-evidence.md +50 -0
- package/docs/en/core-migration-guide.md +110 -0
- package/docs/en/design-tokens.md +137 -0
- package/docs/en/docs-rmt-production-hardening.md +31 -0
- package/docs/en/enterprise-adoption.md +413 -0
- package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/en/epic10-platform-gates.md +62 -0
- package/docs/en/epic10-release-handoff.md +81 -0
- package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/en/epic12-rc0-handoff.md +61 -0
- package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
- package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
- package/docs/en/epic18-vendor-bugfixes.md +29 -0
- package/docs/en/existing-component-metadata.md +67 -0
- package/docs/en/hydration-performance-closure.md +34 -0
- package/docs/en/hydration-policies.md +75 -0
- package/docs/en/known-residual-triage.md +22 -0
- package/docs/en/manifest-import-policy.md +81 -0
- package/docs/en/manifest.md +135 -0
- package/docs/en/motion-contrast.md +67 -0
- package/docs/en/package-export-lock.md +44 -0
- package/docs/en/performance-measurements.md +106 -0
- package/docs/en/performance-regression.md +89 -0
- package/docs/en/performance.md +132 -0
- package/docs/en/previews/README.md +17 -0
- package/docs/en/prod-browser-csp-smokes.md +40 -0
- package/docs/en/public-component-types.md +79 -0
- package/docs/en/quick-start-guide.md +189 -0
- package/docs/en/rc0-adoption-guide.md +102 -0
- package/docs/en/rc0-gate-matrix.md +58 -0
- package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/en/rc1-migration-notes.md +69 -0
- package/docs/en/rc1-readiness.md +46 -0
- package/docs/en/release-owner-acceptance.md +56 -0
- package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/en/rmt-action-effect-runtime.md +101 -0
- package/docs/en/rmt-app-platform-authoring.md +47 -0
- package/docs/en/rmt-app-platform-fixture.md +35 -0
- package/docs/en/rmt-app-platform-migration-guide.md +75 -0
- package/docs/en/rmt-app-platform-tooling.md +58 -0
- package/docs/en/rmt-component-template-primitives.md +49 -0
- package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
- package/docs/en/rmt-dsl-authoring-polish.md +143 -0
- package/docs/en/rmt-event-routing-runtime.md +98 -0
- package/docs/en/rmt-first-demo-app.md +87 -0
- package/docs/en/rmt-first-xtend-apps.md +127 -0
- package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
- package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
- package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
- package/docs/en/rmt-language-server.md +243 -0
- package/docs/en/rmt-lifecycle-demo.md +23 -0
- package/docs/en/rmt-linter.md +146 -0
- package/docs/en/rmt-node-ssr-adapter.md +99 -0
- package/docs/en/rmt-php-ssr-adapter.md +118 -0
- package/docs/en/rmt-production-readiness.md +63 -0
- package/docs/en/rmt-state-selector-runtime.md +34 -0
- package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
- package/docs/en/rmt-tooling-release-gates.md +77 -0
- package/docs/en/rmt-vnext-authoring.md +102 -0
- package/docs/en/rmt-vnext-component-primitives.md +185 -0
- package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
- package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
- package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
- package/docs/en/rmt-vnext-migration-notes.md +62 -0
- package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
- package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
- package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
- package/docs/en/rmt-vnext-primitive-migration.md +93 -0
- package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
- package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
- package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
- package/docs/en/rmt-vnext-release-handoff.md +83 -0
- package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
- package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
- package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
- package/docs/en/screenreader-signals.md +56 -0
- package/docs/en/supply-chain-gates.md +106 -0
- package/docs/en/surface-manager-authoring-guide.md +94 -0
- package/docs/en/surface-manager-browser-lab.md +45 -0
- package/docs/en/surface-manager-component-lab.md +43 -0
- package/docs/en/surface-manager-controller.md +66 -0
- package/docs/en/surface-manager-layout-engines.md +32 -0
- package/docs/en/surface-manager-lazy-hydration.md +63 -0
- package/docs/en/surface-manager-migration-guide.md +113 -0
- package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/en/surface-manager-overlay-bridge.md +53 -0
- package/docs/en/surface-manager-persistence.md +30 -0
- package/docs/en/surface-manager-quality-gates.md +51 -0
- package/docs/en/surface-manager-release-handoff.md +68 -0
- package/docs/en/surface-manager-remote-policy.md +54 -0
- package/docs/en/surface-manager-rmt-authoring.md +89 -0
- package/docs/en/surface-manager-route-lifecycle.md +59 -0
- package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/en/surface-manager-side-panel-runtime.md +36 -0
- package/docs/en/surface-manager-stack-policy.md +39 -0
- package/docs/en/surface-manager-window-runtime.md +47 -0
- package/docs/en/surface-manager-workbench-fixture.md +43 -0
- package/docs/en/third-party-design-authoring.md +406 -0
- package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/en/trusted-dom-sanitizing.md +124 -0
- package/docs/en/type-exports.md +61 -0
- package/docs/en/typescript-components.md +63 -0
- package/docs/en/visual-browser-regression.md +83 -0
- package/docs/en/visual-owner-artifacts.md +46 -0
- package/docs/en/visual-snapshot-automation.md +87 -0
- package/docs/en/xtend-api-types.md +55 -0
- package/docs/en/xtend-builder-types.md +55 -0
- package/docs/en/xtend-catalog-types.md +44 -0
- package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/en/xtend-fabric.md +474 -0
- package/docs/en/xtend-loader-types.md +58 -0
- package/docs/en/xtend-loader.md +265 -0
- package/docs/en/xtend-policy-types.md +38 -0
- package/docs/en/xtend-rmt-types.md +40 -0
- package/docs/en/xtend-vendor-types.md +36 -0
- package/docs/en/xtendrmt-app-dsl.md +331 -0
- package/docs/en/xtendrmt-migration-guide.md +256 -0
- package/docs/en/xtendrmt-native-authoring.md +336 -0
- package/docs/en/xtendrmt-overview.md +63 -0
- package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/en/xtendrmt-runtime-bridge.md +155 -0
- package/docs/enterprise-adoption.md +4 -2
- package/docs/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/epic18-vendor-bugfixes.md +34 -0
- package/docs/index.php +1056 -109
- package/docs/manifest.md +8 -2
- package/docs/menu.json +986 -133
- package/docs/package-export-lock.md +2 -2
- package/docs/public-component-types.md +2 -2
- package/docs/quick-start-guide.md +126 -58
- package/docs/rmt-action-effect-runtime.md +101 -0
- package/docs/rmt-app-platform-authoring.md +54 -0
- package/docs/rmt-app-platform-fixture.md +46 -0
- package/docs/rmt-app-platform-migration-guide.md +88 -0
- package/docs/rmt-app-platform-tooling.md +79 -0
- package/docs/rmt-component-template-primitives.md +57 -0
- package/docs/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/rmt-dsl-authoring-polish.md +67 -44
- package/docs/rmt-event-routing-runtime.md +98 -0
- package/docs/rmt-first-demo-app.md +2 -2
- package/docs/rmt-first-xtend-apps.md +70 -46
- package/docs/rmt-language-server.md +61 -4
- package/docs/rmt-lifecycle-demo.md +1 -2
- package/docs/rmt-node-ssr-adapter.md +144 -0
- package/docs/rmt-php-ssr-adapter.md +158 -0
- package/docs/rmt-state-selector-runtime.md +47 -0
- package/docs/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/rmt-vnext-authoring.md +128 -18
- package/docs/rmt-vnext-component-primitives.md +188 -0
- package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/rmt-vnext-primitive-migration.md +119 -0
- package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
- package/docs/rmt-vnext-release-handoff.md +14 -0
- package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
- package/docs/surface-manager-migration-guide.md +34 -6
- package/docs/surface-manager-overlay-bridge.md +9 -4
- package/docs/surface-manager-rmt-authoring.md +50 -34
- package/docs/surface-manager-workbench-fixture.md +1 -2
- package/docs/third-party-design-authoring.md +1 -1
- package/docs/type-exports.md +3 -3
- package/docs/utils/pageloader.js +811 -62
- package/docs/visual-browser-regression.md +1 -1
- package/docs/xtend-rmt-types.md +3 -2
- package/docs/xtendrmt-app-dsl.md +187 -122
- package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
- package/docs/xtendrmt-migration-guide.md +48 -17
- package/docs/xtendrmt-native-authoring.md +213 -217
- package/docs/xtendrmt-overview.md +81 -61
- package/docs/xtendrmt-parsedown-scheduling.md +23 -8
- package/fabric/package.json +1 -1
- package/package.json +684 -21
- package/tools/package.json +5 -1
- package/tools/rmt-editor/vscode/README.md +72 -5
- package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
- package/tools/rmt-editor/vscode/extension.d.ts +33 -0
- package/tools/rmt-editor/vscode/extension.js +1816 -7
- package/tools/rmt-editor/vscode/language-configuration.json +2 -1
- package/tools/rmt-editor/vscode/package.json +193 -2
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
- package/tools/rmt-editor/vscode/templates/launch.json +70 -0
- package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
- package/tools/rmt-language/app-platform-tooling.js +677 -0
- package/tools/rmt-language/completions.d.ts +5 -0
- package/tools/rmt-language/completions.js +185 -3
- package/tools/rmt-language/diagnostics.js +54 -0
- package/tools/rmt-language/hover.js +36 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
- package/tools/rmt-language/rules/app-platform-policy.js +39 -0
- package/tools/rmt-language/rules/index.js +5 -1
- package/tools/rmt-language/semantic-graph.d.ts +6 -0
- package/tools/rmt-language/semantic-graph.js +928 -0
- package/tools/rmt-language/snippets/index.js +44 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
- package/tools/rmt-language/vnext-compatibility.js +642 -0
- package/tools/rmt-language/vnext-compiler.d.ts +5 -0
- package/tools/rmt-language/vnext-compiler.js +863 -17
- package/tools/rmt-language/vnext-parser.js +725 -9
- package/tools/rmt-language/vnext-release.d.ts +1 -0
- package/tools/rmt-language/vnext-release.js +20 -0
- package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
- package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
- package/tools/rmt-language/vnext-surfaces.js +111 -52
- package/tools/rmt-language/vnext-tooling.d.ts +19 -1
- package/tools/rmt-language/vnext-tooling.js +1247 -5
- package/tools/rmt-language-server/protocol.js +3 -0
- package/tools/rmt-language-server/server.d.ts +2 -0
- package/tools/rmt-language-server/server.js +176 -22
- package/tools/rmt-linter/cli.d.ts +2 -0
- package/tools/rmt-linter/cli.js +62 -0
- package/xtend-builder/generators/registry.js +11 -0
- package/xtend-builder/generators/rmt-app-platform.js +239 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
- package/xtend-builder/lib/cli.js +38 -0
- package/xtend-builder/package.json +3 -3
- package/xtend-builder/scaffold.config.js +29 -2
- package/xtend.css +49 -2
- package/xtendrmt/package.json +49 -1
- package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
- package/xtendrmt/rmt-action-effect-runtime.js +494 -0
- package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
- package/xtendrmt/rmt-component-capability-registry.js +636 -0
- package/xtendrmt/rmt-core.d.ts +6 -0
- package/xtendrmt/rmt-core.esm.js +32 -6
- package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
- package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
- package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
- package/xtendrmt/rmt-event-routing-runtime.js +666 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
- package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
- package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
- package/xtendrmt/rmt-native-shell-runtime.js +309 -0
- package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
- package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
- package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
- package/xtendrmt/rmt-runtime.browser.js +32 -6
- package/xtendrmt/rmt-runtime.esm.js +32 -6
- package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
- package/xtendrmt/rmt-state-selector-runtime.js +866 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
- package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# RMT Language Server und Editor Setup
|
|
2
|
+
|
|
3
|
+
- Status: produktiv vorbereitet ab `WP-E14-14`
|
|
4
|
+
- Contract: `xtend.rmt.editor-packaging.v1`
|
|
5
|
+
- Language Server: `xtend.rmt.language-server.v1`
|
|
6
|
+
- Snippet Catalog: `xtend.rmt.snippet-catalog.v1`
|
|
7
|
+
- Epic 14 Handoff: `xtend.epic14.lsp-handoff.v1`
|
|
8
|
+
- Primaerer Dateityp: `.rmt`
|
|
9
|
+
- Lokale Gates:
|
|
10
|
+
- `node scripts/run_xtend_tests.js rmt-editor-packaging --json`
|
|
11
|
+
- `node scripts/run_xtend_tests.js rmt-tooling-docs --json`
|
|
12
|
+
- `node scripts/run_xtend_tests.js epic14-lsp-handoff --json`
|
|
13
|
+
|
|
14
|
+
## Ziel
|
|
15
|
+
|
|
16
|
+
Das RMT Tooling ist editor-agnostisch. Die fachliche Source of Truth liegt in:
|
|
17
|
+
|
|
18
|
+
- `tools/rmt-language`
|
|
19
|
+
- `tools/rmt-linter`
|
|
20
|
+
- `tools/rmt-language-server`
|
|
21
|
+
|
|
22
|
+
Editor-Packages duerfen Snippets, Syntax-Highlighting und Startbefehle fuer den LSP bereitstellen. Sie duerfen keine zweite RMT-Semantik implementieren.
|
|
23
|
+
|
|
24
|
+
## Language Server starten
|
|
25
|
+
|
|
26
|
+
Der Server spricht stdio JSON-RPC:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node tools/rmt-language-server/server.js
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Der Server bietet aktuell:
|
|
33
|
+
|
|
34
|
+
- Diagnostics
|
|
35
|
+
- Completion
|
|
36
|
+
- Hover
|
|
37
|
+
- Document Symbols
|
|
38
|
+
- Definition
|
|
39
|
+
- Code Actions
|
|
40
|
+
|
|
41
|
+
Der LSP nutzt denselben Diagnosekern wie `xt rmt lint`. Editor-Integrationen sollen deshalb keine eigenen RMT-Regeln pflegen.
|
|
42
|
+
|
|
43
|
+
## LSP Capability Matrix
|
|
44
|
+
|
|
45
|
+
| Capability | Protokoll / Oberflaeche | Status | Source of Truth | Gate |
|
|
46
|
+
|------------|--------------------------|--------|-----------------|------|
|
|
47
|
+
| Diagnostics | `textDocument/publishDiagnostics` | implemented | `xtend.rmt.linter.rule-engine.v1` | `rmt-linter-rules` |
|
|
48
|
+
| Completion | `textDocument/completion` | implemented | `xtend.rmt.completion-provider.v1` | `rmt-completions` |
|
|
49
|
+
| Hover | `textDocument/hover` | implemented | `xtend.rmt.hover-provider.v1` | `rmt-navigation` |
|
|
50
|
+
| Document Symbols | `textDocument/documentSymbol` | implemented | `xtend.rmt.document-symbols-provider.v1` | `rmt-navigation` |
|
|
51
|
+
| Definition | `textDocument/definition` | implemented | `xtend.rmt.definition-provider.v1` | `rmt-navigation` |
|
|
52
|
+
| Code Actions | `textDocument/codeAction` | implemented | `xtend.rmt.code-action-provider.v1` | `rmt-code-actions` |
|
|
53
|
+
| Agent Repair Report | `xt rmt lint --agent` | implemented | `xtend.rmt.ai-agent-repair-report.v1` | `rmt-agent-report` |
|
|
54
|
+
| Snippets | Editor Packaging | implemented | `xtend.rmt.snippet-catalog.v1` | `rmt-editor-packaging` |
|
|
55
|
+
| Workspace Symbols | `workspace/symbol` | planned | Project Index Follow-up | future |
|
|
56
|
+
| Rename | `textDocument/rename` | planned | Safe Refactor Follow-up | future |
|
|
57
|
+
| References | `textDocument/references` | planned | Project Index Follow-up | future |
|
|
58
|
+
| Semantic Tokens | `textDocument/semanticTokens` | planned | Syntax Highlighting Follow-up | future |
|
|
59
|
+
| Formatting | `textDocument/formatting` | planned | Formatter Follow-up | future |
|
|
60
|
+
|
|
61
|
+
## Known Limitations
|
|
62
|
+
|
|
63
|
+
- RMT ist im aktuellen Authoring-MVP weiter JSON-basiert. Eine freundlichere DSL-Syntax ist Folgearbeit.
|
|
64
|
+
- `textDocument/formatting` ist geplant, aber nicht produktiv freigegeben.
|
|
65
|
+
- `workspace/symbol`, `textDocument/rename` und `textDocument/references` brauchen einen projektweiten Index und bleiben bewusst ausserhalb des MVP.
|
|
66
|
+
- Marketplace-Packaging fuer einzelne Editoren ist nicht Teil von Epic 14. Die generischen LSP-Setups bleiben der aktuelle Integrationspfad.
|
|
67
|
+
- Der Language Server fuehrt keine XTend-Komponenten aus, startet keinen XRouter und materialisiert kein DOM.
|
|
68
|
+
- `.rmt.json` bleibt lesbar, wird aber als Fallback behandelt und soll in neuen Projekten nicht der Normalpfad sein.
|
|
69
|
+
|
|
70
|
+
## Snippets
|
|
71
|
+
|
|
72
|
+
Der editor-agnostische Snippet-Katalog liegt in:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
tools/rmt-language/snippets/index.js
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Das VS-Code-kompatible Exportformat liegt in:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
tools/rmt-language/snippets/rmt.code-snippets
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Alle Snippets erzeugen native `.rmt` Authoring-Strukturen. `.rmt.json` bleibt nur ein Parser-/Linter-Fallback und soll in neuen Snippets nicht genutzt werden.
|
|
85
|
+
|
|
86
|
+
Wichtige Prefixes:
|
|
87
|
+
|
|
88
|
+
| Prefix | Zweck |
|
|
89
|
+
|--------|-------|
|
|
90
|
+
| `rmt-app` | minimale native App-Shell |
|
|
91
|
+
| `rmt-component` | XTend Component Record |
|
|
92
|
+
| `rmt-route` | XRouter Route Record |
|
|
93
|
+
| `rmt-schedule` | Schedule Policy |
|
|
94
|
+
| `rmt-template-dom` | sicheres `dom_descriptor` Template |
|
|
95
|
+
| `rmt-template-html` | `html_fragment` mit Trusted-DOM-Boundary |
|
|
96
|
+
|
|
97
|
+
## VS Code
|
|
98
|
+
|
|
99
|
+
Die VS-Code-Integration liegt in:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
tools/rmt-editor/vscode
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Es registriert:
|
|
106
|
+
|
|
107
|
+
- Language ID `rmt`
|
|
108
|
+
- Dateiendung `.rmt`
|
|
109
|
+
- RMT-vNext-aware TextMate-Grammatik mit Legacy-JSON-Fallback
|
|
110
|
+
- RMT Snippets
|
|
111
|
+
- `vscode-languageclient` fuer den lokalen RMT Language Server
|
|
112
|
+
- `$xtend-rmt-lint` Problem Matcher
|
|
113
|
+
- XTend CLI Tasks und Debug-Console-Launch-Konfigurationen
|
|
114
|
+
- Command `XTendRMT: Show Language Server Command`
|
|
115
|
+
- Command `XTendRMT: Start/Restart Language Server`
|
|
116
|
+
- Command `XTendRMT: Run Active RMT Lint`
|
|
117
|
+
- Command `XTendRMT: Run Workspace RMT Lint`
|
|
118
|
+
- Command `XTendRMT: Run RMT Build Check`
|
|
119
|
+
- Command `XTendRMT: Run Scaffold Verify`
|
|
120
|
+
- Command `XTendRMT: Debug Language Server`
|
|
121
|
+
- Command `XTendRMT: Debug Active RMT Lint`
|
|
122
|
+
- Command `XTendRMT: Debug Active RMT Build`
|
|
123
|
+
- Command `XTendRMT: Open XTend CLI Terminal`
|
|
124
|
+
- Command `XTendRMT: Run XTend CLI Command...`
|
|
125
|
+
- Command `XTendRMT: Run Agent Repair Report`
|
|
126
|
+
- Command `XTendRMT: Run RMT Build Write`
|
|
127
|
+
- Command `XTendRMT: Open VS Code Tasks Template`
|
|
128
|
+
- Command `XTendRMT: Open VS Code Launch Template`
|
|
129
|
+
- Command `XTendRMT: Show vNext Primitive Apply Experience`
|
|
130
|
+
- Command `XTendRMT: Show vNext Primitive Code Action Preview`
|
|
131
|
+
- Command `XTendRMT: Show vNext Primitive Command Handoff`
|
|
132
|
+
|
|
133
|
+
Der gepackte LanguageClient startet den Server per stdio:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"command": "node",
|
|
138
|
+
"args": ["tools/rmt-language-server/server.js"]
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Terminal-Tasks nutzen die XTend CLI als Orchestrator und pflegen keine eigene
|
|
143
|
+
RMT-Semantik. Die Extension sucht die CLI im Workspace zuerst unter
|
|
144
|
+
`xtend-builder/scaffold.js`, danach unter `node_modules/.bin/xt` und danach
|
|
145
|
+
unter `node_modules/@ccslabs/xtend-cli/scaffold.js`. Falls ein Projekt anders
|
|
146
|
+
aufgebaut ist, kann `xtendRmt.xtendCli.path` explizit auf ein Executable oder
|
|
147
|
+
eine `scaffold.js` zeigen. Die versionierte Vorlage liegt unter:
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
tools/rmt-editor/vscode/templates/tasks.json
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Der Problem Matcher konsumiert die stabile Linter-Ausgabe:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
xt rmt lint app.rmt --format problem-matcher --fail-on warning
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Die Launch-Vorlage fuer die Debug Console liegt unter:
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
tools/rmt-editor/vscode/templates/launch.json
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Sie enthaelt Debug-Starts fuer Language Server, aktiven RMT Lint, aktiven RMT
|
|
166
|
+
Build und Scaffold Verify. Das ist Tool-Debugging fuer Authoring-Workflows; ein
|
|
167
|
+
eigener Debug Adapter fuer ausgefuehrte RMT-UI-Breakpoints bleibt bewusst
|
|
168
|
+
ausserhalb dieses Slices.
|
|
169
|
+
|
|
170
|
+
Die vNext-Primitive-Commands lesen CodeAction-Reports oder einzelne Actions
|
|
171
|
+
aus der RMT-vNext-Tooling-Schicht und zeigen die drei Apply-Pfade getrennt im
|
|
172
|
+
Output Channel:
|
|
173
|
+
|
|
174
|
+
- sichere einzelne Quick-Fixes;
|
|
175
|
+
- `source.fixAll.rmt.vnext.primitives` fuer alle sicheren WorkspaceEdits;
|
|
176
|
+
- manuelle `xtend.rmt.vnext.extractKernelImport` Handoffs fuer Kernel-/Fabric-
|
|
177
|
+
Boundary-Verletzungen ohne automatischen WorkspaceEdit.
|
|
178
|
+
|
|
179
|
+
## JetBrains
|
|
180
|
+
|
|
181
|
+
JetBrains-IDEs koennen ueber einen generischen LSP-Client oder ein lokales File-Watcher-/External-Tool-Setup angebunden werden.
|
|
182
|
+
|
|
183
|
+
Empfohlene Werte:
|
|
184
|
+
|
|
185
|
+
- Language ID: `rmt`
|
|
186
|
+
- Extension: `.rmt`
|
|
187
|
+
- Command: `node`
|
|
188
|
+
- Args: `tools/rmt-language-server/server.js`
|
|
189
|
+
|
|
190
|
+
## Neovim
|
|
191
|
+
|
|
192
|
+
Minimaler `nvim-lspconfig`-kompatibler Startpunkt:
|
|
193
|
+
|
|
194
|
+
```lua
|
|
195
|
+
local lspconfig = require('lspconfig')
|
|
196
|
+
local configs = require('lspconfig.configs')
|
|
197
|
+
|
|
198
|
+
configs.xtendrmt = {
|
|
199
|
+
default_config = {
|
|
200
|
+
cmd = { 'node', 'tools/rmt-language-server/server.js' },
|
|
201
|
+
filetypes = { 'rmt' },
|
|
202
|
+
root_dir = lspconfig.util.root_pattern('package.json', '.git')
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
lspconfig.xtendrmt.setup({})
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Helix
|
|
210
|
+
|
|
211
|
+
Beispiel fuer `languages.toml`:
|
|
212
|
+
|
|
213
|
+
```toml
|
|
214
|
+
[[language]]
|
|
215
|
+
name = "rmt"
|
|
216
|
+
scope = "source.rmt"
|
|
217
|
+
file-types = ["rmt"]
|
|
218
|
+
language-servers = ["xtendrmt"]
|
|
219
|
+
|
|
220
|
+
[language-server.xtendrmt]
|
|
221
|
+
command = "node"
|
|
222
|
+
args = ["tools/rmt-language-server/server.js"]
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Boundary
|
|
226
|
+
|
|
227
|
+
Das Editor-Packaging darf keine XTend-Komponenten ausfuehren, keinen XRouter starten und keine DOM-Seiteneffekte erzeugen. Es startet nur den LSP und stellt statische Snippets bereit.
|
|
228
|
+
|
|
229
|
+
## Verwandte Guides
|
|
230
|
+
|
|
231
|
+
- [RMT Linter und AI-Agent Repair Report](./rmt-linter.md)
|
|
232
|
+
- [XTendRMT Native Authoring Guide](./xtendrmt-native-authoring.md)
|
|
233
|
+
- [Quick Start Guide](./quick-start-guide.md)
|
|
234
|
+
- [Epic 14 Abschluss und LSP Handoff](../development/XTendRMT-Epic14-Abschluss-und-LSP-Handoff.md)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# RMT Lifecycle Demo
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.rmt.lifecycle-demo.v1`
|
|
4
|
+
|
|
5
|
+
Die Lifecycle-Demo zeigt den kompletten Pfad von RMT Authoring bis zur
|
|
6
|
+
oeffnbaren XTend App:
|
|
7
|
+
|
|
8
|
+
1. `xtendrmt/rmt-lifecycle-demo.rmt` ist das RMT vNext Template.
|
|
9
|
+
2. `node xtend-builder/scaffold.js rmt-lifecycle-demo --write --json` kompiliert
|
|
10
|
+
das Template in `xtendrmt/rmt-lifecycle-demo.core.json`.
|
|
11
|
+
3. Derselbe Scaffold-Build schreibt die generierten Artefakte:
|
|
12
|
+
`components/x-rmt-lifecycle-demo.js`,
|
|
13
|
+
`xtendrmt/rmt-lifecycle-demo.app.js`,
|
|
14
|
+
`tests/browser/fixtures/rmt-lifecycle-demo-smoke.html`.
|
|
15
|
+
4. Die App kann ueber den lokalen HTTP-Server geoeffnet werden:
|
|
16
|
+
`node scripts/serve_xtend_dev.js --default tests/browser/fixtures/rmt-lifecycle-demo-smoke.html`.
|
|
17
|
+
|
|
18
|
+
Der Build-Report liegt in `xtendrmt/rmt-lifecycle-demo.scaffold.json`. Er
|
|
19
|
+
haelt Source, Core Output, generierte XTend App, Browser-Smoke und den lokalen
|
|
20
|
+
Gate `node scripts/run_xtend_tests.js rmt-lifecycle-demo --json` zusammen.
|
|
21
|
+
|
|
22
|
+
Die generierten Dateien sind absichtlich mit `@generated by XTend Scaffold RMT
|
|
23
|
+
lifecycle build` markiert. Aenderungen sollen am vNext Template oder am
|
|
24
|
+
Scaffold-Generator erfolgen, nicht direkt an den generierten Artefakten.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# RMT Linter und AI-Agent Repair Report
|
|
2
|
+
|
|
3
|
+
- Status: produktiv vorbereitet ab `WP-E14-14`
|
|
4
|
+
- Contract: `xtend.rmt.tooling-docs.v1`
|
|
5
|
+
- Linter Report: `xtend.rmt.linter.report.v1`
|
|
6
|
+
- Agent Report: `xtend.rmt.ai-agent-repair-report.v1`
|
|
7
|
+
- Primaerer Dateityp: `.rmt`
|
|
8
|
+
- Lokaler Gate: `node scripts/run_xtend_tests.js rmt-tooling-docs --json`
|
|
9
|
+
|
|
10
|
+
## Zweck
|
|
11
|
+
|
|
12
|
+
Der RMT Linter macht native `.rmt` Dokumente lokal, in CI und fuer AI-Agenten pruefbar. Er nutzt dieselbe Sprachebene wie der RMT Language Server:
|
|
13
|
+
|
|
14
|
+
- Source Model
|
|
15
|
+
- Parser und Format Adapter
|
|
16
|
+
- Semantic Graph
|
|
17
|
+
- Linter Rules
|
|
18
|
+
- Code Actions
|
|
19
|
+
- Agent Repair Report
|
|
20
|
+
|
|
21
|
+
Der Linter fuehrt keine XTend-Komponenten aus, startet keinen XRouter und materialisiert kein DOM. Er analysiert RMT als Sprache.
|
|
22
|
+
|
|
23
|
+
## Standardbefehl
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
xt rmt lint app.rmt
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Der Langpfad bleibt ebenfalls gueltig:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
xtend rmt lint app.rmt
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Directory- und einfache Glob-Targets sind moeglich:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
xt rmt lint tests/rmt-language/fixtures
|
|
39
|
+
xt rmt lint "tests/rmt-language/fixtures/*.rmt" --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## JSON Report
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
xt rmt lint app.rmt --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Der Report ist fuer CI und andere Tools gedacht:
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"schema": "xtend.rmt.linter.report.v1",
|
|
53
|
+
"status": "failed",
|
|
54
|
+
"files": 1,
|
|
55
|
+
"diagnostics": []
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Fail Policy
|
|
60
|
+
|
|
61
|
+
Standard ist `--fail-on error`. Warnungen brechen den lokalen Lauf dann nicht ab.
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
xt rmt lint app.rmt --fail-on warning
|
|
65
|
+
xt rmt lint app.rmt --fail-on info
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Damit kann CI strenger laufen als lokale Authoring-Loops.
|
|
69
|
+
|
|
70
|
+
## Agent Report
|
|
71
|
+
|
|
72
|
+
AI-Agenten nutzen den Repair Report:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
xt rmt lint app.rmt --agent
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`--agent` impliziert JSON und liefert:
|
|
79
|
+
|
|
80
|
+
- `diagnostics`
|
|
81
|
+
- `repairPlan`
|
|
82
|
+
- `fixOrder`
|
|
83
|
+
- `noOps`
|
|
84
|
+
- `confidence`
|
|
85
|
+
- `impact`
|
|
86
|
+
- `relatedDiagnostics`
|
|
87
|
+
|
|
88
|
+
Nicht sicher automatisierbare Diagnosen werden bewusst als No-Op erklaert. Beispiele sind Syntax-Recovery, Inline-Script-Entfernung oder Component-Stubs, die Authoring-Kontext brauchen.
|
|
89
|
+
|
|
90
|
+
## Diagnosecodes
|
|
91
|
+
|
|
92
|
+
Wichtige Codes:
|
|
93
|
+
|
|
94
|
+
| Code | Bedeutung |
|
|
95
|
+
|------|-----------|
|
|
96
|
+
| `rmt.syntax.invalid-json` | Das Dokument ist syntaktisch nicht parsebar |
|
|
97
|
+
| `rmt.document.extension.fallback-used` | `.rmt.json` oder `.json` wird nur als Fallback genutzt |
|
|
98
|
+
| `rmt.document.kind.missing` | `kind: "rmt_document"` fehlt |
|
|
99
|
+
| `rmt.adapter.unknown` | Adapter-Referenz ist nicht definiert |
|
|
100
|
+
| `rmt.ref.component.unresolved` | Component-Referenz ist nicht aufloesbar |
|
|
101
|
+
| `rmt.ref.template.unresolved` | Template-Referenz ist nicht aufloesbar |
|
|
102
|
+
| `rmt.ref.schedule.unresolved` | Schedule-Referenz ist nicht aufloesbar |
|
|
103
|
+
| `rmt.ref.route.duplicate-path` | Route Path ist mehrfach definiert |
|
|
104
|
+
| `rmt.fabric.lane.unknown` | Fabric/RMT Lane ist nicht bekannt |
|
|
105
|
+
| `rmt.template.inline-script.refused` | Inline Script verletzt den Trusted-DOM-/Kernel-Boundary |
|
|
106
|
+
|
|
107
|
+
## Quick Fixes
|
|
108
|
+
|
|
109
|
+
Sichere Reparaturen kommen aus `xtend.rmt.code-action-provider.v1`.
|
|
110
|
+
|
|
111
|
+
Der MVP unterstuetzt:
|
|
112
|
+
|
|
113
|
+
- fehlende Schedules anlegen
|
|
114
|
+
- fehlende Templates als `dom_descriptor` Stub anlegen
|
|
115
|
+
- unbekannte Fabric Lanes auf `visible` setzen
|
|
116
|
+
- unbekannte Hydration Policies auf `runtime_render` setzen
|
|
117
|
+
- fehlende Route `documentTitle` ergaenzen
|
|
118
|
+
- fehlende Schedule `endpointName` ergaenzen
|
|
119
|
+
- `.rmt.json` per Command nach `.rmt` umbenennen
|
|
120
|
+
|
|
121
|
+
## Regression Gate
|
|
122
|
+
|
|
123
|
+
Die Tooling-Matrix liegt in:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
node scripts/run_xtend_tests.js rmt-language-regression --json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Dieser Gate prueft valide, defekte, Legacy- und groessere RMT-Dokumente ueber Parser, Linter, CLI, LSP und Agent Report hinweg.
|
|
130
|
+
|
|
131
|
+
## Editor Workflow
|
|
132
|
+
|
|
133
|
+
Fuer IDEs siehe [RMT Language Server und Editor Setup](./rmt-language-server.md).
|
|
134
|
+
|
|
135
|
+
Empfohlener Ablauf:
|
|
136
|
+
|
|
137
|
+
1. Neues Dokument mit `rmt-app` Snippet erzeugen.
|
|
138
|
+
2. In der IDE Diagnostics und Completion nutzen.
|
|
139
|
+
3. Lokal mit `xt rmt lint app.rmt` pruefen.
|
|
140
|
+
4. Fuer Agenten oder CI `xt rmt lint app.rmt --agent` nutzen.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# RMT Node SSR Adapter
|
|
2
|
+
|
|
3
|
+
Der Node SSR Adapter ist die leichtgewichtige serverseitige API fuer XTendRMT.
|
|
4
|
+
Er erzeugt Light-DOM-HTML fuer XTend Custom Elements, Hydration-Payloads im
|
|
5
|
+
RenderMan-kompatiblen Format und optional JSONL-Streaming fuer inkrementelle
|
|
6
|
+
UI-Komponenten.
|
|
7
|
+
|
|
8
|
+
Schema: `xtend.rmt.node-ssr-adapter.v1`
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
import {
|
|
12
|
+
createRmtNodeSsrAdapter
|
|
13
|
+
} from '@ccslabs/xtend/rmt/node-ssr-adapter';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Im Runtime-Paket steht dieselbe API ueber
|
|
17
|
+
`@ccslabs/xtend-rmt/node-ssr-adapter` bereit.
|
|
18
|
+
|
|
19
|
+
Fuer PHP/Laravel-Hosts stellt der
|
|
20
|
+
[RMT PHP/Laravel SSR Adapter](./rmt-php-ssr-adapter.md) denselben
|
|
21
|
+
Client-Wire-Contract bereit: HTML, Hydration, RenderMan-Chunks und JSONL-
|
|
22
|
+
Frames bleiben kompatibel.
|
|
23
|
+
|
|
24
|
+
## Architektur
|
|
25
|
+
|
|
26
|
+
Der Adapter ist Host-Schicht, nicht neuer Renderer. RMT vNext beschreibt
|
|
27
|
+
Source, State, Selectors, Actions, Events, Surfaces und Streams. Der Compiler
|
|
28
|
+
erzeugt Core-/Kernel-Records. Die Component Capability Registry beschreibt
|
|
29
|
+
alle XTend-Komponenten generisch. Der Node Adapter serialisiert daraus sichere
|
|
30
|
+
serverseitige Startausgabe.
|
|
31
|
+
|
|
32
|
+
Er instanziiert keine Custom Elements auf dem Server, greift nicht auf private
|
|
33
|
+
Component-Interna zu, startet keinen HTTP-Server und verwendet keinen
|
|
34
|
+
impliziten globalen Netzwerkzugriff.
|
|
35
|
+
|
|
36
|
+
## API
|
|
37
|
+
|
|
38
|
+
```js
|
|
39
|
+
const adapter = createRmtNodeSsrAdapter({
|
|
40
|
+
manifest,
|
|
41
|
+
sourceTexts,
|
|
42
|
+
endpointHandlers: {
|
|
43
|
+
'ssr.hero': () => ({
|
|
44
|
+
html: '<x-hero>Hero</x-hero>',
|
|
45
|
+
trustBoundary: 'xtend.security.sanitizing-boundary.v1'
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const result = await adapter.render({
|
|
51
|
+
source,
|
|
52
|
+
filePath: 'app.rmt'
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`render` akzeptiert RMT Source, Core Documents, Prepared Templates und DOM
|
|
57
|
+
Descriptoren. Im Vollpaket wird Source automatisch ueber den vNext Compiler
|
|
58
|
+
kompiliert. Runtime-only Hosts injizieren `compileRmtVNextSource`; fehlt diese
|
|
59
|
+
Funktion, entsteht `rmt.node_ssr.compiler_required`.
|
|
60
|
+
|
|
61
|
+
## Ausgabe
|
|
62
|
+
|
|
63
|
+
`xtend.rmt.node-ssr-render-result.v1` enthaelt:
|
|
64
|
+
|
|
65
|
+
- `html`
|
|
66
|
+
- `head.preloads`
|
|
67
|
+
- `renderman_template_chunk`
|
|
68
|
+
- `server_prerender_hydrate` Hydration-Daten
|
|
69
|
+
- `xtend.rmt.vnext-streaming-contract.v1`
|
|
70
|
+
- Component Capability Marker
|
|
71
|
+
- Diagnostics
|
|
72
|
+
|
|
73
|
+
## JSONL Streaming
|
|
74
|
+
|
|
75
|
+
`streamJsonl` liefert Frames mit
|
|
76
|
+
`xtend.rmt.node-ssr-jsonl-frame.v1`. Wichtige Frame-Typen sind `start`,
|
|
77
|
+
`component`, `html`, `hydration`, `diagnostic`, `complete` und `error`.
|
|
78
|
+
|
|
79
|
+
Die Streaming-Capabilities bleiben kompatibel mit RMT vNext:
|
|
80
|
+
|
|
81
|
+
- `stream.ssr.incremental`
|
|
82
|
+
- `stream.hydration.chunked`
|
|
83
|
+
|
|
84
|
+
## DataSources und Security
|
|
85
|
+
|
|
86
|
+
DataSources werden nur ueber explizite Host-Resolver verarbeitet:
|
|
87
|
+
`resolveDataSource`, `endpointHandlers`, `staticDataSources`, `fixtures` oder
|
|
88
|
+
`fetchAdapter`. Fehlende Resolver melden `rmt.node_ssr.datasource_missing`.
|
|
89
|
+
|
|
90
|
+
HTML-Fragmente brauchen eine Trust Boundary wie
|
|
91
|
+
`xtend.security.sanitizing-boundary.v1` oder
|
|
92
|
+
`xtend.security.streaming-boundary.v1`. Unsichere URLs, Event-Attribute,
|
|
93
|
+
`srcdoc` und blockierte Tags werden diagnostiziert und bereinigt.
|
|
94
|
+
|
|
95
|
+
## Gate
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm run test:rmt-node-ssr-adapter
|
|
99
|
+
node scripts/run_xtend_tests.js rmt-node-ssr-adapter --json
|
|
100
|
+
```
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# RMT PHP/Laravel SSR Adapter
|
|
2
|
+
|
|
3
|
+
Der PHP SSR Adapter ist die Laravel-kompatible Host-Schicht fuer RMT vNext.
|
|
4
|
+
Er liegt als portables Single-File-Modul unter
|
|
5
|
+
`xtendrmt/rmt-php-ssr-adapter.php`, benoetigt PHP 8.1+ und kommt in dieser
|
|
6
|
+
ersten Welle ohne Composer-Package und ohne Service Provider aus.
|
|
7
|
+
|
|
8
|
+
Schema: `xtend.rmt.php-ssr-adapter.v1`
|
|
9
|
+
|
|
10
|
+
Der Adapter ist auf Client-Wire-Ebene mit dem
|
|
11
|
+
[RMT Node SSR Adapter](./rmt-node-ssr-adapter.md) austauschbar. HTML,
|
|
12
|
+
Hydration, RenderMan-Chunks und JSONL-Frames nutzen dieselben Schemas:
|
|
13
|
+
`xtend.rmt.node-ssr-render-result.v1`,
|
|
14
|
+
`xtend.rmt.node-ssr-hydration-payload.v1` und
|
|
15
|
+
`xtend.rmt.node-ssr-jsonl-frame.v1`.
|
|
16
|
+
|
|
17
|
+
## Rolle im Stack
|
|
18
|
+
|
|
19
|
+
RMT beschreibt die App. XTend Components bleiben die UI-Bausteine. Der PHP
|
|
20
|
+
Adapter serialisiert serverseitiges Light DOM, Capability-Marker,
|
|
21
|
+
Lazy-Import-Hints und Hydration-Payloads, ohne Custom Elements auf dem Server
|
|
22
|
+
zu instanziieren.
|
|
23
|
+
|
|
24
|
+
Keine Parallelstruktur:
|
|
25
|
+
|
|
26
|
+
- kein Shadow-DOM-Rendering auf dem Server
|
|
27
|
+
- keine privaten Component-Maps
|
|
28
|
+
- kein Docs-App-Sonderpfad
|
|
29
|
+
- kein eingebauter PHP-RMT-Compiler
|
|
30
|
+
- kein impliziter Netzwerkzugriff
|
|
31
|
+
- keine HTML-Ausgabe ohne Trust Boundary
|
|
32
|
+
|
|
33
|
+
## Public API
|
|
34
|
+
|
|
35
|
+
```php
|
|
36
|
+
require __DIR__ . '/xtendrmt/rmt-php-ssr-adapter.php';
|
|
37
|
+
|
|
38
|
+
$adapter = createRmtPhpSsrAdapter([
|
|
39
|
+
'manifest' => $manifest,
|
|
40
|
+
'endpointHandlers' => [
|
|
41
|
+
'ssr.hero' => fn () => [
|
|
42
|
+
'html' => '<x-hero>Hero</x-hero>',
|
|
43
|
+
'trustBoundary' => 'xtend.security.sanitizing-boundary.v1',
|
|
44
|
+
],
|
|
45
|
+
],
|
|
46
|
+
]);
|
|
47
|
+
|
|
48
|
+
$result = $adapter->render(['coreDocument' => $coreDocument]);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`render(...)` verarbeitet Core Documents, Prepared Templates und DOM
|
|
52
|
+
Descriptoren direkt. `.rmt` Source braucht eine injizierte
|
|
53
|
+
`compileRmtVNextSource`-Bridge. Ohne Bridge entsteht die blockierende Diagnose
|
|
54
|
+
`rmt.php_ssr.compiler_required`.
|
|
55
|
+
|
|
56
|
+
## Laravel Helpers
|
|
57
|
+
|
|
58
|
+
```php
|
|
59
|
+
return $adapter->toLaravelResponse($result);
|
|
60
|
+
|
|
61
|
+
return $adapter->toLaravelStreamedResponse([
|
|
62
|
+
'coreDocument' => $coreDocument,
|
|
63
|
+
]);
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Wenn Laravel/Symfony Response-Klassen vorhanden sind, nutzt der Adapter diese
|
|
67
|
+
direkt. Ohne Framework gibt er Arrays zurueck. Damit bleibt die Datei in
|
|
68
|
+
Laravel, kleinen PHP-Hosts und Tests nutzbar.
|
|
69
|
+
|
|
70
|
+
## JSONL Streaming
|
|
71
|
+
|
|
72
|
+
`streamJsonl(...)` liefert newline-delimited JSON mit
|
|
73
|
+
`xtend.rmt.node-ssr-jsonl-frame.v1`. Unterstuetzte Frames sind `start`,
|
|
74
|
+
`component`, `html`, `hydration`, `diagnostic`, `complete` und `error`.
|
|
75
|
+
|
|
76
|
+
Die Frames tragen dieselben Felder wie der Node Adapter: `requestId`,
|
|
77
|
+
`sequence`, `operationId`, `variant`, `capability`, `lane`, `chunkKey`,
|
|
78
|
+
`payload` und `diagnostics`. Dadurch muss die XTend Browser-Runtime nicht
|
|
79
|
+
wissen, ob Node oder PHP/Laravel das Backend ist.
|
|
80
|
+
|
|
81
|
+
## DataSources und Trust Boundaries
|
|
82
|
+
|
|
83
|
+
Serverdaten kommen nur ueber explizite Host-Hooks:
|
|
84
|
+
|
|
85
|
+
- `resolveDataSource`
|
|
86
|
+
- `endpointHandlers`
|
|
87
|
+
- `staticDataSources`
|
|
88
|
+
- `fixtures`
|
|
89
|
+
- `fetchAdapter`
|
|
90
|
+
- `laravelContainerResolver`
|
|
91
|
+
|
|
92
|
+
HTML-Fragmente muessen eine Boundary wie
|
|
93
|
+
`xtend.security.sanitizing-boundary.v1` oder
|
|
94
|
+
`xtend.security.streaming-boundary.v1` tragen. Unsichere URLs,
|
|
95
|
+
Event-Attribute, `srcdoc` und blockierte Tags werden diagnostiziert und vom
|
|
96
|
+
Fallback-Sanitizer entfernt. Produktive Hosts koennen `sanitizeHtmlOutput`
|
|
97
|
+
injizieren.
|
|
98
|
+
|
|
99
|
+
## Docs-App Integration
|
|
100
|
+
|
|
101
|
+
Die Docs-App nutzt den Adapter nun direkt in `docs/index.php` fuer
|
|
102
|
+
Shell-first-Prehydration.
|
|
103
|
+
|
|
104
|
+
- Contract: `xtend.docs.php-ssr-prehydration.v1`
|
|
105
|
+
- vNext Source: `docs/xtendrmt-docs-shell-vnext.rmt`
|
|
106
|
+
- Compiler-Bridge: `scripts/compile_rmt_vnext_bridge.js`
|
|
107
|
+
- JSONL Endpoint:
|
|
108
|
+
`index.php?xtend-docs-rmt-ssr=shell&format=jsonl&page={slug}&locale={locale}`
|
|
109
|
+
|
|
110
|
+
Der Host injiziert `compileRmtVNextSource` ueber die Node-Bridge. Parsedown
|
|
111
|
+
bleibt Host-Boundary und fuellt nur den Content-Slot, waehrend die Shell aus
|
|
112
|
+
RMT-Primitives, Hydration und RenderMan-Chunks kommt.
|
|
113
|
+
|
|
114
|
+
## Gates
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm run test:rmt-php-ssr-adapter
|
|
118
|
+
npm run test:docs-php-ssr-prehydration
|
|
119
|
+
node scripts/run_xtend_tests.js rmt-php-ssr-adapter --json
|
|
120
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# RMT Production Readiness
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic13.rmt-production-readiness.v1`
|
|
4
|
+
- Report: `xtend.epic13.rmt-production-readiness-report.v1`
|
|
5
|
+
- Workpackage: `WP-E13-09`
|
|
6
|
+
- Lokaler Gate: `node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json`
|
|
7
|
+
- Package Script: `npm run test:epic13-rmt-production-readiness`
|
|
8
|
+
- Publish Boundary: `private-until-release-owner-acceptance`
|
|
9
|
+
|
|
10
|
+
## Zweck
|
|
11
|
+
|
|
12
|
+
`WP-E13-09` buendelt den RMT-first App-Pfad fuer RC1. Das Paket fuehrt die bereits vorhandenen RMT-Gates zu einem produktionsnahen Schnitt zusammen: Shell-first App Shell, native RMT-Routen, XTend-Komponenten ueber Adapter, Fabric/Lane-Ingestion, Lifecycle Telemetry, Diagnostics und XTendRMT Artifact Parity.
|
|
13
|
+
|
|
14
|
+
Das Bundle fuegt keine neuen App-Features hinzu. Es macht sichtbar, dass XTend Apps vollstaendig in RMT templated werden koennen, waehrend der RMT Kernel framework-agnostisch bleibt.
|
|
15
|
+
|
|
16
|
+
## Source Gates
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm run test:rmt-compatibility
|
|
20
|
+
npm run test:rmt-first-class-app
|
|
21
|
+
npm run test:rmt-first-demo-app
|
|
22
|
+
npm run test:rmt-artifact-parity
|
|
23
|
+
npm run test:rmt-component-fabric-ingestion
|
|
24
|
+
npm run test:rmt-component-lifecycle-telemetry
|
|
25
|
+
npm run test:epic13-visual-owner-artifact
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Der lokale WP09-Gate prueft diese Source Gates als statisches RC1-Bundle. Er fuehrt keine Netzwerkzugriffe und keinen externen Browser voraus.
|
|
29
|
+
|
|
30
|
+
## Readiness-Domains
|
|
31
|
+
|
|
32
|
+
| Domain | Evidence |
|
|
33
|
+
| --- | --- |
|
|
34
|
+
| Shell-first App Shell | `tests/fixtures/rmt-first-class-xtend-app.rmt`, `xtendrmt/rmt-first-demo-app.rmt` |
|
|
35
|
+
| Routing | `xtend.xrouter` Adapter und RMT `routes` Records |
|
|
36
|
+
| Components | `xtend.component` Adapter und RMT `components` Records |
|
|
37
|
+
| Fabric/Lane | `xtend.component.fabric-lane-ingestion.v2` |
|
|
38
|
+
| Lifecycle Telemetry | `xtend.component.lifecycle-telemetry.v1` |
|
|
39
|
+
| Diagnostics | `rmt.state-scheduler-diagnostics` und Fabric Snapshots |
|
|
40
|
+
| Artifact Parity | `xtend.rmt.artifact-parity.v1` |
|
|
41
|
+
| Kernel Boundary | `no-rmt-kernel-import-of-xtend-types` |
|
|
42
|
+
|
|
43
|
+
## Boundary
|
|
44
|
+
|
|
45
|
+
RMT besitzt App Records, Routes, Schedules, Templates und Metadata. XTend-Ausfuehrung bleibt in Host-Adaptern:
|
|
46
|
+
|
|
47
|
+
- XTend-Komponenten werden nicht in den RMT Kernel importiert.
|
|
48
|
+
- XRouter wird ueber `xtend.xrouter` angeschlossen.
|
|
49
|
+
- Fabric/Lane- und Telemetry-Signale werden ingestiert, aber nicht als harte Kernel-Abhaengigkeit modelliert.
|
|
50
|
+
- React-, Vue-, Vanilla- und Custom-Hosts koennen eigene Adapter verwenden.
|
|
51
|
+
|
|
52
|
+
## Referenzen
|
|
53
|
+
|
|
54
|
+
- [RMT-first XTend Apps](./rmt-first-xtend-apps.md)
|
|
55
|
+
- [RMT-first Demo-App](./rmt-first-demo-app.md)
|
|
56
|
+
- [XTendRMT App-DSL](./xtendrmt-app-dsl.md)
|
|
57
|
+
- [XTendRMT Native Authoring](./xtendrmt-native-authoring.md)
|
|
58
|
+
- [XTend-Fabric RMT Lane Mapping](./xtend-fabric-rmt-lane-mapping.md)
|
|
59
|
+
- [Visual Owner Artifacts](./visual-owner-artifacts.md)
|
|
60
|
+
|
|
61
|
+
## Handoff
|
|
62
|
+
|
|
63
|
+
`WP-E13-09` ist abgeschlossen. `WP-E13-10` hat [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) nachgezogen und die Docs-App RMT Parsedown Shell fuer PROD-nahe Erweiterungen gehaertet. `WP-E13-11` hat [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) und `xtend.epic13.trusted-dom-boundary.v1` abgeschlossen. `WP-E13-12` hat [RC1 Migration Notes](./rc1-migration-notes.md) und `xtend.epic13.rc1-migration-notes-semver.v1` abgeschlossen. `WP-E13-13` hat [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) und `xtend.epic13.rc1-gate-matrix-ci-handoff.v1` abgeschlossen.
|