@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,102 @@
|
|
|
1
|
+
# RC0 Adoption Guide
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic12.docs-adoption.v1`
|
|
4
|
+
- Report: `xtend.epic12.docs-adoption-report.v1`
|
|
5
|
+
- Workpackage: `WP-E12-15`
|
|
6
|
+
- Local gate: `node scripts/run_xtend_tests.js epic12-docs-adoption --json`
|
|
7
|
+
|
|
8
|
+
This guide is the production-close entry point for teams evaluating XTend after Epic 12 as a release-candidate candidate. It connects the migration notes from long-tail runtime, visual snapshots, design tokens, RMT DSL authoring polish and RC0 gate matrix.
|
|
9
|
+
|
|
10
|
+
RC0 remains a local review candidate. `private-until-release-owner-approval` remains active; a green gate run is not a publish approval.
|
|
11
|
+
|
|
12
|
+
## Migration Notes
|
|
13
|
+
|
|
14
|
+
### Long-Tail Runtime Closure
|
|
15
|
+
|
|
16
|
+
Closed:
|
|
17
|
+
|
|
18
|
+
- `x-tabs`: performance profile, keyboard, browser smoke, theme matrix
|
|
19
|
+
- `x-theme`: a11y, reduced motion, forced colors, performance, theme propagation, density boundary
|
|
20
|
+
- `x-button`: performance budget, interaction budget, Fabric measurement, RMT metadata
|
|
21
|
+
- `x-menu`: performance, keyboard navigation, router compatibility, Fabric measurement, RMT metadata
|
|
22
|
+
|
|
23
|
+
Accepted RC0 residuals:
|
|
24
|
+
|
|
25
|
+
- `xstate`: non-visual boundary probe, `contract-gated`
|
|
26
|
+
- `x-utils`: utility boundary, `typed-contract-gated`
|
|
27
|
+
|
|
28
|
+
These residuals are not hidden blockers. They remain visible because infrastructure modules are not artificially treated as UI shells.
|
|
29
|
+
|
|
30
|
+
### DOM-First Visual Snapshots
|
|
31
|
+
|
|
32
|
+
The RC0 snapshot path is DOM-first:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
node scripts/run_xtend_tests.js visual-snapshots --json
|
|
36
|
+
node scripts/run_xtend_tests.js design-tokens --json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Pixel baselines are optional locally. The reviewable baseline is in `tests/browser/visual-baselines/visual-snapshots.dom-baseline.json`.
|
|
40
|
+
|
|
41
|
+
### Design Token Productization
|
|
42
|
+
|
|
43
|
+
New components and RMT shells use the `--xtend-*` token line. Theme packs, density packs, high contrast, forced colors and CSS parts are public styling surfaces and need migration notes when they change.
|
|
44
|
+
|
|
45
|
+
### RMT DSL Authoring Polish
|
|
46
|
+
|
|
47
|
+
New RMT app documents can author shells, routes, links, outlets, components, slots, commands, hydration and lanes through the DSL polish layer. XTendRMT remains framework-agnostic: the kernel imports no XTend types and no XRouter implementation.
|
|
48
|
+
|
|
49
|
+
### RC0 Gate Matrix
|
|
50
|
+
|
|
51
|
+
Before owner review:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
node scripts/run_xtend_tests.js epic12-docs-adoption --json
|
|
55
|
+
node scripts/run_xtend_tests.js rc0-gate-matrix --json
|
|
56
|
+
npm run test:release:full:report
|
|
57
|
+
npm run pack:dry-run
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Conditional network gates:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm audit --audit-level=moderate
|
|
64
|
+
npm sbom --sbom-format=cyclonedx --json
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If network access is unavailable, RC0 remains locally reviewable; publishing remains blocked.
|
|
68
|
+
|
|
69
|
+
## Component Author Checklist
|
|
70
|
+
|
|
71
|
+
| Check | Required |
|
|
72
|
+
|-------|----------|
|
|
73
|
+
| use `xtend-loader.js` and local manifest | yes |
|
|
74
|
+
| document types, events, a11y and performance | yes |
|
|
75
|
+
| treat design tokens and CSS parts as public API | yes |
|
|
76
|
+
| set Fabric lanes and RMT schedule hints correctly | yes |
|
|
77
|
+
| check snapshot and theme matrix impact | yes |
|
|
78
|
+
| mark breaking changes with migration notes | yes |
|
|
79
|
+
|
|
80
|
+
## App Author Checklist
|
|
81
|
+
|
|
82
|
+
| Check | Required |
|
|
83
|
+
|-------|----------|
|
|
84
|
+
| describe app shell shell-first in RMT where possible | yes |
|
|
85
|
+
| route XRouter routes through native RMT `routes` records | yes |
|
|
86
|
+
| treat Parsedown, rich HTML or media as scheduled content components | yes |
|
|
87
|
+
| check Trusted DOM boundary for `html_fragment` | yes |
|
|
88
|
+
| run `rmt-dsl-authoring-polish` and `docs-rmt-pilot` for RMT paths | yes |
|
|
89
|
+
|
|
90
|
+
## Known Residual Policy
|
|
91
|
+
|
|
92
|
+
RC0 accepts:
|
|
93
|
+
|
|
94
|
+
- `xstate`
|
|
95
|
+
- `x-utils`
|
|
96
|
+
- `xtend.component.hydrate`
|
|
97
|
+
|
|
98
|
+
The hydration warning remains accepted as long as it stays below the failure threshold and below `maxWarningCount = 2`. Failures are not allowed.
|
|
99
|
+
|
|
100
|
+
## Handoff to WP-E12-16
|
|
101
|
+
|
|
102
|
+
`WP-E12-16` used this guide, the [RC0 Gate Matrix](./rc0-gate-matrix.md), the Package Dry Run, the Conditional Network Gates and the Known Residual Policy to build the [Epic 12 RC0 Handoff](./epic12-rc0-handoff.md) for release owners.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# RC0 Gate Matrix
|
|
2
|
+
|
|
3
|
+
`xtend.epic12.rc0-gate-matrix.v1` describes XTend's first release-candidate-capable gate interface. RC0 is a local review candidate, not a publish.
|
|
4
|
+
|
|
5
|
+
Local self check:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node scripts/run_xtend_tests.js rc0-gate-matrix --json
|
|
9
|
+
npm run test:rc0-gate-matrix
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Required Gates
|
|
13
|
+
|
|
14
|
+
| Area | Command |
|
|
15
|
+
|------|---------|
|
|
16
|
+
| PR Fast | `npm run test:pr:report` |
|
|
17
|
+
| Full Release | `npm run test:release:full:report` |
|
|
18
|
+
| Snapshot Gate | `node scripts/run_xtend_tests.js component-shell-theme-matrix visual-snapshot-automation visual-snapshots design-tokens --json` |
|
|
19
|
+
| RMT Authoring Gate | `node scripts/run_xtend_tests.js rmt-shell-authoring-ux rmt-first-class-app rmt-first-demo-app docs-rmt-pilot rmt-dsl-authoring-polish --json` |
|
|
20
|
+
| Package Dry Run | `npm run pack:dry-run` |
|
|
21
|
+
| Matrix Self Check | `node scripts/run_xtend_tests.js rc0-gate-matrix --json` |
|
|
22
|
+
|
|
23
|
+
## Snapshot and Design Tokens
|
|
24
|
+
|
|
25
|
+
The snapshot gate uses `visual-snapshots` and `design-tokens`. Pixel baselines remain optional; the reviewable RC0 basis is the DOM baseline at `tests/browser/visual-baselines/visual-snapshots.dom-baseline.json`.
|
|
26
|
+
|
|
27
|
+
## RMT Authoring
|
|
28
|
+
|
|
29
|
+
The RMT authoring gate connects shell authoring, RMT-first apps, Docs Parsedown scheduling and the new `rmt-dsl-authoring-polish` gate. This makes it checkable that XTend UI, XRouter and XTendRMT work together without importing XTend types into the RMT kernel.
|
|
30
|
+
|
|
31
|
+
## Conditional Network Gates
|
|
32
|
+
|
|
33
|
+
Before publish, network gates must run or be intentionally deferred in the handoff:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm audit --audit-level=moderate
|
|
37
|
+
npm sbom --sbom-format=cyclonedx --json
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
These gates are not part of the local default runner.
|
|
41
|
+
|
|
42
|
+
## Known Residual Policy
|
|
43
|
+
|
|
44
|
+
RC0 currently accepts:
|
|
45
|
+
|
|
46
|
+
- `xstate` as a `contract-gated` non-visual boundary probe
|
|
47
|
+
- `x-utils` as a `typed-contract-gated` utility boundary
|
|
48
|
+
- the known performance warning `xtend.component.hydrate` as long as it stays below the failure threshold
|
|
49
|
+
|
|
50
|
+
`private-until-release-owner-approval` remains active. Even a green RC0 gate run does not mean publish approval.
|
|
51
|
+
|
|
52
|
+
## Migration and Adoption
|
|
53
|
+
|
|
54
|
+
The operational docs for teams have lived in the [RC0 Adoption Guide](./rc0-adoption-guide.md) since `WP-E12-15`. It brings together long-tail runtime closure, DOM-first snapshot baseline, design-token productization, RMT DSL authoring polish, known residual policy and migration notes for component authors and app authors.
|
|
55
|
+
|
|
56
|
+
The final owner handoff has lived under [Epic 12 RC0 Handoff](./epic12-rc0-handoff.md) since `WP-E12-16`. It sets the Epic 12 status to `ready-for-release-owner-review-not-publish` and keeps publishing blocked until Release Owner Acceptance.
|
|
57
|
+
|
|
58
|
+
Canonical path: `docs/rc0-adoption-guide.md`.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# RC1 Gate Matrix and CI Handoff
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic13.rc1-gate-matrix-ci-handoff.v1`
|
|
4
|
+
|
|
5
|
+
Status: `accepted-rc1-gate-matrix-ci-handoff`
|
|
6
|
+
|
|
7
|
+
Workpackage: `WP-E13-13`
|
|
8
|
+
|
|
9
|
+
DPF package: `DPF-WP-01-rc1-gate-matrix-ci-handoff`
|
|
10
|
+
|
|
11
|
+
## Goal
|
|
12
|
+
|
|
13
|
+
The RC1 Gate Matrix bundles the Epic 13 evidence into a local, network-free handoff for CI maintainers and release owners. The gate does not check the productive network runs themselves, but whether their evidence paths, deferral rules, reports and owner metadata are registered.
|
|
14
|
+
|
|
15
|
+
## Local Gate
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/run_xtend_tests.js epic13-rc1-gate-matrix-ci-handoff --json
|
|
19
|
+
npm run test:epic13-rc1-gate-matrix-ci-handoff
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The report writes to `.xtend-test-results/xtend-epic13-rc1-gate-matrix-ci-handoff-report.json` during aggregate runs and uses `xtend.epic13.rc1-gate-matrix-ci-handoff-report.v1`.
|
|
23
|
+
|
|
24
|
+
## Source Gates
|
|
25
|
+
|
|
26
|
+
- `npm run test:epic13-rc1-readiness`
|
|
27
|
+
- `npm run test:epic13-release-owner-acceptance`
|
|
28
|
+
- `npm run test:epic13-conditional-network-evidence`
|
|
29
|
+
- `npm run test:epic13-package-export-lock`
|
|
30
|
+
- `npm run test:epic13-known-residual-triage`
|
|
31
|
+
- `npm run test:epic13-hydration-performance-closure`
|
|
32
|
+
- `npm run test:epic13-prod-browser-csp-smoke`
|
|
33
|
+
- `npm run test:epic13-visual-owner-artifact`
|
|
34
|
+
- `npm run test:epic13-rmt-production-readiness`
|
|
35
|
+
- `npm run test:epic13-docs-rmt-production-hardening`
|
|
36
|
+
- `npm run test:epic13-trusted-dom-boundary`
|
|
37
|
+
- `npm run test:epic13-rc1-migration-notes`
|
|
38
|
+
|
|
39
|
+
## CI Lanes
|
|
40
|
+
|
|
41
|
+
| Lane | Purpose | Report |
|
|
42
|
+
|------|---------|--------|
|
|
43
|
+
| `pr-fast` | PR feedback with TypeExports drift handoff | `.xtend-test-results/xtend-pr-gate-report.json` |
|
|
44
|
+
| `rc1-full-release` | complete RC1 release-gate matrix | `.xtend-test-results/xtend-release-gate-report.json` |
|
|
45
|
+
| `conditional-network-evidence` | audit/SBOM execution or owner deferral | `.xtend-test-results/xtend-conditional-network-evidence-report.json` |
|
|
46
|
+
| `owner-handoff` | release-owner interface for all Epic 13 gates | `.xtend-test-results/xtend-epic13-rc1-gate-matrix-ci-handoff-report.json` |
|
|
47
|
+
|
|
48
|
+
## Release Owner Evidence
|
|
49
|
+
|
|
50
|
+
[Release Report and Pack Dry Run Evidence](./release-report-pack-dry-run-evidence.md) adds `xtend.epic13.release-report-pack-dry-run-evidence.v1` to the handoff and writes `.xtend-test-results/xtend-epic13-release-report-pack-dry-run-evidence-report.json`.
|
|
51
|
+
|
|
52
|
+
[Conditional Network Evidence CI](./conditional-network-evidence-ci.md) adds `xtend.epic13.conditional-network-evidence-ci.v1`, the CI job `conditional-network-evidence` and `.xtend-test-results/xtend-epic13-conditional-network-evidence-ci-report.json` to the handoff.
|
|
53
|
+
|
|
54
|
+
## Publish Boundary
|
|
55
|
+
|
|
56
|
+
`publishAllowed` remains `false`; `packagePrivateRequired` remains `true`. Network-based gates may only be referenced locally as `executed-or-owner-deferral`. `WP-E13-14` takes over from here for the final Epic 13 closure review and RC1 handoff.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# RC1 Migration Notes
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic13.rc1-migration-notes-semver.v1`
|
|
4
|
+
|
|
5
|
+
WP-E13-12 prepares consumer communication for the first RC1 candidate. The applied state is `0.1.0-rc.1`; the package boundary is opened to `private: false` for RC1 publish prep. The actual publish command remains a separate manual owner step.
|
|
6
|
+
|
|
7
|
+
## SemVer
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| Current Version | `0.1.0-rc.1` |
|
|
12
|
+
| Proposed Version | `0.1.0-rc.1` |
|
|
13
|
+
| Classification | `minor-pre-1.0-release-candidate` |
|
|
14
|
+
| Publish | prepared, `private: false`; `npm publish` not executed |
|
|
15
|
+
|
|
16
|
+
## Migration Sections
|
|
17
|
+
|
|
18
|
+
### loader-local-esm-cdn-free
|
|
19
|
+
|
|
20
|
+
XTend apps should use local ESM loader paths. Deprecated CDN bootstraps, especially old `xstate` references, do not belong in RC1-close apps.
|
|
21
|
+
|
|
22
|
+
### package-export-surface
|
|
23
|
+
|
|
24
|
+
The Package Export Lock is the binding public surface. New tooling exports, including `./catalog/epic13-rc1-migration-notes`, must appear in the export lock, README, changelog and release gates.
|
|
25
|
+
|
|
26
|
+
### rmt-first-app-authoring
|
|
27
|
+
|
|
28
|
+
RMT is the shell-first app authoring path. XTend components are connected through adapters; the RMT kernel imports no XTend types.
|
|
29
|
+
|
|
30
|
+
### docs-rmt-parsedown-shell
|
|
31
|
+
|
|
32
|
+
Parsedown is a schedulable docs component inside the RMT shell. Rich HTML or multimedia slots can later be orchestrated alongside it.
|
|
33
|
+
|
|
34
|
+
### trusted-dom-boundary
|
|
35
|
+
|
|
36
|
+
`dom_descriptor` remains preferred. `html_fragment` and Parsedown HTML must pass through `xtend.security.trusted-dom-sanitizer.v1` before DOM sinks.
|
|
37
|
+
|
|
38
|
+
### fabric-lanes-telemetry
|
|
39
|
+
|
|
40
|
+
Fabric, lanes and RMT lane mapping are the preferred bridge for telemetry and scheduler signals in components.
|
|
41
|
+
|
|
42
|
+
### component-typescript-and-dts
|
|
43
|
+
|
|
44
|
+
Component types and `.d.ts` files are part of the consumer contract. App code should consume these types instead of implicit DOM conventions.
|
|
45
|
+
|
|
46
|
+
### known-residuals-and-watchpoints
|
|
47
|
+
|
|
48
|
+
`xstate` and `x-utils` remain boundary contracts. The old hydration watchpoint is closed, but should remain visible in RC1 gates.
|
|
49
|
+
|
|
50
|
+
### visual-owner-artifacts
|
|
51
|
+
|
|
52
|
+
Visual proofs remain owner-reviewable. Local gates may remain static; CI or release owners can provide screenshots as artifacts.
|
|
53
|
+
|
|
54
|
+
### conditional-network-evidence
|
|
55
|
+
|
|
56
|
+
Audit and SBOM are either executed or explicitly owner-deferred. Without evidence or deferral, there is no publish approval.
|
|
57
|
+
|
|
58
|
+
### publish-boundary
|
|
59
|
+
|
|
60
|
+
`private: false` is set for RC1 publish prep. Automatic publish remains blocked; the final `npm publish` still requires the manual owner command.
|
|
61
|
+
|
|
62
|
+
## Local Gate
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
node scripts/run_xtend_tests.js epic13-rc1-migration-notes --json
|
|
66
|
+
npm run test:epic13-rc1-migration-notes
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The direct handoff from this package was `WP-E13-13` with `rc1-gate-matrix-ci-handoff`; the corresponding gate matrix is now documented under [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# RC1 Readiness
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic13.rc1-production-readiness.v1`
|
|
4
|
+
- Report: `xtend.epic13.rc1-readiness-report.v1`
|
|
5
|
+
- Workpackage: `WP-E13-01`
|
|
6
|
+
- Local gate: `node scripts/run_xtend_tests.js epic13-rc1-readiness --json`
|
|
7
|
+
- Target state: `rc1-production-candidate-ready`
|
|
8
|
+
|
|
9
|
+
RC1 carries the RC0 handoff into a release candidate that is closer to production. The status does not mean publish. `private-until-release-owner-acceptance` remains active.
|
|
10
|
+
|
|
11
|
+
## What RC1 Must Make Checkable
|
|
12
|
+
|
|
13
|
+
| Area | RC1 obligation |
|
|
14
|
+
|------|----------------|
|
|
15
|
+
| Release Owner Acceptance | formal contract with accepted, deferred and blocked decisions |
|
|
16
|
+
| Conditional Network Gates | run `npm audit --audit-level=moderate` and `npm sbom --sbom-format=cyclonedx --json`, or document owner deferral |
|
|
17
|
+
| Package Dry Run | check package content and export surface in a machine-readable way |
|
|
18
|
+
| Known Residuals | `xstate` and `x-utils` are closed; `xtend.component.hydrate` is closed without owner dependency in `WP-E13-06` |
|
|
19
|
+
| Browser/CSP | production-close same-origin, nonce and loader smokes are prepared under [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md) |
|
|
20
|
+
| Visual Evidence | keep DOM-first snapshots and normalize optional screenshot/pixels artifact under [Visual Owner Artifacts](./visual-owner-artifacts.md) |
|
|
21
|
+
| RMT Apps | bundle RMT-first app shell, routing, components, Fabric, lanes and diagnostics |
|
|
22
|
+
| Docs app | Parsedown remains an orchestrated component inside an RMT shell |
|
|
23
|
+
| Trusted DOM | Parsedown/RMT HTML boundary checked close to the browser |
|
|
24
|
+
| Migration Notes | prepare RC1 SemVer and changelog decision |
|
|
25
|
+
|
|
26
|
+
## Baseline Gates
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node scripts/run_xtend_tests.js epic13-rc1-readiness --json
|
|
30
|
+
node scripts/run_xtend_tests.js epic12-rc0-handoff --json
|
|
31
|
+
node scripts/run_xtend_tests.js rc0-gate-matrix --json
|
|
32
|
+
node scripts/run_xtend_tests.js references --json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Feature Drift
|
|
36
|
+
|
|
37
|
+
Not part of RC1:
|
|
38
|
+
|
|
39
|
+
- embedding XTend into the RMT kernel
|
|
40
|
+
- bringing CDN fallbacks back into default paths
|
|
41
|
+
- building new product features without a production-readiness purpose
|
|
42
|
+
- automatically opening `private: true`
|
|
43
|
+
|
|
44
|
+
## Handoff
|
|
45
|
+
|
|
46
|
+
`WP-E13-02` is complete and documents the Release Owner Acceptance contract under [Release Owner Acceptance](./release-owner-acceptance.md). `WP-E13-03` is also complete and documents the Conditional Network Evidence under [Conditional Network Evidence](./conditional-network-evidence.md). `WP-E13-04` is complete and documents the Package Export Lock under [Package Export Lock](./package-export-lock.md). `WP-E13-05` is complete and documents the Known Residual Triage under [Known Residual Triage](./known-residual-triage.md). `WP-E13-06` is complete and documents the [Hydration Performance Closure](./hydration-performance-closure.md). `WP-E13-07` is complete and documents the [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md). `WP-E13-08` is complete and documents `xtend.epic13.visual-owner-artifact.v1` under [Visual Owner Artifacts](./visual-owner-artifacts.md). `WP-E13-09` is complete and documents `xtend.epic13.rmt-production-readiness.v1` under [RMT Production Readiness](./rmt-production-readiness.md). `WP-E13-10` is complete and documents `xtend.epic13.docs-rmt-production-hardening.v1` under [Docs RMT Production Hardening](./docs-rmt-production-hardening.md). `WP-E13-11` is complete and documents `xtend.epic13.trusted-dom-boundary.v1` under [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md). `WP-E13-12` is complete and documents `xtend.epic13.rc1-migration-notes-semver.v1` under [RC1 Migration Notes](./rc1-migration-notes.md). `WP-E13-13` is complete and documents `xtend.epic13.rc1-gate-matrix-ci-handoff.v1` under [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md). `WP-E13-14` is ready for the final Epic 13 closure review.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Release Owner Acceptance
|
|
2
|
+
|
|
3
|
+
`xtend.epic13.release-owner-acceptance.v1` describes the first RC1 owner interface after the RC1 Readiness Model.
|
|
4
|
+
|
|
5
|
+
Local gate:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node scripts/run_xtend_tests.js epic13-release-owner-acceptance --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
or:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm run test:epic13-release-owner-acceptance
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What the Contract Defines
|
|
18
|
+
|
|
19
|
+
- Release Owner Acceptance is a review contract, not a publish approval.
|
|
20
|
+
- `private-until-release-owner-acceptance` remains active.
|
|
21
|
+
- `publishAllowed` remains `false`.
|
|
22
|
+
- `automaticPublishApproval` remains `false`.
|
|
23
|
+
- Owner decisions use `accepted`, `deferred` and `blocked`.
|
|
24
|
+
|
|
25
|
+
## Checklist Model
|
|
26
|
+
|
|
27
|
+
| Status | Use |
|
|
28
|
+
|--------|-----|
|
|
29
|
+
| `accepted` | baseline is accepted as a review basis |
|
|
30
|
+
| `deferred` | open evidence is visible and has a target package |
|
|
31
|
+
| `blocked` | decision must not happen automatically |
|
|
32
|
+
|
|
33
|
+
The intentionally blocked entry is `automatic-publish-approval`. A green test run therefore remains a review signal, not a publish signal.
|
|
34
|
+
|
|
35
|
+
## Current Handoff
|
|
36
|
+
|
|
37
|
+
`WP-E13-03` prepared the Conditional Network Gate Evidence under [Conditional Network Evidence](./conditional-network-evidence.md) with `xtend.epic13.conditional-network-evidence.v1`:
|
|
38
|
+
|
|
39
|
+
- `npm audit --audit-level=moderate`
|
|
40
|
+
- `npm sbom --sbom-format=cyclonedx --json`
|
|
41
|
+
|
|
42
|
+
If these gates cannot run locally because of sandbox, network or policy, a structured owner deferral is created.
|
|
43
|
+
|
|
44
|
+
`WP-E13-04` completed the [Package Export Lock](./package-export-lock.md) with `xtend.epic13.package-export-lock.v1`. `WP-E13-05` completed the [Known Residual Triage](./known-residual-triage.md) with `xtend.epic13.known-residual-triage.v1`. `WP-E13-06` completed the [Hydration Performance Closure](./hydration-performance-closure.md) with `xtend.epic13.hydration-performance-closure.v1`. `WP-E13-07` completed the [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md) with `xtend.epic13.prod-browser-csp-smoke.v1`. `WP-E13-08` normalized [Visual Owner Artifacts](./visual-owner-artifacts.md) with `xtend.epic13.visual-owner-artifact.v1`.
|
|
45
|
+
|
|
46
|
+
The checklist entry `known-residual-renewal` is therefore `accepted`: `xstate` and `x-utils` are boundary contracts, `xtend.component.hydrate` is closed without owner dependency. The checklist entry `visual-owner-artifact` is `accepted`; `rmt-production-readiness` has also been `accepted` since `WP-E13-09` and `xtend.epic13.rmt-production-readiness.v1`. `docs-rmt-production-hardening` has been accepted since `WP-E13-10` and `xtend.epic13.docs-rmt-production-hardening.v1`. `prod-browser-csp-smoke` and `trusted-dom-boundary` have been accepted since `WP-E13-11`; the Trusted DOM evidence is under [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) and `xtend.epic13.trusted-dom-boundary.v1`. `rc1-migration-notes` has been accepted since `WP-E13-12`; the evidence is under [RC1 Migration Notes](./rc1-migration-notes.md) and `xtend.epic13.rc1-migration-notes-semver.v1`. `rc1-gate-matrix-ci-handoff` has been accepted since `WP-E13-13`; the evidence is under [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md) and `xtend.epic13.rc1-gate-matrix-ci-handoff.v1`. The next handoff goes to `WP-E13-14`.
|
|
47
|
+
|
|
48
|
+
Further reading: [RC1 Readiness](./rc1-readiness.md).
|
|
49
|
+
|
|
50
|
+
## RC1 Test-Build Acceptance
|
|
51
|
+
|
|
52
|
+
`RC1TB-WP-08` concretizes the owner interface for the first local RC1 test build in `development/XTend-RC1-Test-Build-Owner-Acceptance.md` under `xtend.rc1.test-build-owner-acceptance.v1`.
|
|
53
|
+
|
|
54
|
+
The decision for this interface is `accepted-for-internal-test-build-not-publish`: the test build may be used internally against the documented gate reports, the RMT vNext Reference Demo and the XTendRMT Bestcase Demo. `npm-audit-moderate` and `npm-sbom-json` were executed and accepted in the owner publish step; version `0.1.0-rc.1` and `private: false` are set for publish prep, while `automaticPublishApproval: false` remains active.
|
|
55
|
+
|
|
56
|
+
The separate owner publish decision is created in `development/XTend-RC1-Release-Owner-Publish-Decision.md` under `xtend.rc1.release-owner-publish-decision.v1`. Its current state is `accepted-for-publish-prep`; the actual publish command was not executed. The license decision for the complete stack is `Apache-2.0`; audit and SBOM are accepted.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Release Report and Pack Dry Run Evidence
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic13.release-report-pack-dry-run-evidence.v1`
|
|
4
|
+
|
|
5
|
+
Status: `accepted-release-report-pack-dry-run-evidence`
|
|
6
|
+
|
|
7
|
+
Workpackage: `DPF-WP-02-release-report-pack-dry-run`
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
This package turns `release:report` and `pack:dry-run` into reproducible release-owner evidence. Both commands remain local and network-free; audit/SBOM, public publish and the license decision remain follow-up packages.
|
|
12
|
+
|
|
13
|
+
## Local Gate
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
node scripts/run_xtend_tests.js epic13-release-report-pack-dry-run-evidence --json
|
|
17
|
+
npm run test:epic13-release-report-pack-dry-run-evidence
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Evidence Commands
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm run release:report
|
|
24
|
+
npm run pack:dry-run
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
`npm run release:report` writes `.xtend-test-results/xtend-release-report.json`.
|
|
28
|
+
|
|
29
|
+
`npm run pack:dry-run` writes:
|
|
30
|
+
|
|
31
|
+
- `.xtend-test-results/xtend-pack-dry-run.json`
|
|
32
|
+
- `.xtend-test-results/xtend-package-export-surface-lock.json`
|
|
33
|
+
- `.xtend-test-results/xtend-package-export-lock-report.json`
|
|
34
|
+
|
|
35
|
+
The raw npm text run remains available through `npm run pack:dry-run:raw`.
|
|
36
|
+
|
|
37
|
+
## RC1 Handoff
|
|
38
|
+
|
|
39
|
+
The evidence is referenced in the RC1 handoff under `xtend.epic13.rc1-gate-matrix-ci-handoff.v1`. The DPF-WP-02 report uses `.xtend-test-results/xtend-epic13-release-report-pack-dry-run-evidence-report.json` and hands off to `DPF-WP-03` [Conditional Network Evidence CI](./conditional-network-evidence-ci.md) with `xtend.epic13.conditional-network-evidence-ci.v1`.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# RMT Action Effect Runtime
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-action-effect-runtime.v1`
|
|
4
|
+
- Workpackage: `WP-E18-08`
|
|
5
|
+
- Runtime: `xtendrmt/rmt-action-effect-runtime.js`
|
|
6
|
+
- Types: `xtendrmt/rmt-action-effect-runtime.d.ts`
|
|
7
|
+
- Fixture: `tests/fixtures/rmt-action-effect-runtime.rmt`
|
|
8
|
+
- Local gate: `node scripts/run_xtend_tests.js rmt-action-effect-runtime --json`
|
|
9
|
+
- Next: `WP-E18-09`
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
The Action Effect Runtime turns common app flows into native RMT platform
|
|
14
|
+
primitives. Apps can load fixture, REST, SSR or host-adapter data; update typed
|
|
15
|
+
state; publish feedback; navigate; focus controls; lazy-load modules; and own
|
|
16
|
+
resources without product-local action frameworks.
|
|
17
|
+
|
|
18
|
+
The runtime is deliberately domain-neutral. It does not define product surfaces
|
|
19
|
+
or record taxonomies. Developers provide their own actions, contracts, adapters,
|
|
20
|
+
effects and resources.
|
|
21
|
+
|
|
22
|
+
## DataSources
|
|
23
|
+
|
|
24
|
+
Supported datasource kinds:
|
|
25
|
+
|
|
26
|
+
- `fixture`: returns static fixture records for local app fixtures and tests.
|
|
27
|
+
- `rest`: calls an injected adapter with an endpoint and payload.
|
|
28
|
+
- `ssr`: reads a prehydrated payload and can project it with `resultPath`.
|
|
29
|
+
- `host`: calls an explicit host adapter for mutations or platform commands.
|
|
30
|
+
|
|
31
|
+
Runtime code never reaches for global network APIs directly. REST and host work
|
|
32
|
+
through injected adapters so browser, server, test and shell environments can
|
|
33
|
+
choose their own transport policy.
|
|
34
|
+
|
|
35
|
+
## Actions
|
|
36
|
+
|
|
37
|
+
An action can declare:
|
|
38
|
+
|
|
39
|
+
- `datasource`
|
|
40
|
+
- `resultState`
|
|
41
|
+
- `loadingState`
|
|
42
|
+
- `statusState`
|
|
43
|
+
- `effects`
|
|
44
|
+
- `resources`
|
|
45
|
+
- `resourceOwner`
|
|
46
|
+
- `cancelable`
|
|
47
|
+
|
|
48
|
+
`runAction(id, payload)` moves the action through loading, success, error or
|
|
49
|
+
cancelled states. If a typed state runtime is passed in, loading and status are
|
|
50
|
+
written through `setState` and `patchState`, while datasource results can be
|
|
51
|
+
stored in `resultState`.
|
|
52
|
+
|
|
53
|
+
## Effects
|
|
54
|
+
|
|
55
|
+
Supported effect kinds:
|
|
56
|
+
|
|
57
|
+
- `toast` and `feedback`
|
|
58
|
+
- `navigation`
|
|
59
|
+
- `focus`
|
|
60
|
+
- `lazy-import`
|
|
61
|
+
- `side-effect`
|
|
62
|
+
|
|
63
|
+
Feedback, navigation, focus and custom side effects use injected adapters.
|
|
64
|
+
Lazy imports are modeled as resources, which means they can share the same
|
|
65
|
+
ownership and cleanup model as other runtime resources.
|
|
66
|
+
|
|
67
|
+
## Resource Ownership
|
|
68
|
+
|
|
69
|
+
Supported resource kinds:
|
|
70
|
+
|
|
71
|
+
- `object-url`
|
|
72
|
+
- `stream`
|
|
73
|
+
- `observer`
|
|
74
|
+
- `timer`
|
|
75
|
+
- `lazy-import`
|
|
76
|
+
|
|
77
|
+
Resources are acquired under an owner, normally the action id. The resource
|
|
78
|
+
manager exposes `releaseOwner(ownerId)` so surface destroy, render-unit destroy
|
|
79
|
+
or action cancel can clean up only the resources they own.
|
|
80
|
+
|
|
81
|
+
## Diagnostics
|
|
82
|
+
|
|
83
|
+
The runtime emits diagnostics with
|
|
84
|
+
`xtend.epic18.rmt-action-effect-diagnostic.v1` on the
|
|
85
|
+
`rmt.app_platform.action_effect` channel. Loading, success, error and cancel
|
|
86
|
+
are all visible in the local runtime history and in an optional diagnostics hub.
|
|
87
|
+
|
|
88
|
+
## Boundaries
|
|
89
|
+
|
|
90
|
+
- The RMT kernel imports no XTend UI components.
|
|
91
|
+
- Data access goes through injected adapters.
|
|
92
|
+
- Product-local action frameworks are not part of the platform contract.
|
|
93
|
+
- Product flow names remain app code, not framework defaults.
|
|
94
|
+
- Normal app UI still uses RMT templates and DOM descriptors instead of HTML
|
|
95
|
+
string renderers.
|
|
96
|
+
|
|
97
|
+
## Handoff
|
|
98
|
+
|
|
99
|
+
`WP-E18-09` builds on this runtime by connecting declarative DOM and custom
|
|
100
|
+
events to actions. The event layer should reuse the Action Effect Runtime
|
|
101
|
+
instead of creating another action execution path.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# RMT App Platform Authoring
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-app-platform-authoring.v1`
|
|
4
|
+
- Fixture: `tests/fixtures/rmt-app-platform-authoring.rmt`
|
|
5
|
+
- Local gate: `node scripts/run_xtend_tests.js rmt-app-platform-authoring --json`
|
|
6
|
+
- Workpackage: `WP-E18-04`
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
This authoring model defines RMT as a generic app platform. It is not a port of a concrete product surface. Developers can combine their own app domains, record contracts, component families, surfaces, state graphs, actions, datasources, resources and events.
|
|
11
|
+
|
|
12
|
+
## Primitives
|
|
13
|
+
|
|
14
|
+
| Primitive | Purpose |
|
|
15
|
+
|-----------|---------|
|
|
16
|
+
| `app` | app metadata, shell, domain, record contract and entry points |
|
|
17
|
+
| `route` | maps URL or navigation state to surface and template |
|
|
18
|
+
| `surface` | keyed app areas with lifecycle, placement, state and persistence |
|
|
19
|
+
| `slot` | named composition points between templates and components |
|
|
20
|
+
| `template` | structured UI as DOM Descriptor, not as HTML string |
|
|
21
|
+
| `component` | binds arbitrary custom elements through a capability catalog |
|
|
22
|
+
| `state` | typed app state for collections, selection, filters and form values |
|
|
23
|
+
| `selector` | derived read views on state |
|
|
24
|
+
| `derive` | computed values with clear output type |
|
|
25
|
+
| `repeat` | keyed lists without product renderer |
|
|
26
|
+
| `when` | declarative conditions, empty and fallback states |
|
|
27
|
+
| `bind` | maps state, selectors or derived values to attributes/properties |
|
|
28
|
+
| `action` | declarative commands for app flows |
|
|
29
|
+
| `effect` | async execution with lanes and feedback |
|
|
30
|
+
| `datasource` | fixture, REST, SSR or later host data adapters |
|
|
31
|
+
| `resource` | lazy/preload/cleanup resources including trusted-HTML special case |
|
|
32
|
+
| `event` | scoped event routing without an implicit global event bus |
|
|
33
|
+
|
|
34
|
+
## Boundaries
|
|
35
|
+
|
|
36
|
+
- `no-media-manager-product-surface-clone`
|
|
37
|
+
- `no-product-record-contract-required`
|
|
38
|
+
- `structured-ui-before-trusted-html`
|
|
39
|
+
- `trusted-html-explicit-boundary-only`
|
|
40
|
+
- `no-rmt-kernel-import-of-xtend-types`
|
|
41
|
+
- `no-external-innerhtml-helper-required`
|
|
42
|
+
|
|
43
|
+
Normal app UI must be modelable through structured templates. HTML remains an explicit Trusted DOM boundary for special cases and is not the default path for component development.
|
|
44
|
+
|
|
45
|
+
## Handoff
|
|
46
|
+
|
|
47
|
+
`WP-E18-04` only defines the authoring model. `WP-E18-05` then builds the safe DOM Descriptor Renderer and No-Manual-HTML gate. `WP-E18-06` implements the component-native template primitives on top of that.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# RMT App Platform Fixture
|
|
2
|
+
|
|
3
|
+
WP-E18-12 delivers the generic reference fixture for the RMT App Platform. It proves that the Epic 18 primitives are not coupled to a product surface: the same RMT building blocks carry a `generic-catalog`, an `admin-queue` and a `content-board`.
|
|
4
|
+
|
|
5
|
+
## Contract
|
|
6
|
+
|
|
7
|
+
- Schema: `xtend.epic18.rmt-app-platform-fixture.v1`
|
|
8
|
+
- Fixture schema: `xtend.epic18.rmt-app-platform-fixture-source.v1`
|
|
9
|
+
- Local gate: `node scripts/run_xtend_tests.js rmt-app-platform-fixture --json`
|
|
10
|
+
- Package script: `npm run test:rmt-app-platform-fixture`
|
|
11
|
+
- Handoff: `WP-E18-13`
|
|
12
|
+
|
|
13
|
+
## Covered Platform Capabilities
|
|
14
|
+
|
|
15
|
+
- configurable record contracts without a fixed record class
|
|
16
|
+
- list, detail, toolbar, feedback and overlay composition with DOM Descriptor templates
|
|
17
|
+
- actions with fixture, REST, SSR and host datasources
|
|
18
|
+
- feedback, navigation, focus, lazy-import and side-effect flows
|
|
19
|
+
- dynamic surfaces for multiple domains from the same primitives
|
|
20
|
+
- portals and overlays including stack behavior
|
|
21
|
+
- resource ownership and cleanup for streams, observers, timers, object URLs and lazy imports
|
|
22
|
+
- scaffold build evidence through the RMT App Platform generator
|
|
23
|
+
|
|
24
|
+
## Boundaries
|
|
25
|
+
|
|
26
|
+
Normal RMT UI remains declarative. `innerHTML`, `outerHTML`, `insertAdjacentHTML` and `document.write` do not belong in the app fixture; the No-Manual-HTML gate checks this explicitly. Product-bound surface lists are avoided as well. Developers should be able to build in XTend app structures without external shell renderers or local registry rewrites.
|
|
27
|
+
|
|
28
|
+
## Fixture Artifacts
|
|
29
|
+
|
|
30
|
+
- `catalog/epic18-rmt-app-platform-fixture.js`
|
|
31
|
+
- `tests/fixtures/rmt-app-platform-fixture.rmt`
|
|
32
|
+
- `tests/rmt/rmt_app_platform_fixture_suite.js`
|
|
33
|
+
- `development/WP-E18-12-Generische-RMT-App-Platform-Fixture-bauen.md`
|
|
34
|
+
|
|
35
|
+
The gate renders the fixture with the DOM Descriptor Renderer, routes events into actions, swaps datasources, materializes surfaces, opens overlays and proves cleanup through resource disposals.
|