@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,91 @@
|
|
|
1
|
+
# RMT vNext Primitive Lowering
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext.primitive-lowering.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-04`
|
|
5
|
+
- Status: `completed`
|
|
6
|
+
- Source: Media Manager downstream transfer, `2026-05-19`
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
`RMT-VNEXT-PRIM-04` lowers validated vNext primitives from the PRIM-03 semantic graph into deterministic Core, App Platform and Kernel records. App authors stay in RMT vNext; JSON remains compiler output, not the authoring path.
|
|
11
|
+
|
|
12
|
+
The lowering stage is part of the existing vNext compiler:
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
const {
|
|
16
|
+
compileRmtVNextSource
|
|
17
|
+
} = require('./tools/rmt-language/vnext-compiler');
|
|
18
|
+
|
|
19
|
+
const result = compileRmtVNextSource({ text, filePath });
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
For primitive sources, the compiler first builds `buildRmtVNextPrimitiveSemanticGraph(...)`. Error diagnostics from the graph stop lowering with `status: "semantic_error"` and without a Core document.
|
|
23
|
+
|
|
24
|
+
## Core Domains
|
|
25
|
+
|
|
26
|
+
The vNext Core receives additional primitive domains:
|
|
27
|
+
|
|
28
|
+
- `states`
|
|
29
|
+
- `selectors`
|
|
30
|
+
- `actions`
|
|
31
|
+
- `effects`
|
|
32
|
+
- `portals`
|
|
33
|
+
- `overlays`
|
|
34
|
+
- `resources`
|
|
35
|
+
|
|
36
|
+
Existing domains such as `surfaces`, `lanes`, `operations`, `events` and `dataSources` are enriched for primitives instead of creating a second runtime path.
|
|
37
|
+
|
|
38
|
+
## App Platform Artifact
|
|
39
|
+
|
|
40
|
+
When primitives are present, the Core document contains `appPlatform`:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"schema": "xtend.rmt.vnext.app-platform-records.v1",
|
|
45
|
+
"sourceSyntax": "rmt-vnext",
|
|
46
|
+
"surfaces": [],
|
|
47
|
+
"events": [],
|
|
48
|
+
"resources": []
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This artifact is intended for host and scaffold adapters. Host-specific imports, such as lazy component imports, remain visible there and carry `kernelVisible: false`.
|
|
53
|
+
|
|
54
|
+
## Kernel Records
|
|
55
|
+
|
|
56
|
+
For primitive sources, the Core document also contains `kernelRecords`:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"schema": "xtend.rmt.vnext.kernel-records.v1",
|
|
61
|
+
"boundary": "no-rmt-kernel-import-of-host-runtime-types",
|
|
62
|
+
"schedules": [],
|
|
63
|
+
"fibers": [],
|
|
64
|
+
"lifecycleRecords": []
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The Kernel record slice contains lane, fiber, lifecycle, state, selector, action, data source and resource facts without host-runtime imports. This prepares PRIM-05: Fabric can derive lane/fiber evidence from compiler output without the kernel importing Fabric or XTend.
|
|
69
|
+
|
|
70
|
+
## Evidence
|
|
71
|
+
|
|
72
|
+
The compiler suite verifies that:
|
|
73
|
+
|
|
74
|
+
- the positive primitive fixture compiles to state, selector, data source, action, effect, portal, overlay, resource, surface and event records;
|
|
75
|
+
- App Platform artifact and Kernel records are created;
|
|
76
|
+
- keyed surface repeaters and event payload contracts remain intact;
|
|
77
|
+
- host imports stay outside kernel visibility;
|
|
78
|
+
- the negative PRIM-03 fixture stops before lowering with semantic diagnostics;
|
|
79
|
+
- Core JSON remains byte-stable.
|
|
80
|
+
|
|
81
|
+
Targeted local gates:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
node --check tools/rmt-language/vnext-compiler.js
|
|
85
|
+
node --check tests/rmt-language/rmt_vnext_compiler_suite.js
|
|
86
|
+
node -e "const suite=require('./tests/rmt-language/rmt_vnext_compiler_suite'); const result=suite.runRmtVNextCompilerSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## PRIM-06 Follow-up
|
|
90
|
+
|
|
91
|
+
`RMT-VNEXT-PRIM-06` builds on `kernelRecords.schedules` and `kernelRecords.fibers`. The first source-to-sea slice produces evidence that correlates vNext source maps, Kernel schedules, derivable Fabric fibers, UI markers and a browser-smoke fixture under the same primitive ID.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# RMT vNext Primitive Migration
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext.primitive-migration-preview.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-08`
|
|
5
|
+
- Status: `in_progress`
|
|
6
|
+
- Source fixture: `tests/fixtures/rmt-app-platform-tooling.rmt`
|
|
7
|
+
- Local gate: `node scripts/run_xtend_tests.js rmt-vnext-compatibility --json`
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
`RMT-VNEXT-PRIM-08` pushes Legacy and App Platform JSON authoring into the background. Existing App Platform primitive records remain available as compiler targets and compatibility evidence, but the primary authoring surface is RMT vNext.
|
|
12
|
+
|
|
13
|
+
The migration path therefore does not create a new legacy work mode. It creates a vNext preview draft from existing App Platform records and immediately compiles that draft through the vNext compiler again. Only when this draft can lower state, data sources, actions, events, portals, overlays, resources, surfaces, lanes and Kernel records is the migration considered compatible.
|
|
14
|
+
|
|
15
|
+
## Preview and Apply-Plan Contract
|
|
16
|
+
|
|
17
|
+
The API `createAppPlatformPrimitiveMigrationPreview(...)` detects App Platform JSON documents with primitive domains such as `state`, `dataSources`, `actions`, `events`, `portals`, `overlays`, `resources` and `surfaces`.
|
|
18
|
+
|
|
19
|
+
The preview report contains:
|
|
20
|
+
|
|
21
|
+
- `schema: "xtend.rmt.vnext.primitive-migration-preview.v1"`
|
|
22
|
+
- `workpackage: "RMT-VNEXT-PRIM-08"`
|
|
23
|
+
- `languageMode: "legacy-app-platform-json"`
|
|
24
|
+
- `vNextAuthoring.role: "default"`
|
|
25
|
+
- `legacyAuthoring.role: "compiler-target"`
|
|
26
|
+
- `legacyAuthoring.backgrounded: true`
|
|
27
|
+
- `authoringDraft` with vNext primitive syntax
|
|
28
|
+
- `authoringDraftCompileStatus: "compiled"`
|
|
29
|
+
- `projection.appPlatform` and `projection.kernelRecords`
|
|
30
|
+
- `domainMapping` for the detected primitive families
|
|
31
|
+
|
|
32
|
+
Report-only mode writes no source. Instead, it reports `rmt.vnext.migration.opt_in_required` and `rmt.vnext.primitive_migration.preview_available`. Preview mode is deliberately opt-in so existing downstream fixtures are not migrated silently.
|
|
33
|
+
|
|
34
|
+
The API `createAppPlatformPrimitiveMigrationApplyPlan(...)` builds on that and creates a deterministic apply plan:
|
|
35
|
+
|
|
36
|
+
- `schema: "xtend.rmt.vnext.primitive-migration-apply-plan.v1"`
|
|
37
|
+
- `status: "apply-plan-ready"` when the vNext draft compiles and a projection can be produced
|
|
38
|
+
- `status: "blocked"` when JSON parsing or vNext compilation fails
|
|
39
|
+
- `targetPath` as target path hint, by default `<source>.vnext.rmt`
|
|
40
|
+
- `automaticWrite: false`
|
|
41
|
+
- `writePolicy: "manual-apply-only"`
|
|
42
|
+
|
|
43
|
+
The apply plan performs no file write. It is a verifiable handoff for agents, CLIs or editors that want to adopt the vNext draft into a new authoring path after review. Legacy/App Platform JSON remains mirror and compiler target, not the user-facing authoring surface.
|
|
44
|
+
|
|
45
|
+
## Authoring Draft
|
|
46
|
+
|
|
47
|
+
The App Platform fixture is converted into a vNext shell of this shape:
|
|
48
|
+
|
|
49
|
+
```rmt
|
|
50
|
+
template epic18.app-platform-tooling.fixture {
|
|
51
|
+
state items type collection initial []
|
|
52
|
+
|
|
53
|
+
datasource items from fixture records.generic-items {
|
|
54
|
+
contract "domain.record.generic-item.v1[]"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
action load-items {
|
|
58
|
+
effect fetch datasource items
|
|
59
|
+
reduce state.items = result.records
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
portal app root "#app-root" layer surface
|
|
63
|
+
|
|
64
|
+
surface workspace kind window component workspace {
|
|
65
|
+
repeat from datasource items
|
|
66
|
+
portal app
|
|
67
|
+
|
|
68
|
+
lane visible weight 70 {
|
|
69
|
+
hydrate workspace from datasource items
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
on open-detail target ref.row -> action open-detail {
|
|
73
|
+
payload id from detail.id
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The preview normalizes known App Platform prefixes for vNext authoring: `state.items` becomes `state items`, `datasource.items` becomes `datasource items`, `surface.workspace` becomes `surface workspace` and `action.open-detail` becomes `action open-detail`. Runtime and Kernel records remain correlatable through the compiler projection.
|
|
80
|
+
|
|
81
|
+
## Gate Expectation
|
|
82
|
+
|
|
83
|
+
The compatibility gate verifies for PRIM-08 that:
|
|
84
|
+
|
|
85
|
+
- App Platform primitive JSON is detected as `legacy-app-platform-json`.
|
|
86
|
+
- Report-only mode requires explicit preview opt-in.
|
|
87
|
+
- Preview mode creates a vNext draft and compiles it.
|
|
88
|
+
- Apply-plan mode creates the same draft, a target path hint and a blocking compile/parse check without writing files.
|
|
89
|
+
- The projection contains App Platform and Kernel records.
|
|
90
|
+
- Legacy is marked as `compiler-target`, not as the authoring path.
|
|
91
|
+
- The compatibility matrix accepts App Platform preview and native vNext source together.
|
|
92
|
+
|
|
93
|
+
This makes the upgrade rule testable: Legacy remains provably compatible, but the developer experience for new app-shell work lives in vNext.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# RMT vNext Primitive Parser AST
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext-primitive-parser-ast.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-02`
|
|
5
|
+
- Status: `completed`
|
|
6
|
+
- Parent backlog: [RMT vNext Primitive Compiler Backlog](./rmt-vnext-primitives-compiler-backlog.md)
|
|
7
|
+
- Grammar contract: [RMT vNext Primitive Grammar Design](./rmt-vnext-primitive-grammar-design.md)
|
|
8
|
+
- Parser module: `tools/rmt-language/vnext-parser.js`
|
|
9
|
+
- Parser suite: `tests/rmt-language/rmt_vnext_parser_suite.js`
|
|
10
|
+
- Fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
|
|
14
|
+
PRIM-02 extends the existing vNext parser so the primitive syntax defined in PRIM-01 becomes visible as real AST nodes. The slice remains backward-compatible with the previous `template/surface/lane` syntax.
|
|
15
|
+
|
|
16
|
+
Compiler lowering and kernel ingestion remain follow-up work in `RMT-VNEXT-PRIM-04`. The first app graph semantics started in `RMT-VNEXT-PRIM-03`.
|
|
17
|
+
|
|
18
|
+
## Implemented Parser Scope
|
|
19
|
+
|
|
20
|
+
The parser now accepts the design fixture `vnext-primitives-grammar-design.rmt` without syntax diagnostics and creates initial AST nodes for:
|
|
21
|
+
|
|
22
|
+
| Primitive | AST nodes |
|
|
23
|
+
|-----------|-----------|
|
|
24
|
+
| State | `RmtStateDeclaration`, `RmtInitialBlock`, `RmtInitialValueEntry`, `RmtPrimitiveValue`, `RmtTypeReference` |
|
|
25
|
+
| Selector | `RmtSelectorDeclaration`, `RmtSelectorWhereClause`, `RmtSelectorFindClause`, `RmtSelectorSortClause`, `RmtSelectorOutputClause` |
|
|
26
|
+
| DataSource | `RmtDataSourceDeclaration`, `RmtPrimitiveSourceReference`, `RmtDataSourceMethodClause`, `RmtDataSourceContractClause`, `RmtDataSourceResultClause`, `RmtDataSourceFallbackClause` |
|
|
27
|
+
| Action | `RmtActionDeclaration`, `RmtActionInputClause`, `RmtActionStatusClause`, `RmtEffectStatement`, `RmtReducerStatement`, `RmtEmitStatement`, `RmtActionResultHandler` |
|
|
28
|
+
| Portal | `RmtPortalDeclaration`, `RmtPrimitiveAttribute`, `RmtPortalPolicyClause` |
|
|
29
|
+
| Overlay | `RmtOverlayDeclaration`, `RmtOverlayPolicyClause` |
|
|
30
|
+
| Resource | `RmtResourceDeclaration`, `RmtResourceImportClause`, `RmtResourceSourceClause`, `RmtResourceDisposeClause` |
|
|
31
|
+
| Surface | extended `RmtSurfaceDeclaration`, `RmtSurfaceHeaderClause`, `RmtSurfaceSourceClause`, `RmtSurfaceRepeatClause`, `RmtSurfaceKeyClause`, `RmtSurfacePortalClause`, `RmtSurfaceBoundsClause`, `RmtSurfacePreserveClause`, `RmtSurfaceDestroyClause` |
|
|
32
|
+
| Event | extended `RmtEventBinding`, `RmtEventSelector`, `RmtEventPayloadBlock`, `RmtEventPayloadMapping`, `RmtEventOptionClause` |
|
|
33
|
+
|
|
34
|
+
## Parser Boundaries
|
|
35
|
+
|
|
36
|
+
- Selector expressions such as `contains(record.name, state.media.filters.query)` are preserved in PRIM-02 as declarative raw clauses with source range. The semantic operator AST follows in PRIM-03.
|
|
37
|
+
- Action result handlers such as `on success -> reduce ...` keep the effect text and source range. Typed effect nodes follow in PRIM-03/04.
|
|
38
|
+
- The compiler continues to ignore unknown template body nodes so existing vNext Core builds remain stable. Primitive lowering is PRIM-04.
|
|
39
|
+
- The RMT kernel is not ingested in PRIM-02. The source-to-sea gate is PRIM-06.
|
|
40
|
+
|
|
41
|
+
## Verification
|
|
42
|
+
|
|
43
|
+
Direct local checks:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
node --check tools/rmt-language/vnext-parser.js
|
|
47
|
+
node --check tests/rmt-language/rmt_vnext_parser_suite.js
|
|
48
|
+
node -e "const { runRmtVNextParserSuite } = require('./tests/rmt-language/rmt_vnext_parser_suite'); const result = runRmtVNextParserSuite(); process.exit(result.ok ? 0 : 1)"
|
|
49
|
+
node -e "const { runRmtVNextCompilerSuite } = require('./tests/rmt-language/rmt_vnext_compiler_suite'); const result = runRmtVNextCompilerSuite(); process.exit(result.ok ? 0 : 1)"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The global runner `node scripts/run_xtend_tests.js rmt-vnext-parser --json` is currently blocked by existing merge conflict markers in `tests/references/reference_path_suite.js`, because the runner imports this suite at startup.
|
|
53
|
+
|
|
54
|
+
## Handoff
|
|
55
|
+
|
|
56
|
+
- `RMT-VNEXT-PRIM-03`: [RMT vNext Primitive Semantic Graph](./rmt-vnext-primitive-semantic-graph.md)
|
|
57
|
+
builds indexes, references and pre-runtime diagnostics for the primitive AST nodes.
|
|
58
|
+
- `RMT-VNEXT-PRIM-04`: lower primitive AST and semantic graph into Core/App Platform records.
|
|
59
|
+
- Update the Language Server: completions, hover, symbols and code actions for the new node types.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# RMT vNext Primitive Semantic Graph
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext.primitive-semantic-graph.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-03`
|
|
5
|
+
- Status: `completed`
|
|
6
|
+
- Source: Media Manager downstream transfer, `2026-05-19`
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
`RMT-VNEXT-PRIM-03` makes vNext primitives semantically visible before runtime. The parser provides typed AST nodes; the new graph builds indexes, references, diagnostics and completion hints for the App Platform primitives from them.
|
|
11
|
+
|
|
12
|
+
The API is additive:
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
const {
|
|
16
|
+
buildRmtVNextPrimitiveSemanticGraph
|
|
17
|
+
} = require('./tools/rmt-language/semantic-graph');
|
|
18
|
+
|
|
19
|
+
const graph = buildRmtVNextPrimitiveSemanticGraph({ text, filePath });
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The existing `buildSemanticGraph(...)` for Legacy/Core RMT remains stable. The vNext primitive graph is the new handoff between parser and later lowering into Kernel records.
|
|
23
|
+
|
|
24
|
+
## Index Domains
|
|
25
|
+
|
|
26
|
+
The graph creates dedicated domains for:
|
|
27
|
+
|
|
28
|
+
- `states`
|
|
29
|
+
- `selectors`
|
|
30
|
+
- `dataSources`
|
|
31
|
+
- `actions`
|
|
32
|
+
- `surfaces`
|
|
33
|
+
- `portals`
|
|
34
|
+
- `overlays`
|
|
35
|
+
- `resources`
|
|
36
|
+
- `events`
|
|
37
|
+
|
|
38
|
+
Each domain provides `records`, `byId`, `ids` and duplicate diagnostics. In addition, `catalogHints` provides directly usable IDs for completions and docs.
|
|
39
|
+
|
|
40
|
+
## Reference Model
|
|
41
|
+
|
|
42
|
+
PRIM-03 validates the most important vNext primitive edges:
|
|
43
|
+
|
|
44
|
+
- Selector -> State
|
|
45
|
+
- Action Effect -> DataSource
|
|
46
|
+
- Reducer -> State
|
|
47
|
+
- Surface Source/Repeat/Lifecycle -> Selector or State
|
|
48
|
+
- Surface -> Portal
|
|
49
|
+
- Overlay -> Portal
|
|
50
|
+
- Resource -> Owner Surface/Overlay
|
|
51
|
+
- Resource Source -> Selector/State/Resource
|
|
52
|
+
- Surface Destroy -> Resource
|
|
53
|
+
- Event -> Action
|
|
54
|
+
|
|
55
|
+
The references follow the same structure as the existing semantic graph:
|
|
56
|
+
|
|
57
|
+
- `references.records`
|
|
58
|
+
- `references.bySourcePointer`
|
|
59
|
+
- `references.byTargetId`
|
|
60
|
+
- `references.unresolved`
|
|
61
|
+
|
|
62
|
+
This keeps the later language-server path for go-to-definition, references and completion consistent.
|
|
63
|
+
|
|
64
|
+
## Diagnostics
|
|
65
|
+
|
|
66
|
+
PRIM-03 introduces these vNext primitive diagnostics:
|
|
67
|
+
|
|
68
|
+
| Code | Meaning |
|
|
69
|
+
|------|---------|
|
|
70
|
+
| `rmt.vnext.primitive.duplicate-id` | A primitive is defined more than once in the same domain. |
|
|
71
|
+
| `rmt.vnext.primitive.unknown-reference` | A primitive reference cannot be resolved. |
|
|
72
|
+
| `rmt.vnext.primitive.owner-missing` | A resource has no surface or overlay owner. |
|
|
73
|
+
| `rmt.vnext.primitive.unkeyed-repeat` | A surface repeater has no `key` clause. |
|
|
74
|
+
| `rmt.vnext.primitive.payload-contract-missing` | An event or emit leads to a runtime payload without a contract. |
|
|
75
|
+
| `rmt.vnext.primitive.initial-missing` | A state has no initial value. |
|
|
76
|
+
| `rmt.vnext.primitive.resource-kind-missing` | A resource has no `kind`. |
|
|
77
|
+
| `rmt.vnext.primitive.action-reducer-missing` | An action has input, status or effect but no reducer target. |
|
|
78
|
+
| `rmt.vnext.primitive.effect-source-missing` | An `effect fetch` has no data source, selector or resource source. |
|
|
79
|
+
| `rmt.vnext.primitive.unsafe-html` | Unsafe HTML becomes visible without a trust boundary. |
|
|
80
|
+
| `rmt.vnext.primitive.kernel-boundary` | A primitive import violates Kernel/Fabric boundaries. |
|
|
81
|
+
|
|
82
|
+
The negative fixture `tests/rmt-language/fixtures/vnext-primitives-semantic-invalid.rmt` proves cross-reference, ownership, event-payload, repeater and kernel-boundary errors as pre-runtime diagnostics.
|
|
83
|
+
|
|
84
|
+
## Evidence
|
|
85
|
+
|
|
86
|
+
The semantic-graph suite verifies both directions:
|
|
87
|
+
|
|
88
|
+
- `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt` must index as a positive vNext primitive graph without error diagnostics.
|
|
89
|
+
- `tests/rmt-language/fixtures/vnext-primitives-semantic-invalid.rmt` must produce the expected PRIM-03 diagnostics.
|
|
90
|
+
|
|
91
|
+
Targeted local gates:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
node --check tools/rmt-language/semantic-graph.js
|
|
95
|
+
node --check tests/rmt-language/rmt_semantic_graph_suite.js
|
|
96
|
+
node -e "const suite=require('./tests/rmt-language/rmt_semantic_graph_suite'); const result=suite.runRmtSemanticGraphSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Next Handoff
|
|
100
|
+
|
|
101
|
+
`RMT-VNEXT-PRIM-04` uses the new graph as lowering input. The compiler stops primitive sources with semantic errors before Core output and produces deterministic Kernel/App Platform records for valid sources.
|
|
102
|
+
|
|
103
|
+
Handoff: [RMT vNext Primitive Lowering](./rmt-vnext-primitive-lowering.md)
|