@ccslabs/xtend 0.1.0-rc.1
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 +65 -0
- package/LICENSE +201 -0
- package/README.md +184 -0
- package/a11y/motion-contrast-policy.d.ts +32 -0
- package/a11y/motion-contrast-policy.js +261 -0
- package/a11y/runtime-a11y-contract.d.ts +44 -0
- package/a11y/runtime-a11y-contract.js +385 -0
- package/a11y/screenreader-signals.d.ts +32 -0
- package/a11y/screenreader-signals.js +372 -0
- package/api.d.ts +168 -0
- package/api.js +864 -0
- package/catalog/catalog-public-types.d.ts +66 -0
- package/catalog/component-catalog-coverage.d.ts +20 -0
- package/catalog/component-catalog-coverage.js +377 -0
- package/catalog/component-long-tail-migration.d.ts +18 -0
- package/catalog/component-long-tail-migration.js +305 -0
- package/catalog/component-regression-priority.d.ts +20 -0
- package/catalog/component-regression-priority.js +305 -0
- package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
- package/catalog/enterprise-component-flex-release-handoff.js +437 -0
- package/catalog/enterprise-component-style-audit.d.ts +22 -0
- package/catalog/enterprise-component-style-audit.js +353 -0
- package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
- package/catalog/enterprise-form-control-theme-a11y.js +220 -0
- package/catalog/enterprise-icon-control-audit.d.ts +21 -0
- package/catalog/enterprise-icon-control-audit.js +258 -0
- package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
- package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
- package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
- package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
- package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
- package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
- package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
- package/catalog/enterprise-third-party-authoring-guide.js +310 -0
- package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
- package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
- package/catalog/epic10-existing-component-metadata.d.ts +25 -0
- package/catalog/epic10-existing-component-metadata.js +534 -0
- package/catalog/epic10-p0-component-wave.d.ts +28 -0
- package/catalog/epic10-p0-component-wave.js +688 -0
- package/catalog/epic10-platform-gates.d.ts +31 -0
- package/catalog/epic10-platform-gates.js +425 -0
- package/catalog/epic10-release-handoff.d.ts +30 -0
- package/catalog/epic10-release-handoff.js +195 -0
- package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
- package/catalog/epic11-enterprise-ux-handoff.js +403 -0
- package/catalog/epic12-docs-adoption.d.ts +29 -0
- package/catalog/epic12-docs-adoption.js +183 -0
- package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
- package/catalog/epic12-rc0-gate-matrix.js +439 -0
- package/catalog/epic12-rc0-handoff.d.ts +30 -0
- package/catalog/epic12-rc0-handoff.js +385 -0
- package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
- package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
- package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
- package/catalog/epic13-conditional-network-evidence.js +280 -0
- package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
- package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
- package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
- package/catalog/epic13-hydration-performance-closure.js +234 -0
- package/catalog/epic13-known-residual-triage.d.ts +32 -0
- package/catalog/epic13-known-residual-triage.js +339 -0
- package/catalog/epic13-package-export-lock.d.ts +41 -0
- package/catalog/epic13-package-export-lock.js +604 -0
- package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
- package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
- package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
- package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
- package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
- package/catalog/epic13-rc1-migration-notes.js +271 -0
- package/catalog/epic13-rc1-readiness.d.ts +33 -0
- package/catalog/epic13-rc1-readiness.js +487 -0
- package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
- package/catalog/epic13-release-owner-acceptance.js +354 -0
- package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
- package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
- package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
- package/catalog/epic13-rmt-production-readiness.js +314 -0
- package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
- package/catalog/epic13-trusted-dom-boundary.js +230 -0
- package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
- package/catalog/epic13-visual-owner-artifact.js +233 -0
- package/catalog/epic14-lsp-handoff.d.ts +28 -0
- package/catalog/epic14-lsp-handoff.js +312 -0
- package/catalog/epic14-rmt-tooling.d.ts +33 -0
- package/catalog/epic14-rmt-tooling.js +282 -0
- package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
- package/catalog/surface-manager-adapter-runtime.js +203 -0
- package/catalog/surface-manager-browser-lab.d.ts +39 -0
- package/catalog/surface-manager-browser-lab.js +225 -0
- package/catalog/surface-manager-controller.d.ts +43 -0
- package/catalog/surface-manager-controller.js +290 -0
- package/catalog/surface-manager-layout-engines.d.ts +32 -0
- package/catalog/surface-manager-layout-engines.js +161 -0
- package/catalog/surface-manager-lazy-loading.d.ts +35 -0
- package/catalog/surface-manager-lazy-loading.js +173 -0
- package/catalog/surface-manager-materialization.d.ts +37 -0
- package/catalog/surface-manager-materialization.js +202 -0
- package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
- package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
- package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
- package/catalog/surface-manager-overlay-bridge.js +247 -0
- package/catalog/surface-manager-persistence.d.ts +37 -0
- package/catalog/surface-manager-persistence.js +178 -0
- package/catalog/surface-manager-quality-gates.d.ts +48 -0
- package/catalog/surface-manager-quality-gates.js +324 -0
- package/catalog/surface-manager-release-handoff.d.ts +47 -0
- package/catalog/surface-manager-release-handoff.js +274 -0
- package/catalog/surface-manager-remote-policy.d.ts +34 -0
- package/catalog/surface-manager-remote-policy.js +199 -0
- package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
- package/catalog/surface-manager-rmt-authoring.js +368 -0
- package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
- package/catalog/surface-manager-route-lifecycle.js +162 -0
- package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
- package/catalog/surface-manager-runtime-release-handoff.js +245 -0
- package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
- package/catalog/surface-manager-side-panel-runtime.js +307 -0
- package/catalog/surface-manager-stack-policy.d.ts +32 -0
- package/catalog/surface-manager-stack-policy.js +169 -0
- package/catalog/surface-manager-window-runtime.d.ts +45 -0
- package/catalog/surface-manager-window-runtime.js +285 -0
- package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
- package/catalog/surface-manager-workbench-fixture.js +315 -0
- package/catalog/type-exports-api.js +236 -0
- package/catalog/type-exports-builder.js +405 -0
- package/catalog/type-exports-catalog.js +394 -0
- package/catalog/type-exports-loader.js +266 -0
- package/catalog/type-exports-policy.js +461 -0
- package/catalog/type-exports-rmt.js +407 -0
- package/catalog/type-exports-vendor.js +365 -0
- package/catalog/type-exports.js +574 -0
- package/components/icon-packs/core.js +154 -0
- package/components/icon-packs/lucide.js +136 -0
- package/components/manifest.json +44 -0
- package/components/prism.d.ts +73 -0
- package/components/prism.js +300 -0
- package/components/turndown.d.ts +34 -0
- package/components/turndown.js +107 -0
- package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
- package/components/x-rmt-lifecycle-demo-build.js +1175 -0
- package/components/x-rmt-lifecycle-demo.d.ts +83 -0
- package/components/x-rmt-lifecycle-demo.js +1175 -0
- package/components/xalert.d.ts +42 -0
- package/components/xalert.js +538 -0
- package/components/xbutton.d.ts +127 -0
- package/components/xbutton.js +612 -0
- package/components/xcalendar.d.ts +39 -0
- package/components/xcalendar.js +338 -0
- package/components/xcards.d.ts +34 -0
- package/components/xcards.js +253 -0
- package/components/xcheckbox.d.ts +48 -0
- package/components/xcheckbox.js +448 -0
- package/components/xcode.d.ts +35 -0
- package/components/xcode.js +370 -0
- package/components/xdialog.d.ts +48 -0
- package/components/xdialog.js +763 -0
- package/components/xdrawer.d.ts +61 -0
- package/components/xdrawer.js +654 -0
- package/components/xfooter.d.ts +41 -0
- package/components/xfooter.js +351 -0
- package/components/xform.d.ts +43 -0
- package/components/xform.js +456 -0
- package/components/xheader.d.ts +68 -0
- package/components/xheader.js +1253 -0
- package/components/xhero.d.ts +42 -0
- package/components/xhero.js +475 -0
- package/components/xicon.d.ts +146 -0
- package/components/xicon.js +688 -0
- package/components/xinput.d.ts +37 -0
- package/components/xinput.js +444 -0
- package/components/xlightbox.d.ts +48 -0
- package/components/xlightbox.js +571 -0
- package/components/xlink.d.ts +63 -0
- package/components/xlink.js +565 -0
- package/components/xmasonry.d.ts +35 -0
- package/components/xmasonry.js +666 -0
- package/components/xmenu.d.ts +118 -0
- package/components/xmenu.js +1005 -0
- package/components/xmodal.d.ts +64 -0
- package/components/xmodal.js +831 -0
- package/components/xplayer.d.ts +57 -0
- package/components/xplayer.js +1748 -0
- package/components/xpopover.d.ts +54 -0
- package/components/xpopover.js +466 -0
- package/components/xprogress.d.ts +40 -0
- package/components/xprogress.js +345 -0
- package/components/xradio.d.ts +50 -0
- package/components/xradio.js +474 -0
- package/components/xrouter.d.ts +244 -0
- package/components/xrouter.js +1841 -0
- package/components/xsection.d.ts +34 -0
- package/components/xsection.js +253 -0
- package/components/xselect.d.ts +46 -0
- package/components/xselect.js +463 -0
- package/components/xsidepanel.d.ts +56 -0
- package/components/xsidepanel.js +728 -0
- package/components/xspinner.d.ts +38 -0
- package/components/xspinner.js +388 -0
- package/components/xstate.d.ts +137 -0
- package/components/xstate.js +493 -0
- package/components/xstatus.d.ts +41 -0
- package/components/xstatus.js +381 -0
- package/components/xsummary.d.ts +43 -0
- package/components/xsummary.js +293 -0
- package/components/xsurfacemanager-controller.d.ts +130 -0
- package/components/xsurfacemanager-controller.js +699 -0
- package/components/xsurfacemanager.d.ts +452 -0
- package/components/xsurfacemanager.js +3775 -0
- package/components/xsurfaceoverlay-bridge.d.ts +43 -0
- package/components/xsurfaceoverlay-bridge.js +238 -0
- package/components/xsurfacewindow.d.ts +50 -0
- package/components/xsurfacewindow.js +576 -0
- package/components/xtabs.d.ts +73 -0
- package/components/xtabs.js +611 -0
- package/components/xtend-public-types.d.ts +208 -0
- package/components/xtextarea.d.ts +46 -0
- package/components/xtextarea.js +451 -0
- package/components/xtheme.d.ts +253 -0
- package/components/xtheme.js +1438 -0
- package/components/xtoast.d.ts +39 -0
- package/components/xtoast.js +389 -0
- package/components/xtooltip.d.ts +53 -0
- package/components/xtooltip.js +432 -0
- package/components/xtype.d.ts +42 -0
- package/components/xtype.js +244 -0
- package/components/xutils.d.ts +164 -0
- package/components/xutils.js +496 -0
- package/components/xwriter.d.ts +67 -0
- package/components/xwriter.js +854 -0
- package/design-tokens/themes/enterprise-light.json +40 -0
- package/design-tokens/themes/xtend-signature.json +126 -0
- package/design-tokens/xtend-design-tokens.d.ts +95 -0
- package/design-tokens/xtend-design-tokens.js +395 -0
- package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
- package/design-tokens/xtheme-token-alias-layer.js +423 -0
- package/docs/.htaccess +51 -0
- package/docs/README.md +340 -0
- package/docs/XTend-ADR.md +221 -0
- package/docs/a11y-keyboard-smokes.md +62 -0
- package/docs/about.md +18 -0
- package/docs/api.md +157 -0
- package/docs/best-practices.md +76 -0
- package/docs/component-catalog-coverage.md +58 -0
- package/docs/component-lab.md +103 -0
- package/docs/component-long-tail-migration.md +41 -0
- package/docs/component-platform.md +159 -0
- package/docs/component-ux-app-authoring.md +130 -0
- package/docs/component-ux-authoring.md +96 -0
- package/docs/component-ux-gates.md +45 -0
- package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/components/xalert.md +81 -0
- package/docs/components/xbutton.md +103 -0
- package/docs/components/xcalendar.md +82 -0
- package/docs/components/xcards.md +128 -0
- package/docs/components/xcheckbox.md +102 -0
- package/docs/components/xcode.md +126 -0
- package/docs/components/xdialog.md +92 -0
- package/docs/components/xdrawer.md +84 -0
- package/docs/components/xfooter.md +126 -0
- package/docs/components/xform.md +128 -0
- package/docs/components/xheader.md +308 -0
- package/docs/components/xhero.md +142 -0
- package/docs/components/xicon.md +125 -0
- package/docs/components/xinput.md +129 -0
- package/docs/components/xlightbox.md +98 -0
- package/docs/components/xlink.md +109 -0
- package/docs/components/xmasonry.md +124 -0
- package/docs/components/xmenu.md +158 -0
- package/docs/components/xmodal.md +82 -0
- package/docs/components/xplayer.md +104 -0
- package/docs/components/xpopover.md +67 -0
- package/docs/components/xprogress.md +56 -0
- package/docs/components/xradio.md +103 -0
- package/docs/components/xrouter.md +260 -0
- package/docs/components/xsection.md +125 -0
- package/docs/components/xselect.md +105 -0
- package/docs/components/xsidepanel.md +30 -0
- package/docs/components/xspinner.md +102 -0
- package/docs/components/xstate.md +148 -0
- package/docs/components/xstatus.md +55 -0
- package/docs/components/xsummary.md +78 -0
- package/docs/components/xsurfacemanager.md +27 -0
- package/docs/components/xsurfacewindow.md +21 -0
- package/docs/components/xtabs.md +160 -0
- package/docs/components/xtextarea.md +98 -0
- package/docs/components/xtheme.md +167 -0
- package/docs/components/xtoast.md +62 -0
- package/docs/components/xtooltip.md +66 -0
- package/docs/components/xtype.md +82 -0
- package/docs/components/xutils.md +144 -0
- package/docs/components/xwriter.md +94 -0
- package/docs/components.md +117 -0
- package/docs/conditional-network-evidence-ci.md +38 -0
- package/docs/conditional-network-evidence.md +50 -0
- package/docs/core-migration-guide.md +110 -0
- package/docs/design-tokens.md +116 -0
- package/docs/docs-rmt-production-hardening.md +31 -0
- package/docs/enterprise-adoption.md +411 -0
- package/docs/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/epic10-platform-gates.md +62 -0
- package/docs/epic10-release-handoff.md +81 -0
- package/docs/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/epic12-rc0-handoff.md +61 -0
- package/docs/existing-component-metadata.md +67 -0
- package/docs/hydration-performance-closure.md +34 -0
- package/docs/hydration-policies.md +71 -0
- package/docs/index.php +1625 -0
- package/docs/known-residual-triage.md +22 -0
- package/docs/manifest-import-policy.md +79 -0
- package/docs/manifest.md +106 -0
- package/docs/menu.json +1190 -0
- package/docs/motion-contrast.md +67 -0
- package/docs/package-export-lock.md +44 -0
- package/docs/performance-measurements.md +106 -0
- package/docs/performance-regression.md +89 -0
- package/docs/performance.md +94 -0
- package/docs/previews/README.md +17 -0
- package/docs/prod-browser-csp-smokes.md +40 -0
- package/docs/public-component-types.md +79 -0
- package/docs/quick-start-guide.md +152 -0
- package/docs/rc0-adoption-guide.md +102 -0
- package/docs/rc0-gate-matrix.md +58 -0
- package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/rc1-migration-notes.md +69 -0
- package/docs/rc1-readiness.md +46 -0
- package/docs/release-owner-acceptance.md +56 -0
- package/docs/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/rmt-dsl-authoring-polish.md +122 -0
- package/docs/rmt-first-demo-app.md +77 -0
- package/docs/rmt-first-xtend-apps.md +105 -0
- package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/rmt-language-server.md +177 -0
- package/docs/rmt-lifecycle-demo.md +25 -0
- package/docs/rmt-linter.md +140 -0
- package/docs/rmt-production-readiness.md +63 -0
- package/docs/rmt-tooling-release-gates.md +77 -0
- package/docs/rmt-vnext-authoring.md +60 -0
- package/docs/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/rmt-vnext-migration-notes.md +62 -0
- package/docs/rmt-vnext-release-handoff.md +69 -0
- package/docs/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/screenreader-signals.md +56 -0
- package/docs/supply-chain-gates.md +100 -0
- package/docs/surface-manager-authoring-guide.md +94 -0
- package/docs/surface-manager-browser-lab.md +45 -0
- package/docs/surface-manager-component-lab.md +43 -0
- package/docs/surface-manager-controller.md +66 -0
- package/docs/surface-manager-layout-engines.md +32 -0
- package/docs/surface-manager-lazy-hydration.md +63 -0
- package/docs/surface-manager-migration-guide.md +94 -0
- package/docs/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/surface-manager-overlay-bridge.md +53 -0
- package/docs/surface-manager-persistence.md +30 -0
- package/docs/surface-manager-quality-gates.md +51 -0
- package/docs/surface-manager-release-handoff.md +68 -0
- package/docs/surface-manager-remote-policy.md +54 -0
- package/docs/surface-manager-rmt-authoring.md +86 -0
- package/docs/surface-manager-route-lifecycle.md +59 -0
- package/docs/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/surface-manager-side-panel-runtime.md +36 -0
- package/docs/surface-manager-stack-policy.md +39 -0
- package/docs/surface-manager-window-runtime.md +47 -0
- package/docs/surface-manager-workbench-fixture.md +43 -0
- package/docs/third-party-design-authoring.md +406 -0
- package/docs/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/trusted-dom-sanitizing.md +110 -0
- package/docs/type-exports.md +61 -0
- package/docs/typescript-components.md +63 -0
- package/docs/utils/fabric-runtime.js +650 -0
- package/docs/utils/pageloader.js +2823 -0
- package/docs/utils/parsedown.php +298 -0
- package/docs/visual-browser-regression.md +83 -0
- package/docs/visual-owner-artifacts.md +46 -0
- package/docs/visual-snapshot-automation.md +87 -0
- package/docs/xtend-api-types.md +55 -0
- package/docs/xtend-builder-types.md +55 -0
- package/docs/xtend-catalog-types.md +44 -0
- package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/xtend-fabric.md +474 -0
- package/docs/xtend-loader-types.md +58 -0
- package/docs/xtend-loader.md +265 -0
- package/docs/xtend-policy-types.md +38 -0
- package/docs/xtend-rmt-types.md +39 -0
- package/docs/xtend-vendor-types.md +36 -0
- package/docs/xtendrmt-app-dsl.md +269 -0
- package/docs/xtendrmt-migration-guide.md +235 -0
- package/docs/xtendrmt-native-authoring.md +337 -0
- package/docs/xtendrmt-overview.md +89 -0
- package/docs/xtendrmt-parsedown-docs.rmt +956 -0
- package/docs/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/xtendrmt-runtime-bridge.md +155 -0
- package/fabric/hydration-policy.d.ts +27 -0
- package/fabric/hydration-policy.js +306 -0
- package/fabric/package.json +58 -0
- package/fabric/rmt-lane-mapping.d.ts +47 -0
- package/fabric/rmt-lane-mapping.js +504 -0
- package/fabric/xtend-fabric.d.ts +81 -0
- package/fabric/xtend-fabric.js +2669 -0
- package/fabric/xtend-policy-public-types.d.ts +135 -0
- package/package.json +8225 -0
- package/security/README.md +54 -0
- package/security/manifest-import-policy.d.ts +43 -0
- package/security/manifest-import-policy.js +260 -0
- package/security/supply-chain-gate-policy.d.ts +45 -0
- package/security/supply-chain-gate-policy.js +249 -0
- package/security/trusted-dom-policy.d.ts +36 -0
- package/security/trusted-dom-policy.js +316 -0
- package/tools/package.json +77 -0
- package/tools/rmt-editor/vscode/README.md +33 -0
- package/tools/rmt-editor/vscode/extension.d.ts +9 -0
- package/tools/rmt-editor/vscode/extension.js +55 -0
- package/tools/rmt-editor/vscode/language-configuration.json +28 -0
- package/tools/rmt-editor/vscode/package.json +83 -0
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/code-actions.d.ts +15 -0
- package/tools/rmt-language/code-actions.js +566 -0
- package/tools/rmt-language/completions.d.ts +22 -0
- package/tools/rmt-language/completions.js +475 -0
- package/tools/rmt-language/definitions.d.ts +13 -0
- package/tools/rmt-language/definitions.js +212 -0
- package/tools/rmt-language/diagnostics.d.ts +23 -0
- package/tools/rmt-language/diagnostics.js +486 -0
- package/tools/rmt-language/format-adapter.d.ts +16 -0
- package/tools/rmt-language/format-adapter.js +270 -0
- package/tools/rmt-language/hover.d.ts +12 -0
- package/tools/rmt-language/hover.js +326 -0
- package/tools/rmt-language/kernel-escalation.d.ts +122 -0
- package/tools/rmt-language/kernel-escalation.js +427 -0
- package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
- package/tools/rmt-language/kernel-panic-monitor.js +674 -0
- package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
- package/tools/rmt-language/kernel-policy-parity.js +629 -0
- package/tools/rmt-language/kernel-recovery.d.ts +173 -0
- package/tools/rmt-language/kernel-recovery.js +666 -0
- package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
- package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
- package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
- package/tools/rmt-language/kernel-security-regression.js +465 -0
- package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
- package/tools/rmt-language/kernel-trust-authority.js +549 -0
- package/tools/rmt-language/parser.d.ts +14 -0
- package/tools/rmt-language/parser.js +111 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
- package/tools/rmt-language/rules/boundary-policy.js +81 -0
- package/tools/rmt-language/rules/document-policy.js +65 -0
- package/tools/rmt-language/rules/index.js +29 -0
- package/tools/rmt-language/rules/route-policy.js +81 -0
- package/tools/rmt-language/rules/scheduler-policy.js +66 -0
- package/tools/rmt-language/rules/template-policy.js +130 -0
- package/tools/rmt-language/semantic-graph.d.ts +18 -0
- package/tools/rmt-language/semantic-graph.js +827 -0
- package/tools/rmt-language/snippets/README.md +17 -0
- package/tools/rmt-language/snippets/index.d.ts +17 -0
- package/tools/rmt-language/snippets/index.js +417 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
- package/tools/rmt-language/source-model.d.ts +14 -0
- package/tools/rmt-language/source-model.js +731 -0
- package/tools/rmt-language/symbols.d.ts +13 -0
- package/tools/rmt-language/symbols.js +183 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
- package/tools/rmt-language/vnext-compatibility.js +675 -0
- package/tools/rmt-language/vnext-compiler.d.ts +17 -0
- package/tools/rmt-language/vnext-compiler.js +716 -0
- package/tools/rmt-language/vnext-composition.d.ts +30 -0
- package/tools/rmt-language/vnext-composition.js +595 -0
- package/tools/rmt-language/vnext-conditions.d.ts +25 -0
- package/tools/rmt-language/vnext-conditions.js +474 -0
- package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
- package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
- package/tools/rmt-language/vnext-degradation.d.ts +23 -0
- package/tools/rmt-language/vnext-degradation.js +428 -0
- package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
- package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
- package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
- package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
- package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
- package/tools/rmt-language/vnext-enterprise-release.js +472 -0
- package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
- package/tools/rmt-language/vnext-event-governance.js +488 -0
- package/tools/rmt-language/vnext-events.d.ts +44 -0
- package/tools/rmt-language/vnext-events.js +680 -0
- package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
- package/tools/rmt-language/vnext-import-resolver.js +642 -0
- package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
- package/tools/rmt-language/vnext-lifecycle.js +404 -0
- package/tools/rmt-language/vnext-parser.d.ts +21 -0
- package/tools/rmt-language/vnext-parser.js +1391 -0
- package/tools/rmt-language/vnext-regression.d.ts +25 -0
- package/tools/rmt-language/vnext-regression.js +394 -0
- package/tools/rmt-language/vnext-release.d.ts +29 -0
- package/tools/rmt-language/vnext-release.js +293 -0
- package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
- package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
- package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
- package/tools/rmt-language/vnext-remote-compiler.js +520 -0
- package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
- package/tools/rmt-language/vnext-remote-manifest.js +538 -0
- package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
- package/tools/rmt-language/vnext-remote-security.js +380 -0
- package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
- package/tools/rmt-language/vnext-remote-tooling.js +805 -0
- package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
- package/tools/rmt-language/vnext-scheduler.js +469 -0
- package/tools/rmt-language/vnext-security.d.ts +28 -0
- package/tools/rmt-language/vnext-security.js +597 -0
- package/tools/rmt-language/vnext-streaming.d.ts +28 -0
- package/tools/rmt-language/vnext-streaming.js +593 -0
- package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
- package/tools/rmt-language/vnext-surfaces.js +406 -0
- package/tools/rmt-language/vnext-tooling.d.ts +25 -0
- package/tools/rmt-language/vnext-tooling.js +728 -0
- package/tools/rmt-language-server/protocol.d.ts +22 -0
- package/tools/rmt-language-server/protocol.js +352 -0
- package/tools/rmt-language-server/server.d.ts +15 -0
- package/tools/rmt-language-server/server.js +622 -0
- package/tools/rmt-linter/cli.d.ts +14 -0
- package/tools/rmt-linter/cli.js +450 -0
- package/tools/rmt-linter/reporter.d.ts +16 -0
- package/tools/rmt-linter/reporter.js +472 -0
- package/xtend-builder/README.md +83 -0
- package/xtend-builder/a11y/README.md +42 -0
- package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
- package/xtend-builder/a11y/component-a11y-profile.js +314 -0
- package/xtend-builder/blueprints/README.md +105 -0
- package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
- package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
- package/xtend-builder/builder-public-types.d.ts +234 -0
- package/xtend-builder/extensions/README.md +26 -0
- package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
- package/xtend-builder/extensions/component-extension-points.js +277 -0
- package/xtend-builder/generators/README.md +149 -0
- package/xtend-builder/generators/component-files.d.ts +5 -0
- package/xtend-builder/generators/component-files.js +769 -0
- package/xtend-builder/generators/component-plan.d.ts +4 -0
- package/xtend-builder/generators/component-plan.js +104 -0
- package/xtend-builder/generators/registry.d.ts +6 -0
- package/xtend-builder/generators/registry.js +118 -0
- package/xtend-builder/generators/rmt-build.js +738 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
- package/xtend-builder/lib/cli.d.ts +9 -0
- package/xtend-builder/lib/cli.js +543 -0
- package/xtend-builder/lib/layout.d.ts +6 -0
- package/xtend-builder/lib/layout.js +153 -0
- package/xtend-builder/lib/package-resolver.js +25 -0
- package/xtend-builder/package.json +90 -0
- package/xtend-builder/performance/README.md +31 -0
- package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
- package/xtend-builder/performance/component-performance-profile.js +347 -0
- package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
- package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
- package/xtend-builder/preview/README.md +61 -0
- package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
- package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
- package/xtend-builder/preview/component-lab.d.ts +14 -0
- package/xtend-builder/preview/component-lab.js +278 -0
- package/xtend-builder/preview/component-preview.d.ts +5 -0
- package/xtend-builder/preview/component-preview.js +160 -0
- package/xtend-builder/scaffold.config.d.ts +4 -0
- package/xtend-builder/scaffold.config.js +2056 -0
- package/xtend-builder/scaffold.d.ts +3 -0
- package/xtend-builder/scaffold.js +11 -0
- package/xtend-builder/templates/README.md +33 -0
- package/xtend-builder/templates/component/a11y.template.ts +11 -0
- package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
- package/xtend-builder/templates/component/component-suite.template.js +108 -0
- package/xtend-builder/templates/component/contract.template.ts +10 -0
- package/xtend-builder/templates/component/demo-plan.template.md +73 -0
- package/xtend-builder/templates/component/docs.template.md +301 -0
- package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
- package/xtend-builder/templates/component/fixture.template.html +37 -0
- package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
- package/xtend-builder/templates/component/performance.template.ts +13 -0
- package/xtend-builder/templates/component/rmt.template.ts +12 -0
- package/xtend-builder/templates/component/source.template.d.ts +2 -0
- package/xtend-builder/templates/component/source.template.js +137 -0
- package/xtend-builder/templates/component/source.template.ts +110 -0
- package/xtend-builder/templates/component/types.template.d.ts +423 -0
- package/xtend-builder/templates/loader.d.ts +4 -0
- package/xtend-builder/templates/loader.js +51 -0
- package/xtend-builder/templates/registry.d.ts +6 -0
- package/xtend-builder/templates/registry.js +119 -0
- package/xtend-builder/typing/README.md +130 -0
- package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
- package/xtend-builder/typing/component-contract-v2.js +248 -0
- package/xtend-builder/typing/component-network-contract.d.ts +22 -0
- package/xtend-builder/typing/component-network-contract.js +478 -0
- package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
- package/xtend-builder/typing/component-shell-contract.js +312 -0
- package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
- package/xtend-builder/typing/component-styling-contract.js +301 -0
- package/xtend-builder/typing/component-types.d.ts +10 -0
- package/xtend-builder/typing/component-types.js +551 -0
- package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
- package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
- package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
- package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
- package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
- package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
- package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
- package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
- package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
- package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
- package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
- package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
- package/xtend-builder/utils/README.md +8 -0
- package/xtend-builder/utils/naming.d.ts +7 -0
- package/xtend-builder/utils/naming.js +36 -0
- package/xtend-builder/utils/validation.d.ts +5 -0
- package/xtend-builder/utils/validation.js +95 -0
- package/xtend-builder/wiring/README.md +46 -0
- package/xtend-builder/wiring/features.d.ts +5 -0
- package/xtend-builder/wiring/features.js +165 -0
- package/xtend-builder/wiring/hydration.d.ts +4 -0
- package/xtend-builder/wiring/hydration.js +44 -0
- package/xtend-builder/wiring/manifest.d.ts +5 -0
- package/xtend-builder/wiring/manifest.js +48 -0
- package/xtend-builder/workflows/README.md +47 -0
- package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
- package/xtend-builder/workflows/developer-workflow.js +125 -0
- package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
- package/xtend-builder/writing/manifest-patcher.js +391 -0
- package/xtend-builder/writing/write-plan.d.ts +148 -0
- package/xtend-builder/writing/write-plan.js +646 -0
- package/xtend-dev.d.ts +23 -0
- package/xtend-dev.js +4 -0
- package/xtend-loader.d.ts +201 -0
- package/xtend-loader.js +1704 -0
- package/xtend.css +402 -0
- package/xtendrmt/package.json +64 -0
- package/xtendrmt/rmt-core.d.ts +4452 -0
- package/xtendrmt/rmt-core.esm.js +25793 -0
- package/xtendrmt/rmt-first-demo-app.js +265 -0
- package/xtendrmt/rmt-first-demo-app.rmt +737 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
- package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
- package/xtendrmt/rmt-manifest.json +548 -0
- package/xtendrmt/rmt-runtime.browser.js +26183 -0
- package/xtendrmt/rmt-runtime.esm.js +26214 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
- package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
- package/xtendrmt/rmt.schema.json +3145 -0
- package/xtendrmt/surface-workbench.js +316 -0
- package/xtendrmt/surface-workbench.rmt +762 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
- package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# XTendRMT Native Migration Guide
|
|
2
|
+
|
|
3
|
+
- Status: produktiv nach Epic 05 Abschluss
|
|
4
|
+
- Contract: `xtend.rmt.native-migration-guide.v1`
|
|
5
|
+
- Mindestgates:
|
|
6
|
+
- `node scripts/run_xtend_tests.js rmt-compatibility --json`
|
|
7
|
+
- `node scripts/run_xtend_tests.js references --json`
|
|
8
|
+
- `npm test`
|
|
9
|
+
|
|
10
|
+
## Zweck
|
|
11
|
+
|
|
12
|
+
Dieser Guide beschreibt die Migration von fruehen XTendRMT-Metadatenpfaden zu nativen RMT Top-Level-Domains. Die Migration ist additiv und opt-in: bestehende XTend-, React-, Vue-, Vanilla-JS- und Custom-Apps duerfen weiterlaufen, waehrend neue RMT App-DSL-Dokumente direkt `adapters`, `components`, `routes` und `schedules` verwenden.
|
|
13
|
+
|
|
14
|
+
Der aktuelle Produktueberblick liegt in [XTendRMT Developer Overview](./xtendrmt-overview.md). Die App-DSL-Details stehen in [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md), die produktive Adapter-/Bridge-Verkabelung in [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md).
|
|
15
|
+
|
|
16
|
+
## Zielzustand
|
|
17
|
+
|
|
18
|
+
Neue Dokumente sollen diese Quellen nutzen:
|
|
19
|
+
|
|
20
|
+
| Bereich | Zielquelle |
|
|
21
|
+
|---------|------------|
|
|
22
|
+
| Host Adapter | `adapters` |
|
|
23
|
+
| XTend Components | `components` mit `adapter: "xtend.component"` |
|
|
24
|
+
| XRouter Routes | `routes` mit `router: "xtend.xrouter"` |
|
|
25
|
+
| Scheduler Policies | `schedules` |
|
|
26
|
+
| Markup oder Fragmente | `templates` |
|
|
27
|
+
| Beschreibung, Handoff, Historie | `manifest.metadata` |
|
|
28
|
+
|
|
29
|
+
`manifest.metadata` bleibt fuer Produktbeschreibung, Handoff-Notizen, Demo-Historie und bewusst historische Pilotdaten gueltig. Operative Routes, Components und Schedules sollen dort nicht neu entstehen. Template-only-Dokumente bleiben kompatibel.
|
|
30
|
+
|
|
31
|
+
## Migrationsmatrix
|
|
32
|
+
|
|
33
|
+
| Ausgangslage | Migration |
|
|
34
|
+
|--------------|-----------|
|
|
35
|
+
| Template-only `.rmt` Dokument | bleibt gueltig; nur bei App-DSL-Bedarf native Domains ergaenzen |
|
|
36
|
+
| `manifest.metadata.routes` | nach `routes` verschieben |
|
|
37
|
+
| `manifest.metadata.components` | nach `components` verschieben |
|
|
38
|
+
| `manifest.metadata.schedules` | nach `schedules` verschieben |
|
|
39
|
+
| XRouter-spezifische Demo-Initialisierung | durch `createRmtXRouterAdapter` ersetzen |
|
|
40
|
+
| XTend-spezifische Demo-Mount-Logik | durch `createRmtXtendComponentAdapter` ersetzen |
|
|
41
|
+
| manuelle Scheduler-/State-Bruecke | durch `createRmtStateSchedulerDiagnosticsBridge` ersetzen |
|
|
42
|
+
| nicht-XTend Host | eigenen Adapter wie `vanilla.component` deklarieren |
|
|
43
|
+
|
|
44
|
+
## Schritt 1: Adapter explizit machen
|
|
45
|
+
|
|
46
|
+
Alte Demo-Metadaten enthalten oft implizites Wissen wie "diese Route nutzt XRouter" oder "diese Component ist XTend". Der erste Migrationsschritt ist ein expliziter Adapter-Record.
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"id": "xtend.component",
|
|
51
|
+
"kind": "component_adapter",
|
|
52
|
+
"runtimeSurface": ["esm", "browser_classic"],
|
|
53
|
+
"providedCapabilities": ["components", "customElements", "hydration", "scheduleRefs"],
|
|
54
|
+
"kernelVisible": false
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`kernelVisible: false` ist fuer host-spezifische Adapterdaten Pflicht. Es bedeutet: Der Kernel darf den Record validieren und indizieren, aber keine XTend-Laufzeit importieren.
|
|
59
|
+
|
|
60
|
+
## Schritt 2: Components aus Metadaten heben
|
|
61
|
+
|
|
62
|
+
Vorher:
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"manifest": {
|
|
67
|
+
"metadata": {
|
|
68
|
+
"components": [
|
|
69
|
+
{
|
|
70
|
+
"id": "settings.card",
|
|
71
|
+
"tag": "x-card"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Nachher:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"components": [
|
|
84
|
+
{
|
|
85
|
+
"id": "settings.card",
|
|
86
|
+
"kind": "custom_element",
|
|
87
|
+
"adapter": "xtend.component",
|
|
88
|
+
"tag": "x-card",
|
|
89
|
+
"schedule": "component.idle.hydrate"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Damit kann `createRmtFormat().createRuntimeRegistries(...)` die Component ueber `componentRegistry.byAdapter["xtend.component"]` bereitstellen.
|
|
96
|
+
|
|
97
|
+
## Schritt 3: Routes aus Metadaten heben
|
|
98
|
+
|
|
99
|
+
Vorher:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"manifest": {
|
|
104
|
+
"metadata": {
|
|
105
|
+
"routes": [
|
|
106
|
+
{
|
|
107
|
+
"path": "/settings",
|
|
108
|
+
"component": "settings.card"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Nachher:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"routes": [
|
|
121
|
+
{
|
|
122
|
+
"id": "settings",
|
|
123
|
+
"path": "/settings",
|
|
124
|
+
"router": "xtend.xrouter",
|
|
125
|
+
"component": "settings.card",
|
|
126
|
+
"template": "settings.shell",
|
|
127
|
+
"schedule": "route.visible.render"
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Damit kann `createRmtXRouterAdapter` die Route ueber `routeRegistry.byRouter["xtend.xrouter"]` mappen und mit `registerRoutes` an XRouter uebergeben.
|
|
134
|
+
|
|
135
|
+
## Schritt 4: Schedules zentralisieren
|
|
136
|
+
|
|
137
|
+
Vorher lagen Endpoint-Hints oft in Route-, Component- oder Template-Metadaten. Nach der Migration steht die Policy zentral in `schedules`.
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"schedules": [
|
|
142
|
+
{
|
|
143
|
+
"id": "route.visible.render",
|
|
144
|
+
"endpointName": "xtendrmt.route.render",
|
|
145
|
+
"lane": "visible",
|
|
146
|
+
"priority": 80,
|
|
147
|
+
"preferIdle": false
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "component.idle.hydrate",
|
|
151
|
+
"endpointName": "xtendrmt.component.hydrate",
|
|
152
|
+
"lane": "idle",
|
|
153
|
+
"priority": 40,
|
|
154
|
+
"preferIdle": true
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Routes und Components referenzieren nur noch `schedule`. Die Ausfuehrung laeuft ueber `createRmtStateSchedulerDiagnosticsBridge`.
|
|
161
|
+
|
|
162
|
+
## Schritt 5: Demo-Brueckenlogik entfernen
|
|
163
|
+
|
|
164
|
+
Dauerhafte Demo-Brueckenlogik soll nicht mehr neue Produktlogik tragen. Ein migrierter Host-Start nutzt die produktiven Factories:
|
|
165
|
+
|
|
166
|
+
```js
|
|
167
|
+
const format = createRmtFormat();
|
|
168
|
+
const normalizedDocument = format.normalizeDocument(document);
|
|
169
|
+
const registry = format.createRuntimeRegistries(normalizedDocument);
|
|
170
|
+
|
|
171
|
+
const routes = createRmtXRouterAdapter({ routerElement }).registerRoutes(registry);
|
|
172
|
+
const components = createRmtXtendComponentAdapter({ document, manifest }).mapComponents(registry);
|
|
173
|
+
const bridge = createRmtStateSchedulerDiagnosticsBridge({ schedules: normalizedDocument.schedules });
|
|
174
|
+
|
|
175
|
+
bridge.recordAdapterResult(routes, { scheduleRef: 'route.visible.render' });
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Wenn Speziallogik weiterhin notwendig ist, gehoert sie in einen Adapter oder in upstream RMT Source, nicht in eine Demo-Datei.
|
|
179
|
+
|
|
180
|
+
## Bestcase-Referenz
|
|
181
|
+
|
|
182
|
+
`xtendrmt/xtendrmt-bestcase-demo.rmt` ist die produktive Authoring-Referenz fuer RMT vNext:
|
|
183
|
+
|
|
184
|
+
- die `.rmt` Datei nutzt `template`, `surface`, `lane`, Lifecycle-Operationen, Slots und Event-Actions statt JSON
|
|
185
|
+
- `xtendrmt/xtendrmt-bestcase-demo.core.json` ist der byte-stabile vNext-Core-Output
|
|
186
|
+
- die Browser-Demo projiziert vNext-Core zur Laufzeit auf `adapters`, `components`, `routes` und `schedules`
|
|
187
|
+
- `createRmtXRouterAdapter`, `createRmtXtendComponentAdapter` und `createRmtStateSchedulerDiagnosticsBridge` bleiben die produktiven Adapterpfade
|
|
188
|
+
- `nativeDemoMigration` wird in der Runtime-Projektion als Handoff-Metadatum erhalten
|
|
189
|
+
|
|
190
|
+
`tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` ist die browsernahe Regression fuer den migrierten Pfad. Sie prueft zusaetzlich `vanilla.component`, damit der Zielzustand framework-agnostisch bleibt.
|
|
191
|
+
|
|
192
|
+
Fuer die offizielle Docs-App gilt: Parsedown bleibt der aktive Markdown-Parser, aber die sichtbare App Shell wird Shell-first aus `docs.app.shell` im RMT-Dokument gerendert. Der RMT-Scheduling- und Shell-Pfad fuer Parsedown, Search und future-ready Media-Slots ist ueber [XTendRMT Parsedown Scheduling Pilot](./xtendrmt-parsedown-scheduling.md) dokumentiert und bleibt host-neutral.
|
|
193
|
+
|
|
194
|
+
## SurfaceManager Migration
|
|
195
|
+
|
|
196
|
+
Ab `WP-SM-09` besitzt der SurfaceManager einen eigenen Migrationsguide: [SurfaceManager Migration Guide](./surface-manager-migration-guide.md) (`docs/surface-manager-migration-guide.md`).
|
|
197
|
+
|
|
198
|
+
Der Surface-Pfad ist additiv:
|
|
199
|
+
|
|
200
|
+
- bestehende `components[*].metadata.surface` Records bleiben gueltig
|
|
201
|
+
- native `surfaces[*]` Records werden fuer komplexe App Shells bevorzugt
|
|
202
|
+
- Dual Records halten `id`, `type`, `manager`, `component`, `route`, `schedule` und `stateKey` synchron
|
|
203
|
+
- `xtend.surface` bleibt `surface_adapter` Handoff, bis eine produktive Adapter Runtime implementiert wird
|
|
204
|
+
|
|
205
|
+
## Was nicht migriert werden muss
|
|
206
|
+
|
|
207
|
+
Nicht jede Datei braucht sofort native Domains.
|
|
208
|
+
|
|
209
|
+
Nicht migrieren:
|
|
210
|
+
|
|
211
|
+
- reine Template-only-Dokumente ohne Routing- oder Component-Bedarf
|
|
212
|
+
- historische Demos mit `manual-legacy` Status
|
|
213
|
+
- Metadaten, die nur Produktbeschreibung oder Handoff-Notizen enthalten
|
|
214
|
+
- React-, Vue-, Vanilla- oder Custom-Hosts, die RMT noch nicht als Scheduler nutzen
|
|
215
|
+
|
|
216
|
+
Migrieren:
|
|
217
|
+
|
|
218
|
+
- neue `.rmt` App-DSL-Dokumente
|
|
219
|
+
- Demo-Code mit operativer Route-/Component-Bridge
|
|
220
|
+
- produktive Route- oder Component-Flows
|
|
221
|
+
- Host-Pfade, die Scheduler Endpoint Policies brauchen
|
|
222
|
+
|
|
223
|
+
## Review-Checkliste
|
|
224
|
+
|
|
225
|
+
Vor Abschluss einer Migration pruefen:
|
|
226
|
+
|
|
227
|
+
- `manifest.metadata.routes -> routes` wurde umgesetzt
|
|
228
|
+
- `manifest.metadata.components -> components` wurde umgesetzt
|
|
229
|
+
- `manifest.metadata.schedules -> schedules` wurde umgesetzt
|
|
230
|
+
- `xtend.xrouter` und `xtend.component` sind Adapter-Records, nicht Kernelwissen
|
|
231
|
+
- `route.visible.render` und `component.idle.hydrate` sind zentrale Policies
|
|
232
|
+
- `createRmtXRouterAdapter`, `createRmtXtendComponentAdapter` und `createRmtStateSchedulerDiagnosticsBridge` ersetzen Demo-Brueckenlogik
|
|
233
|
+
- Template-only-Kompatibilitaet bleibt erhalten
|
|
234
|
+
- React, Vue, Vanilla JS und Custom Hosts werden nicht zur XTend-Migration gezwungen
|
|
235
|
+
- `node scripts/run_xtend_tests.js rmt-compatibility --json` und `node scripts/run_xtend_tests.js references --json` laufen
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
# XTendRMT Native Authoring Guide
|
|
2
|
+
|
|
3
|
+
- Status: produktiv nach Epic 05 Abschluss
|
|
4
|
+
- Contract: `xtend.rmt.native-authoring-guide.v1`
|
|
5
|
+
- Mindestgates:
|
|
6
|
+
- `node scripts/run_xtend_tests.js rmt-compatibility --json`
|
|
7
|
+
- `node scripts/run_xtend_tests.js browser --json`
|
|
8
|
+
- `node scripts/run_xtend_tests.js references --json`
|
|
9
|
+
|
|
10
|
+
## Zweck
|
|
11
|
+
|
|
12
|
+
Dieser Guide beschreibt das produktive Authoring-Modell fuer native `.rmt` Dokumente mit XTend UI und XRouter. Ziel ist, dass Menschen und AI-Agenten native RMT Routes, XTend Components, Adapter und Schedules schreiben koennen, ohne XTend oder XRouter in den RMT Kernel einzubetten.
|
|
13
|
+
|
|
14
|
+
`.rmt` ist der kanonische Dateityp. Server sollten ihn als `application/vnd.xtendrmt.rmt+json` oder kompatibel als Text ausliefern; der Runtime-Loader liest RMT-Dokumente als Text und parst sie ueber `createRmtFormat().parseDocument(...)`. JSON-Endungen bleiben nur fuer Edge-Case-Hosts ohne native MIME-Unterstuetzung vorgesehen.
|
|
15
|
+
|
|
16
|
+
Fuer einen kompakten Produktueberblick siehe [XTendRMT Developer Overview](./xtendrmt-overview.md). Die referenzartige DSL-Beschreibung liegt in [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md); Runtime-Factories und Bridge-Verkabelung liegen in [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md).
|
|
17
|
+
|
|
18
|
+
Die Produktgrenze bleibt:
|
|
19
|
+
|
|
20
|
+
- XTend UI ist das UI-Builder- und Web-Component-Produkt
|
|
21
|
+
- XTendRMT ist Scheduler, Runtime Kernel und Templating Engine
|
|
22
|
+
- XRouter ist der erste produktive Router Adapter
|
|
23
|
+
- XTend Components sind First-Class RMT Components ueber `xtend.component`
|
|
24
|
+
- nicht-XTend Hosts bleiben ueber eigene Adapter gleichberechtigt
|
|
25
|
+
|
|
26
|
+
Ab `WP-E13-09` ist [RMT Production Readiness](./rmt-production-readiness.md) der RC1-Schnitt fuer diesen Pfad. Der Contract `xtend.epic13.rmt-production-readiness.v1` wird lokal ueber `node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json` geprueft und buendelt die bestehenden RMT-, Component-, Fabric- und Telemetry-Gates.
|
|
27
|
+
|
|
28
|
+
Ab Epic 14 ist der native Authoring-Pfad auch toolgestuetzt:
|
|
29
|
+
|
|
30
|
+
- [RMT Linter und AI-Agent Repair Report](./rmt-linter.md) beschreibt `xt rmt lint`, JSON-Reports, `--fail-on` und `--agent`.
|
|
31
|
+
- [RMT Language Server und Editor Setup](./rmt-language-server.md) beschreibt LSP, Snippets und Editor-Anbindung fuer VS Code, JetBrains, Neovim und Helix.
|
|
32
|
+
- `node scripts/run_xtend_tests.js rmt-language-regression --json` prueft valide, defekte, Legacy- und groessere RMT-Dokumente ueber Parser, Linter, CLI, LSP und Agent-Report hinweg.
|
|
33
|
+
|
|
34
|
+
## Minimaler Dokumentaufbau
|
|
35
|
+
|
|
36
|
+
Neue App-DSL-Dokumente nutzen native Top-Level-Domains:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"kind": "rmt_document",
|
|
41
|
+
"version": "1.0",
|
|
42
|
+
"documentId": "app.shell",
|
|
43
|
+
"namespace": "app",
|
|
44
|
+
"adapters": [],
|
|
45
|
+
"components": [],
|
|
46
|
+
"routes": [],
|
|
47
|
+
"schedules": [],
|
|
48
|
+
"surfaces": [],
|
|
49
|
+
"templates": []
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Bestehende Template-only-Dokumente bleiben gueltig. Neue Routing- und Component-Arbeit soll jedoch nicht mehr in `manifest.metadata` versteckt werden.
|
|
54
|
+
|
|
55
|
+
## Adapter
|
|
56
|
+
|
|
57
|
+
Adapter beschreiben Host-Faehigkeiten. Sie sind Daten im RMT Dokument, keine Kernel-Imports.
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"id": "xtend.xrouter",
|
|
62
|
+
"kind": "router_adapter",
|
|
63
|
+
"runtimeSurface": ["esm", "browser_classic"],
|
|
64
|
+
"providedCapabilities": ["routes", "navigation", "params", "query", "scheduleRefs"],
|
|
65
|
+
"kernelVisible": false
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Stabile Adapter-IDs fuer den aktuellen Produktpfad:
|
|
70
|
+
|
|
71
|
+
- `xtend.xrouter` fuer native XRouter Routes
|
|
72
|
+
- `xtend.component` fuer XTend Custom Elements
|
|
73
|
+
- `xtend.surface` fuer native Surface Records als WindowManager-, SidePanel- und Overlay-Handoff
|
|
74
|
+
- `rmt.state-scheduler-diagnostics` fuer Adapter Results, Scheduler Endpoints und Diagnostics
|
|
75
|
+
- `vanilla.component` als Beispiel fuer einen nicht-XTend Component Host
|
|
76
|
+
|
|
77
|
+
## Components
|
|
78
|
+
|
|
79
|
+
Eine Component beschreibt das fachliche Host-Element. XTend-spezifische Arbeit bleibt Adapteraufgabe.
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"id": "settings.card",
|
|
84
|
+
"kind": "custom_element",
|
|
85
|
+
"adapter": "xtend.component",
|
|
86
|
+
"tag": "x-card",
|
|
87
|
+
"schedule": "component.idle.hydrate",
|
|
88
|
+
"props": {
|
|
89
|
+
"label": "Settings"
|
|
90
|
+
},
|
|
91
|
+
"attributes": {
|
|
92
|
+
"data-host": "xtend"
|
|
93
|
+
},
|
|
94
|
+
"hydration": {
|
|
95
|
+
"mode": "runtime_render",
|
|
96
|
+
"ownershipMode": "managed_subtree"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Authoring-Regeln:
|
|
102
|
+
|
|
103
|
+
- `id` ist stabil und route-freundlich.
|
|
104
|
+
- `adapter` referenziert einen Record aus `adapters`.
|
|
105
|
+
- `tag` ist bei Custom Elements erforderlich.
|
|
106
|
+
- `props`, `attributes` und `slots` bleiben explizit.
|
|
107
|
+
- `schedule` referenziert eine Policy aus `schedules`.
|
|
108
|
+
- Manifest Lookup, Custom-Element-Registration, DOM-Erzeugung und Hydration gehoeren zu `createRmtXtendComponentAdapter`.
|
|
109
|
+
|
|
110
|
+
## Routes
|
|
111
|
+
|
|
112
|
+
Eine Route beschreibt Navigation, nicht DOM-Aufbau.
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"id": "settings",
|
|
117
|
+
"path": "/settings",
|
|
118
|
+
"router": "xtend.xrouter",
|
|
119
|
+
"component": "settings.card",
|
|
120
|
+
"template": "settings.shell",
|
|
121
|
+
"schedule": "route.visible.render",
|
|
122
|
+
"query": {
|
|
123
|
+
"tab": "profile"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Authoring-Regeln:
|
|
129
|
+
|
|
130
|
+
- `router` referenziert den Router Adapter.
|
|
131
|
+
- `component` referenziert einen nativen Component Record.
|
|
132
|
+
- `template` bleibt optional, aber empfohlen fuer renderbare Shells.
|
|
133
|
+
- `schedule` steuert Route-Aktivierung ueber eine zentrale Policy.
|
|
134
|
+
- Parameter, Query und Metadata bleiben generisch.
|
|
135
|
+
- XRouter-Mapping, `registerRoutes` und Navigation gehoeren zu `createRmtXRouterAdapter`.
|
|
136
|
+
|
|
137
|
+
## Schedules
|
|
138
|
+
|
|
139
|
+
Schedules sind zentrale Policies. Routes und Components referenzieren sie nur.
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"id": "component.idle.hydrate",
|
|
144
|
+
"endpointName": "xtendrmt.component.hydrate",
|
|
145
|
+
"scope": "app.component.hydrate",
|
|
146
|
+
"lane": "idle",
|
|
147
|
+
"priority": 40,
|
|
148
|
+
"deadlineMs": 420,
|
|
149
|
+
"preferIdle": true,
|
|
150
|
+
"budgetClass": "background"
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Erprobte Policies aus Demo und Browser-Smoke:
|
|
155
|
+
|
|
156
|
+
- `route.visible.render` -> `xtendrmt.route.render`
|
|
157
|
+
- `component.visible.mount` -> `xtendrmt.component.mount`
|
|
158
|
+
- `component.idle.hydrate` -> `xtendrmt.component.hydrate`
|
|
159
|
+
- `vanilla.visible.mount` -> `xtendrmt.vanilla.mount`
|
|
160
|
+
|
|
161
|
+
Die Ausfuehrung und Spiegelung von Scheduler-Ergebnissen gehoert zu `createRmtStateSchedulerDiagnosticsBridge`.
|
|
162
|
+
|
|
163
|
+
## Surfaces
|
|
164
|
+
|
|
165
|
+
Ab `WP-SM-08` koennen komplexe App-Shell-Oberflaechen native `surfaces` Records fuehren:
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"id": "surface.inspector",
|
|
170
|
+
"schema": "xtend.surface.record.v1",
|
|
171
|
+
"type": "window",
|
|
172
|
+
"adapter": "xtend.surface",
|
|
173
|
+
"manager": "workbench.manager",
|
|
174
|
+
"component": "workbench.inspector",
|
|
175
|
+
"route": "workbench",
|
|
176
|
+
"schedule": "surface.user-blocking.open",
|
|
177
|
+
"stateKey": "xtend.surface.inspector.state"
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Authoring-Regeln:
|
|
182
|
+
|
|
183
|
+
- `manager` und `component` referenzieren native Component Records.
|
|
184
|
+
- `route` und `schedule` binden Surface-Sichtbarkeit an App- und Scheduler-Kontext.
|
|
185
|
+
- `components[*].metadata.surface` bleibt als Migrationsquelle gueltig.
|
|
186
|
+
- `xtend.surface` ist in `WP-SM-08` ein Adapter-Handoff, keine produktive Kernel-Runtime.
|
|
187
|
+
- Details liegen in [SurfaceManager Native RMT Surfaces](./surface-manager-native-rmt-surfaces.md).
|
|
188
|
+
- Der abgeschlossene Surface-Authoring-Pfad liegt in [SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md) (`docs/surface-manager-authoring-guide.md`) und beschreibt `component-metadata-mvp`, `dual-record-handoff` und `native-surfaces-preferred`.
|
|
189
|
+
|
|
190
|
+
## Templates
|
|
191
|
+
|
|
192
|
+
Templates bleiben Teil von RMT. Fuer XTend UI sollen sie Host-Daten referenzieren statt versteckte Component-Logik zu enthalten.
|
|
193
|
+
|
|
194
|
+
```json
|
|
195
|
+
{
|
|
196
|
+
"id": "settings.shell",
|
|
197
|
+
"mode": "html_fragment",
|
|
198
|
+
"markup": "<x-card></x-card>",
|
|
199
|
+
"security": {
|
|
200
|
+
"markupClass": "htmlFragment",
|
|
201
|
+
"trustBoundary": "xtend.security.sanitizing-boundary.v1",
|
|
202
|
+
"sink": "trustedDomBoundary"
|
|
203
|
+
},
|
|
204
|
+
"hydration": {
|
|
205
|
+
"mode": "runtime_render",
|
|
206
|
+
"metadata": {
|
|
207
|
+
"endpointHint": "xtendrmt.component.hydrate"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Wenn eine Component eine Route vollstaendig abdeckt, bleibt `template` optional. Wenn Slots oder Shell-Markup benoetigt werden, sollte der Template Record stabil referenziert werden.
|
|
214
|
+
|
|
215
|
+
Security-Regel ab `ER-WP-29`: `dom_descriptor` ist der bevorzugte Modus fuer neue Templates. `html_fragment` bleibt moeglich, ist aber DOM-untrusted und braucht `xtend.security.sanitizing-boundary.v1`. Der RMT Kernel sanitized kein HTML; Host Adapter besitzen den Trusted-DOM-Sink. Siehe [Trusted DOM und Sanitizing](./trusted-dom-sanitizing.md).
|
|
216
|
+
|
|
217
|
+
## Runtime-Verkabelung
|
|
218
|
+
|
|
219
|
+
Der produktive Browser-/ESM-Pfad besteht aus vier Schritten:
|
|
220
|
+
|
|
221
|
+
1. `createRmtFormat().normalizeDocument(document)`
|
|
222
|
+
2. `createRmtFormat().createRuntimeRegistries(normalizedDocument)`
|
|
223
|
+
3. `createRmtXRouterAdapter(...).registerRoutes(registry)`
|
|
224
|
+
4. `createRmtXtendComponentAdapter(...).mountComponent(...)` und `hydrateComponent(...)`
|
|
225
|
+
|
|
226
|
+
Adapter Results koennen anschliessend ueber `createRmtStateSchedulerDiagnosticsBridge(...).recordAdapterResult(...)` an `xstate`, Scheduler und Diagnostics Hub gespiegelt werden.
|
|
227
|
+
|
|
228
|
+
## Authoring Tooling
|
|
229
|
+
|
|
230
|
+
Empfohlener lokaler Ablauf:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
xt rmt lint app.rmt
|
|
234
|
+
xt rmt lint app.rmt --json
|
|
235
|
+
xt rmt lint app.rmt --agent
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Die IDE-Anbindung startet denselben Sprachkern ueber:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
node tools/rmt-language-server/server.js
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Wichtig: Linter, LSP, Code Actions und Agent Report teilen sich den gleichen Diagnosekern. Editor-Packages und AI-Agenten sollen keine eigenen RMT-Regeln implementieren.
|
|
245
|
+
|
|
246
|
+
Neue App-Shells koennen ueber den Snippet-Prefix `rmt-app` gestartet werden. Weitere Prefixes sind `rmt-component`, `rmt-route`, `rmt-schedule`, `rmt-template-dom` und `rmt-template-html`.
|
|
247
|
+
|
|
248
|
+
## Epic-10-App-Authoring
|
|
249
|
+
|
|
250
|
+
Fuer vollstaendige XTend-Apps gilt ab Epic 10 der Contract `xtend.rmt.first-class-app-authoring.v1`. Er erweitert den nativen Authoring-Pfad von einzelnen Routes und Components auf komplette Shell-first Apps:
|
|
251
|
+
|
|
252
|
+
- App Shell als `dom_descriptor`
|
|
253
|
+
- `xtend.component`, `xtend.xrouter` und `rmt.state-scheduler-diagnostics` als Pflichtadapter
|
|
254
|
+
- Component Records mit Props, Attributes, Slots, Events, Fabric- und A11y-Metadaten
|
|
255
|
+
- Route Records mit Component-, Template- und Schedule-Referenzen
|
|
256
|
+
- zentrale Schedule Policies fuer Shell, Route Render, Component Mount, Hydration, User Input, Lazy Media und Diagnostics
|
|
257
|
+
- Kernel Boundary `no-rmt-kernel-import-of-xtend-types`
|
|
258
|
+
|
|
259
|
+
Das Referenz-Fixture liegt in `tests/fixtures/rmt-first-class-xtend-app.rmt`; der lokale Gate ist `node scripts/run_xtend_tests.js rmt-first-class-app --json`.
|
|
260
|
+
|
|
261
|
+
## Fabric/Lane-Ingestion im Component Adapter
|
|
262
|
+
|
|
263
|
+
Der XTend Component Adapter wertet ab `xtend.component.fabric-lane-ingestion.v2` Fabric- und Lane-Hints direkt beim Mounting und bei Hydration aus. Die Precedence ist:
|
|
264
|
+
|
|
265
|
+
1. `rmt.schedule-record`
|
|
266
|
+
2. `rmt.component-metadata`
|
|
267
|
+
3. `fabric.runtime-override`
|
|
268
|
+
4. `component.static-contract`
|
|
269
|
+
5. `scaffold.blueprint-default`
|
|
270
|
+
|
|
271
|
+
Der Adapter stellt dafuer `resolveFabricContext(componentRef, operation, model, options)` bereit. `mountComponent(...)` und `hydrateComponent(...)` spiegeln den Context in `result.metadata.fabric` und setzen DOM-Attribute fuer Lane, RMT-Lane, Fiber, Source und Endpoint. Konflikte erzeugen `rmt.xtend.component.fabric_lane.conflict`.
|
|
272
|
+
|
|
273
|
+
Der lokale Gate ist:
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
node scripts/run_xtend_tests.js rmt-component-fabric-ingestion --json
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Component Lifecycle Telemetry
|
|
280
|
+
|
|
281
|
+
Ab `xtend.component.lifecycle-telemetry.v1` erzeugt derselbe Adapter standardisierte Component Lifecycle Telemetry. `mountComponent(...)` und `hydrateComponent(...)` schreiben `result.metadata.telemetry`; die Event Bridge erzeugt `event` Records; fuer Render, Update, Unmount und Error steht `recordComponentTelemetry(record, options)` bereit.
|
|
282
|
+
|
|
283
|
+
Fabric kann diese Records ueber `createTelemetrySnapshot({ componentTelemetry })` unter `snapshot.componentTelemetry` aggregieren. Component-Fehler, Deadline-Ueberschreitungen und explizite `backpressureSignal` Metadata fliessen in die Backpressure-Sektion ein.
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
node scripts/run_xtend_tests.js rmt-component-lifecycle-telemetry --json
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Aktuelle Artefakte:
|
|
290
|
+
|
|
291
|
+
- `xtendrmt/rmt-core.esm.js`
|
|
292
|
+
- `xtendrmt/rmt-runtime.esm.js`
|
|
293
|
+
- `xtendrmt/rmt-runtime.browser.js`
|
|
294
|
+
- `xtendrmt/rmt-core.d.ts`
|
|
295
|
+
- `xtendrmt/rmt.schema.json`
|
|
296
|
+
- `xtendrmt/rmt-manifest.json`
|
|
297
|
+
|
|
298
|
+
## Multi-Host-Regel
|
|
299
|
+
|
|
300
|
+
Native RMT Components duerfen nicht implizit XTend bedeuten. Ein nicht-XTend Host nutzt denselben Component-Record-Aufbau mit eigener Adapter-ID:
|
|
301
|
+
|
|
302
|
+
```json
|
|
303
|
+
{
|
|
304
|
+
"id": "vanilla-panel",
|
|
305
|
+
"kind": "custom_element",
|
|
306
|
+
"adapter": "vanilla.component",
|
|
307
|
+
"tag": "vanilla-panel",
|
|
308
|
+
"schedule": "vanilla.visible.mount"
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Der Browser-Smoke `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` prueft genau diesen Pfad. Damit ist Framework-Agnostik nicht nur Architekturziel, sondern Regression.
|
|
313
|
+
|
|
314
|
+
## Kernel Boundary
|
|
315
|
+
|
|
316
|
+
Der RMT Kernel darf nicht importieren oder voraussetzen:
|
|
317
|
+
|
|
318
|
+
- `x-router`
|
|
319
|
+
- konkrete `x-*` Komponenten
|
|
320
|
+
- XTend Manifest-Strukturen
|
|
321
|
+
- `window.XTend`
|
|
322
|
+
- `xstate`
|
|
323
|
+
- Browser DOM APIs
|
|
324
|
+
|
|
325
|
+
Der Kernel darf normalisieren, indizieren, validieren und Schedule Policies beschreiben. Host-Ausfuehrung bleibt Adapterarbeit.
|
|
326
|
+
|
|
327
|
+
## Review-Checkliste
|
|
328
|
+
|
|
329
|
+
Vor einem neuen nativen `.rmt` Dokument pruefen:
|
|
330
|
+
|
|
331
|
+
- sind `adapters`, `components`, `routes` und `schedules` Top-Level-Domains?
|
|
332
|
+
- referenzieren Routes nur Component IDs und keine DOM-Details?
|
|
333
|
+
- referenzieren Components nur Adapter IDs und keine Kernel-Sonderfaelle?
|
|
334
|
+
- sind Schedule Policies zentral und wiederverwendbar?
|
|
335
|
+
- bleiben XTend-spezifische Daten `kernelVisible: false`?
|
|
336
|
+
- existiert fuer nicht-XTend Hosts ein eigener Adapter statt XTend-Fallback?
|
|
337
|
+
- laufen `rmt-compatibility`, `browser` und `references` Gates?
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# XTendRMT Developer Overview
|
|
2
|
+
|
|
3
|
+
- Status: aktuell nach Epic 05 Abschluss
|
|
4
|
+
- Contract: `xtend.docs.xtendrmt-overview.v1`
|
|
5
|
+
- Produktversion: `XTendRMT 0.2.0`
|
|
6
|
+
- Kernartefakte:
|
|
7
|
+
- `xtendrmt/rmt-core.esm.js`
|
|
8
|
+
- `xtendrmt/rmt-runtime.esm.js`
|
|
9
|
+
- `xtendrmt/rmt-runtime.browser.js`
|
|
10
|
+
- `xtendrmt/rmt-core.d.ts`
|
|
11
|
+
- `xtendrmt/rmt.schema.json`
|
|
12
|
+
- `xtendrmt/rmt-manifest.json`
|
|
13
|
+
|
|
14
|
+
## Zielbild
|
|
15
|
+
|
|
16
|
+
XTendRMT verbindet zwei Produkte, ohne ihre Grenzen zu verwischen:
|
|
17
|
+
|
|
18
|
+
| Produkt | Rolle |
|
|
19
|
+
|---------|-------|
|
|
20
|
+
| XTend UI | UI Builder und Web-Component-System |
|
|
21
|
+
| XTendRMT | Scheduler, Runtime Kernel und Templating Engine |
|
|
22
|
+
|
|
23
|
+
XTend ist First-Class Host fuer RMT, aber keine Pflichtabhaengigkeit des RMT Kernels. RMT kann XTend Components, XRouter Routes und Scheduler Policies beschreiben und ausfuehren lassen, ohne XTend, XRouter, DOM oder `xstate` in den Kernel einzubetten.
|
|
24
|
+
|
|
25
|
+
## Aktueller Implementierungsstand
|
|
26
|
+
|
|
27
|
+
Epic 05 ist abgeschlossen. Der produktive Pfad besteht aus:
|
|
28
|
+
|
|
29
|
+
- nativen `.rmt` Top-Level-Domains: `adapters`, `components`, `routes`, `schedules`, `templates`
|
|
30
|
+
- Runtime Registry fuer Route- und Component-Indizes
|
|
31
|
+
- XRouter Adapter `createRmtXRouterAdapter`
|
|
32
|
+
- XTend Component Adapter `createRmtXtendComponentAdapter`
|
|
33
|
+
- State-/Scheduler-/Diagnostics Bridge `createRmtStateSchedulerDiagnosticsBridge`
|
|
34
|
+
- ESM- und Browser-Bundles mit Artefakt-Paritaetsgate
|
|
35
|
+
- Browser-Smoke fuer RMT/XRouter/XTend/Vanilla
|
|
36
|
+
|
|
37
|
+
Die wichtigsten Regressionen liegen in:
|
|
38
|
+
|
|
39
|
+
- `tests/fixtures/rmt-app-dsl.native-bridge.rmt`
|
|
40
|
+
- `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html`
|
|
41
|
+
- `xtendrmt/xtendrmt-bestcase-demo.rmt`
|
|
42
|
+
- `xtendrmt-bestcase.html`
|
|
43
|
+
|
|
44
|
+
## Architekturgrenze
|
|
45
|
+
|
|
46
|
+
RMT darf:
|
|
47
|
+
|
|
48
|
+
- `.rmt` Dokumente normalisieren
|
|
49
|
+
- DSL-Domains indizieren
|
|
50
|
+
- Adapter Records validieren
|
|
51
|
+
- Scheduler Policies beschreiben
|
|
52
|
+
- Diagnostics und Reference Graphs erzeugen
|
|
53
|
+
|
|
54
|
+
RMT darf nicht:
|
|
55
|
+
|
|
56
|
+
- `components/xrouter.js` importieren
|
|
57
|
+
- XTend Components importieren
|
|
58
|
+
- `window.XTend` voraussetzen
|
|
59
|
+
- `xstate` direkt schreiben
|
|
60
|
+
- DOM-Mounting im Kernel ausfuehren
|
|
61
|
+
- React, Vue, Vanilla oder Custom Hosts auf XTend migrieren
|
|
62
|
+
|
|
63
|
+
Host-Arbeit gehoert in Adapter. Das ist der Kern der First-Class-Citizen-Strategie: XTend bekommt hochwertige Adapter, aber der Kernel bleibt framework-agnostisch.
|
|
64
|
+
|
|
65
|
+
## Offizielle Entwicklerdokumente
|
|
66
|
+
|
|
67
|
+
| Thema | Dokument |
|
|
68
|
+
|-------|----------|
|
|
69
|
+
| Native Authoring | [XTendRMT Native Authoring Guide](./xtendrmt-native-authoring.md) |
|
|
70
|
+
| Native App-DSL Referenz | [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md) |
|
|
71
|
+
| Runtime Bridge und Adapter | [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md) |
|
|
72
|
+
| Migration aus alten Metadatenpfaden | [XTendRMT Native Migration Guide](./xtendrmt-migration-guide.md) |
|
|
73
|
+
| Docs-App / Parsedown Scheduling | [XTendRMT Parsedown Scheduling Pilot](./xtendrmt-parsedown-scheduling.md) |
|
|
74
|
+
|
|
75
|
+
## Empfohlener lokaler Gate
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
node scripts/run_xtend_tests.js references --json
|
|
79
|
+
node scripts/run_xtend_tests.js rmt-compatibility --json
|
|
80
|
+
node scripts/run_xtend_tests.js browser --json
|
|
81
|
+
node scripts/verify_xtendrmt_artifact_parity.js --json
|
|
82
|
+
npm test
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`references` prueft die offizielle Entwicklerdokumentation, `rmt-compatibility` prueft DSL, Adapter, Bridge und Artefakt-Paritaet, `browser` prueft den browsernahen Multi-Host-Pfad.
|
|
86
|
+
|
|
87
|
+
## Entwicklungsregel
|
|
88
|
+
|
|
89
|
+
Neue RMT-nahe Arbeit soll zuerst klaeren, ob sie Kernel-, DSL-, Adapter-, Host- oder Dokumentationsverantwortung ist. Wenn XTend-spezifisches Verhalten benoetigt wird, entsteht ein Adapter- oder Host-Contract, kein Kernel-Sonderfall.
|