@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
|
@@ -18,7 +18,17 @@ const TOP_LEVEL_DOMAINS = Object.freeze([
|
|
|
18
18
|
['components', 'array', 'Component records and XTend custom element bindings.'],
|
|
19
19
|
['routes', 'array', 'Route records for router adapters.'],
|
|
20
20
|
['schedules', 'array', 'Scheduler policies and endpoint names.'],
|
|
21
|
-
['
|
|
21
|
+
['state', 'array', 'Typed App State records.'],
|
|
22
|
+
['selectors', 'array', 'Derived selector records.'],
|
|
23
|
+
['dataSources', 'array', 'Fixture, REST, SSR or host data source records.'],
|
|
24
|
+
['actions', 'array', 'Declarative action records.'],
|
|
25
|
+
['effects', 'array', 'Feedback, navigation, focus and lazy import effects.'],
|
|
26
|
+
['resources', 'array', 'Owned object URL, stream, observer, timer and import resources.'],
|
|
27
|
+
['events', 'array', 'Declarative event bindings with payload contracts.'],
|
|
28
|
+
['portals', 'array', 'Generic overlay portal layer definitions.'],
|
|
29
|
+
['overlays', 'array', 'Tooltip, toast, popover, lightbox, menu and dialog overlay definitions.'],
|
|
30
|
+
['records', 'object', 'Named fixture or SSR record collections.'],
|
|
31
|
+
['surfaces', 'array', 'Generic keyed Surface Graph records.'],
|
|
22
32
|
['templates', 'array', 'Template records and DOM descriptors.'],
|
|
23
33
|
['diagnostics', 'object', 'Optional diagnostics and gate metadata.'],
|
|
24
34
|
['extensionSlots', 'object', 'Optional host extension slots.']
|
|
@@ -30,7 +40,16 @@ const DOMAIN_FIELD_COMPLETIONS = Object.freeze({
|
|
|
30
40
|
components: ['id', 'kind', 'adapter', 'tag', 'schedule', 'props', 'attributes', 'slots', 'events', 'hydration', 'metadata'],
|
|
31
41
|
routes: ['id', 'path', 'router', 'component', 'template', 'shell', 'schedule', 'documentTitle', 'metaDescription', 'metadata'],
|
|
32
42
|
schedules: ['id', 'endpointName', 'lane', 'fiber', 'priority', 'budgetMs', 'deadlineMs', 'preferIdle', 'coalesceKey'],
|
|
33
|
-
|
|
43
|
+
state: ['id', 'type', 'schema', 'initial', 'preserve', 'metadata'],
|
|
44
|
+
selectors: ['id', 'from', 'compute', 'output', 'structural', 'metadata'],
|
|
45
|
+
dataSources: ['id', 'kind', 'endpoint', 'adapter', 'records', 'payload', 'resultPath', 'contract', 'metadata'],
|
|
46
|
+
actions: ['id', 'datasource', 'resultState', 'loadingState', 'statusState', 'resourceOwner', 'effects', 'resources', 'cancelable', 'metadata'],
|
|
47
|
+
effects: ['id', 'kind', 'target', 'message', 'path', 'severity', 'resource', 'resources', 'metadata'],
|
|
48
|
+
resources: ['id', 'kind', 'owner', 'source', 'importId', 'delayMs', 'metadata'],
|
|
49
|
+
events: ['id', 'kind', 'event', 'target', 'component', 'owner', 'action', 'payload', 'payloadContract', 'governance', 'metadata'],
|
|
50
|
+
portals: ['id', 'root', 'layer', 'policy', 'focusPolicy', 'pointerPolicy', 'scrollPolicy', 'zIndexStart', 'zStep', 'metadata'],
|
|
51
|
+
overlays: ['id', 'kind', 'portal', 'layer', 'surface', 'resources', 'dismissible', 'singleton', 'focusPolicy', 'escapePolicy', 'pointerPolicy', 'scrollPolicy', 'metadata'],
|
|
52
|
+
surfaces: ['id', 'schema', 'kind', 'type', 'source', 'repeat', 'key', 'owner', 'portal', 'adapter', 'manager', 'component', 'template', 'route', 'schedule', 'resources', 'bounds', 'placement', 'mode', 'initialState', 'persistent', 'closeReleasesResources', 'destroyOnClose', 'metadata'],
|
|
34
53
|
templates: ['id', 'mode', 'nodes', 'slots', 'hydration', 'metadata', 'security'],
|
|
35
54
|
routeMetadata: ['title', 'documentTitle', 'titleTemplate', 'metaDescription', 'contentKind', 'announcement', 'a11y'],
|
|
36
55
|
hydrationMetadata: ['endpointHint', 'scheduleRef', 'policy', 'deferUntil']
|
|
@@ -73,12 +92,54 @@ const TEMPLATE_MODES = Object.freeze([
|
|
|
73
92
|
|
|
74
93
|
const SURFACE_TYPES = Object.freeze([
|
|
75
94
|
['window', 'Movable and resizable workspace window.'],
|
|
95
|
+
['panel', 'Dockable or responsive app panel.'],
|
|
96
|
+
['overlay-host', 'Invisible owner surface for overlay lifecycle.'],
|
|
76
97
|
['side-panel', 'Docked, pinned, collapsed or responsive side panel.'],
|
|
77
98
|
['modal', 'Modal overlay surface in the shared stack.'],
|
|
78
99
|
['dialog', 'Dialog overlay surface in the shared stack.'],
|
|
79
100
|
['drawer', 'Drawer overlay surface in the shared stack.']
|
|
80
101
|
]);
|
|
81
102
|
|
|
103
|
+
const OVERLAY_KINDS = Object.freeze([
|
|
104
|
+
['tooltip', 'Viewport-fixed hint overlay.'],
|
|
105
|
+
['toast', 'Nonmodal feedback overlay.'],
|
|
106
|
+
['popover', 'Anchored interactive overlay.'],
|
|
107
|
+
['lightbox', 'Modal media or detail overlay.'],
|
|
108
|
+
['menu', 'Keyboard navigable menu overlay.'],
|
|
109
|
+
['dialog', 'Modal or nonmodal dialog overlay.']
|
|
110
|
+
]);
|
|
111
|
+
|
|
112
|
+
const PORTAL_POLICIES = Object.freeze([
|
|
113
|
+
['stacked', 'Generic stacked app layer.'],
|
|
114
|
+
['modal', 'Blocks interaction below the portal.'],
|
|
115
|
+
['nonmodal', 'Allows interaction outside the portal.'],
|
|
116
|
+
['toast-region', 'Feedback region for transient messages.'],
|
|
117
|
+
['clipping-escape', 'Viewport layer that escapes clipping containers.']
|
|
118
|
+
]);
|
|
119
|
+
|
|
120
|
+
const RESOURCE_KINDS = Object.freeze([
|
|
121
|
+
['object-url', 'Object URL resource with revoke cleanup.'],
|
|
122
|
+
['stream', 'Stream resource with open and close lifecycle.'],
|
|
123
|
+
['observer', 'Observer resource with disconnect cleanup.'],
|
|
124
|
+
['timer', 'Timer or idle handle resource.'],
|
|
125
|
+
['lazy-import', 'Lazy module import resource.']
|
|
126
|
+
]);
|
|
127
|
+
|
|
128
|
+
const EVENT_KINDS = Object.freeze([
|
|
129
|
+
['dom', 'DOM event binding.'],
|
|
130
|
+
['custom', 'Custom component event binding.'],
|
|
131
|
+
['keyboard', 'Keyboard event binding.'],
|
|
132
|
+
['form', 'Form event binding.'],
|
|
133
|
+
['surface', 'Surface lifecycle event binding.'],
|
|
134
|
+
['drop', 'Drag and drop event binding.']
|
|
135
|
+
]);
|
|
136
|
+
|
|
137
|
+
const SURFACE_STATES = Object.freeze([
|
|
138
|
+
['closed', 'Surface starts closed.'],
|
|
139
|
+
['open', 'Surface starts open.'],
|
|
140
|
+
['minimized', 'Surface starts minimized.']
|
|
141
|
+
]);
|
|
142
|
+
|
|
82
143
|
function normalizeString(value) {
|
|
83
144
|
return typeof value === 'string' ? value.trim() : '';
|
|
84
145
|
}
|
|
@@ -214,6 +275,24 @@ function referenceItems(graph, domain, options = {}) {
|
|
|
214
275
|
}));
|
|
215
276
|
}
|
|
216
277
|
|
|
278
|
+
function documentIds(graph, domain) {
|
|
279
|
+
const document = graph && graph.sourceDocument && typeof graph.sourceDocument === 'object' ? graph.sourceDocument : {};
|
|
280
|
+
return toArray(document[domain])
|
|
281
|
+
.map((record) => normalizeString(record && record.id))
|
|
282
|
+
.filter(Boolean);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
function documentReferenceItems(graph, domain, detail) {
|
|
286
|
+
return documentIds(graph, domain).map((id) => createCompletionItem({
|
|
287
|
+
label: id,
|
|
288
|
+
kind: 'reference',
|
|
289
|
+
detail,
|
|
290
|
+
documentation: `Referenz auf ${domain}[*].id.`,
|
|
291
|
+
source: 'rmt-app-platform-document',
|
|
292
|
+
targetDomain: domain
|
|
293
|
+
}));
|
|
294
|
+
}
|
|
295
|
+
|
|
217
296
|
function inferCompletionContext(input = {}) {
|
|
218
297
|
if (input.context) {
|
|
219
298
|
return input.context;
|
|
@@ -263,10 +342,38 @@ function inferCompletionContext(input = {}) {
|
|
|
263
342
|
return 'route-paths';
|
|
264
343
|
}
|
|
265
344
|
|
|
266
|
-
if ((field === 'type' || /\/type$/.test(pointer)) && (pointer.includes('/surfaces/') || domain === 'surfaces')) {
|
|
345
|
+
if ((field === 'type' || field === 'kind' || /\/(type|kind)$/.test(pointer)) && (pointer.includes('/surfaces/') || domain === 'surfaces')) {
|
|
267
346
|
return 'surface-types';
|
|
268
347
|
}
|
|
269
348
|
|
|
349
|
+
if ((field === 'kind' || /\/kind$/.test(pointer)) && (pointer.includes('/overlays/') || domain === 'overlays')) {
|
|
350
|
+
return 'overlay-kinds';
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
if ((field === 'kind' || /\/kind$/.test(pointer)) && (pointer.includes('/resources/') || domain === 'resources')) {
|
|
354
|
+
return 'resource-kinds';
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
if ((field === 'kind' || /\/kind$/.test(pointer)) && (pointer.includes('/events/') || domain === 'events')) {
|
|
358
|
+
return 'event-kinds';
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
if (field === 'portal' || /\/portal$/.test(pointer)) {
|
|
362
|
+
return 'portal-ids';
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
if (field === 'resources' || /\/resources(?:\/\d+)?$/.test(pointer)) {
|
|
366
|
+
return 'resource-ids';
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
if ((field === 'policy' || /\/policy$/.test(pointer)) && (pointer.includes('/portals/') || domain === 'portals')) {
|
|
370
|
+
return 'portal-policies';
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
if ((field === 'initialState' || field === 'state' || /\/(initialState|state)$/.test(pointer)) && (pointer.includes('/surfaces/') || domain === 'surfaces')) {
|
|
374
|
+
return 'surface-states';
|
|
375
|
+
}
|
|
376
|
+
|
|
270
377
|
if (field === 'mode' || /\/mode$/.test(pointer)) {
|
|
271
378
|
return pointer.includes('/hydration/') || domain === 'hydration' ? 'hydration-policies' : 'template-modes';
|
|
272
379
|
}
|
|
@@ -295,6 +402,30 @@ function inferCompletionContext(input = {}) {
|
|
|
295
402
|
return 'surface-fields';
|
|
296
403
|
}
|
|
297
404
|
|
|
405
|
+
if (/^\/portals\/\d+$/.test(pointer) || domain === 'portals') {
|
|
406
|
+
return 'portal-fields';
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
if (/^\/overlays\/\d+$/.test(pointer) || domain === 'overlays') {
|
|
410
|
+
return 'overlay-fields';
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
if (/^\/resources\/\d+$/.test(pointer) || domain === 'resources') {
|
|
414
|
+
return 'resource-fields';
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
if (/^\/events\/\d+$/.test(pointer) || domain === 'events') {
|
|
418
|
+
return 'event-fields';
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
if (/^\/actions\/\d+$/.test(pointer) || domain === 'actions') {
|
|
422
|
+
return 'action-fields';
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
if (/^\/dataSources\/\d+$/.test(pointer) || domain === 'dataSources') {
|
|
426
|
+
return 'data-source-fields';
|
|
427
|
+
}
|
|
428
|
+
|
|
298
429
|
if (/^\/adapters\/\d+$/.test(pointer) || domain === 'adapters') {
|
|
299
430
|
return 'adapter-fields';
|
|
300
431
|
}
|
|
@@ -336,6 +467,18 @@ function buildContextItems(graph, context, options = {}) {
|
|
|
336
467
|
return domainFieldItems('schedules', 'schedules[*]');
|
|
337
468
|
case 'surface-fields':
|
|
338
469
|
return domainFieldItems('surfaces', 'surfaces[*]');
|
|
470
|
+
case 'portal-fields':
|
|
471
|
+
return domainFieldItems('portals', 'portals[*]');
|
|
472
|
+
case 'overlay-fields':
|
|
473
|
+
return domainFieldItems('overlays', 'overlays[*]');
|
|
474
|
+
case 'resource-fields':
|
|
475
|
+
return domainFieldItems('resources', 'resources[*]');
|
|
476
|
+
case 'event-fields':
|
|
477
|
+
return domainFieldItems('events', 'events[*]');
|
|
478
|
+
case 'action-fields':
|
|
479
|
+
return domainFieldItems('actions', 'actions[*]');
|
|
480
|
+
case 'data-source-fields':
|
|
481
|
+
return domainFieldItems('dataSources', 'dataSources[*]');
|
|
339
482
|
case 'template-fields':
|
|
340
483
|
return domainFieldItems('templates', 'templates[*]');
|
|
341
484
|
case 'hydration-metadata-fields':
|
|
@@ -383,6 +526,40 @@ function buildContextItems(graph, context, options = {}) {
|
|
|
383
526
|
detail: 'Surface Type aus aktivem Dokument',
|
|
384
527
|
source: 'semantic-graph.catalogHints'
|
|
385
528
|
})));
|
|
529
|
+
case 'overlay-kinds':
|
|
530
|
+
return createStaticItems(OVERLAY_KINDS, {
|
|
531
|
+
kind: 'enum',
|
|
532
|
+
detail: 'RMT Overlay Kind',
|
|
533
|
+
source: 'rmt-app-platform-overlay-catalog'
|
|
534
|
+
});
|
|
535
|
+
case 'portal-policies':
|
|
536
|
+
return createStaticItems(PORTAL_POLICIES, {
|
|
537
|
+
kind: 'enum',
|
|
538
|
+
detail: 'RMT Portal Policy',
|
|
539
|
+
source: 'rmt-app-platform-portal-catalog'
|
|
540
|
+
});
|
|
541
|
+
case 'resource-kinds':
|
|
542
|
+
return createStaticItems(RESOURCE_KINDS, {
|
|
543
|
+
kind: 'enum',
|
|
544
|
+
detail: 'RMT Resource Kind',
|
|
545
|
+
source: 'rmt-app-platform-resource-catalog'
|
|
546
|
+
});
|
|
547
|
+
case 'event-kinds':
|
|
548
|
+
return createStaticItems(EVENT_KINDS, {
|
|
549
|
+
kind: 'enum',
|
|
550
|
+
detail: 'RMT Event Kind',
|
|
551
|
+
source: 'rmt-app-platform-event-catalog'
|
|
552
|
+
});
|
|
553
|
+
case 'surface-states':
|
|
554
|
+
return createStaticItems(SURFACE_STATES, {
|
|
555
|
+
kind: 'enum',
|
|
556
|
+
detail: 'RMT Surface Initial State',
|
|
557
|
+
source: 'rmt-app-platform-surface-state-catalog'
|
|
558
|
+
});
|
|
559
|
+
case 'portal-ids':
|
|
560
|
+
return documentReferenceItems(graph, 'portals', 'Portal ID');
|
|
561
|
+
case 'resource-ids':
|
|
562
|
+
return documentReferenceItems(graph, 'resources', 'Resource ID');
|
|
386
563
|
case 'hydration-policies':
|
|
387
564
|
return createStaticItems(HYDRATION_POLICIES, {
|
|
388
565
|
kind: 'enum',
|
|
@@ -455,7 +632,10 @@ function getRmtCompletions(input = {}, options = {}) {
|
|
|
455
632
|
module.exports = {
|
|
456
633
|
BUILT_IN_ADAPTER_IDS,
|
|
457
634
|
DOMAIN_FIELD_COMPLETIONS,
|
|
635
|
+
EVENT_KINDS,
|
|
458
636
|
HYDRATION_POLICIES,
|
|
637
|
+
OVERLAY_KINDS,
|
|
638
|
+
PORTAL_POLICIES,
|
|
459
639
|
RMT_COMPLETION_ITEM_SCHEMA,
|
|
460
640
|
RMT_COMPLETION_MODULE_PATH,
|
|
461
641
|
RMT_COMPLETION_PACKAGE_SCRIPT,
|
|
@@ -463,7 +643,9 @@ module.exports = {
|
|
|
463
643
|
RMT_COMPLETION_REPORT_SCHEMA,
|
|
464
644
|
RMT_COMPLETION_SUITE_PATH,
|
|
465
645
|
RMT_COMPLETION_WORKPACKAGE,
|
|
646
|
+
RESOURCE_KINDS,
|
|
466
647
|
SCHEDULE_LANES,
|
|
648
|
+
SURFACE_STATES,
|
|
467
649
|
SURFACE_TYPES,
|
|
468
650
|
TEMPLATE_MODES,
|
|
469
651
|
TOP_LEVEL_DOMAINS,
|
|
@@ -32,15 +32,29 @@ const SEVERITY_ORDER = {
|
|
|
32
32
|
const DEFAULT_ALLOWED_TOP_LEVEL_DOMAINS = Object.freeze([
|
|
33
33
|
'kind',
|
|
34
34
|
'version',
|
|
35
|
+
'schema',
|
|
35
36
|
'manifest',
|
|
36
37
|
'adapters',
|
|
37
38
|
'components',
|
|
38
39
|
'routes',
|
|
39
40
|
'schedules',
|
|
40
41
|
'surfaces',
|
|
42
|
+
'portals',
|
|
43
|
+
'overlays',
|
|
44
|
+
'state',
|
|
45
|
+
'states',
|
|
46
|
+
'selectors',
|
|
47
|
+
'dataSources',
|
|
48
|
+
'datasources',
|
|
49
|
+
'actions',
|
|
50
|
+
'effects',
|
|
51
|
+
'resources',
|
|
52
|
+
'events',
|
|
53
|
+
'records',
|
|
41
54
|
'templates',
|
|
42
55
|
'diagnostics',
|
|
43
56
|
'extensionSlots',
|
|
57
|
+
'acceptance',
|
|
44
58
|
'metadata'
|
|
45
59
|
]);
|
|
46
60
|
|
|
@@ -169,6 +183,46 @@ const DIAGNOSTIC_CATALOG = Object.freeze({
|
|
|
169
183
|
severity: 'warning',
|
|
170
184
|
category: 'migration',
|
|
171
185
|
repair: { kind: 'replace-field-value', title: 'Feld auf aktuellen Domain-Contract migrieren', safe: false }
|
|
186
|
+
},
|
|
187
|
+
'rmt.app.no-manual-shell.html-sink': {
|
|
188
|
+
severity: 'error',
|
|
189
|
+
category: 'security',
|
|
190
|
+
repair: { kind: 'replace-with-dom-descriptor', title: 'DOM Descriptor oder Component Template verwenden', safe: false }
|
|
191
|
+
},
|
|
192
|
+
'rmt.app.unsafe-html.boundary-missing': {
|
|
193
|
+
severity: 'warning',
|
|
194
|
+
category: 'security',
|
|
195
|
+
repair: { kind: 'add-trusted-dom-boundary', title: 'Trusted-DOM-Boundary explizit setzen', safe: true }
|
|
196
|
+
},
|
|
197
|
+
'rmt.app.repeat.key.missing': {
|
|
198
|
+
severity: 'error',
|
|
199
|
+
category: 'state',
|
|
200
|
+
repair: { kind: 'add-key', title: 'Stabilen key fuer repeat setzen', safe: true }
|
|
201
|
+
},
|
|
202
|
+
'rmt.app.event.payload-contract.missing': {
|
|
203
|
+
severity: 'error',
|
|
204
|
+
category: 'events',
|
|
205
|
+
repair: { kind: 'add-payload-contract', title: 'Payload Contract fuer Event Binding ergaenzen', safe: true }
|
|
206
|
+
},
|
|
207
|
+
'rmt.app.resource.ownership.missing': {
|
|
208
|
+
severity: 'warning',
|
|
209
|
+
category: 'lifecycle',
|
|
210
|
+
repair: { kind: 'add-owner-template', title: 'Resource Owner deklarieren', safe: true }
|
|
211
|
+
},
|
|
212
|
+
'rmt.app.resource.unresolved': {
|
|
213
|
+
severity: 'error',
|
|
214
|
+
category: 'references',
|
|
215
|
+
repair: { kind: 'create-resource', title: 'Resource Record anlegen oder Referenz korrigieren', safe: true }
|
|
216
|
+
},
|
|
217
|
+
'rmt.app.portal.unresolved': {
|
|
218
|
+
severity: 'error',
|
|
219
|
+
category: 'references',
|
|
220
|
+
repair: { kind: 'create-portal', title: 'Portal Record anlegen oder Referenz korrigieren', safe: true }
|
|
221
|
+
},
|
|
222
|
+
'rmt.app.surface.source.unresolved': {
|
|
223
|
+
severity: 'warning',
|
|
224
|
+
category: 'references',
|
|
225
|
+
repair: { kind: 'create-record-source', title: 'Record Source, DataSource oder State deklarieren', safe: true }
|
|
172
226
|
}
|
|
173
227
|
});
|
|
174
228
|
|
|
@@ -4,8 +4,14 @@ const {
|
|
|
4
4
|
const {
|
|
5
5
|
BUILT_IN_ADAPTER_IDS,
|
|
6
6
|
DOMAIN_FIELD_COMPLETIONS,
|
|
7
|
+
EVENT_KINDS,
|
|
7
8
|
HYDRATION_POLICIES,
|
|
9
|
+
OVERLAY_KINDS,
|
|
10
|
+
PORTAL_POLICIES,
|
|
11
|
+
RESOURCE_KINDS,
|
|
8
12
|
SCHEDULE_LANES,
|
|
13
|
+
SURFACE_STATES,
|
|
14
|
+
SURFACE_TYPES,
|
|
9
15
|
TEMPLATE_MODES,
|
|
10
16
|
TOP_LEVEL_DOMAINS,
|
|
11
17
|
loadComponentManifest
|
|
@@ -227,6 +233,36 @@ function inferStaticHover(graph, pointer, options = {}) {
|
|
|
227
233
|
return entry ? createStaticHover(graph, pointer, 'lane', stringValue, entry, 'rmt-lane-catalog') : null;
|
|
228
234
|
}
|
|
229
235
|
|
|
236
|
+
if ((field === 'type' || field === 'kind') && pointer.startsWith('/surfaces/')) {
|
|
237
|
+
const entry = lookupEntry(SURFACE_TYPES, stringValue);
|
|
238
|
+
return entry ? createStaticHover(graph, pointer, 'surface-kind', stringValue, entry, 'rmt-surface-type-catalog') : null;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (field === 'kind' && pointer.startsWith('/overlays/')) {
|
|
242
|
+
const entry = lookupEntry(OVERLAY_KINDS, stringValue);
|
|
243
|
+
return entry ? createStaticHover(graph, pointer, 'overlay-kind', stringValue, entry, 'rmt-app-platform-overlay-catalog') : null;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if (field === 'kind' && pointer.startsWith('/resources/')) {
|
|
247
|
+
const entry = lookupEntry(RESOURCE_KINDS, stringValue);
|
|
248
|
+
return entry ? createStaticHover(graph, pointer, 'resource-kind', stringValue, entry, 'rmt-app-platform-resource-catalog') : null;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (field === 'kind' && pointer.startsWith('/events/')) {
|
|
252
|
+
const entry = lookupEntry(EVENT_KINDS, stringValue);
|
|
253
|
+
return entry ? createStaticHover(graph, pointer, 'event-kind', stringValue, entry, 'rmt-app-platform-event-catalog') : null;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (field === 'policy' && pointer.startsWith('/portals/')) {
|
|
257
|
+
const entry = lookupEntry(PORTAL_POLICIES, stringValue);
|
|
258
|
+
return entry ? createStaticHover(graph, pointer, 'portal-policy', stringValue, entry, 'rmt-app-platform-portal-catalog') : null;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if ((field === 'initialState' || field === 'state') && pointer.startsWith('/surfaces/')) {
|
|
262
|
+
const entry = lookupEntry(SURFACE_STATES, stringValue);
|
|
263
|
+
return entry ? createStaticHover(graph, pointer, 'surface-state', stringValue, entry, 'rmt-app-platform-surface-state-catalog') : null;
|
|
264
|
+
}
|
|
265
|
+
|
|
230
266
|
if (field === 'mode' && pointer.includes('/hydration/')) {
|
|
231
267
|
const entry = lookupEntry(HYDRATION_POLICIES, stringValue);
|
|
232
268
|
return entry ? createStaticHover(graph, pointer, 'hydration-policy', stringValue, entry, 'rmt-hydration-policy-catalog') : null;
|
|
@@ -88,9 +88,16 @@ export interface RmtDefinitionTarget {
|
|
|
88
88
|
export interface RmtCodeAction {
|
|
89
89
|
title: string;
|
|
90
90
|
kind?: string;
|
|
91
|
+
diagnosticCode?: string;
|
|
92
|
+
pointer?: string;
|
|
93
|
+
safe?: boolean;
|
|
94
|
+
confidence?: string;
|
|
91
95
|
diagnostics?: RmtToolingDiagnostic[];
|
|
92
96
|
edit?: RmtWorkspaceEdit;
|
|
93
97
|
command?: RmtCommand;
|
|
98
|
+
preview?: RmtJsonValue;
|
|
99
|
+
fixAllActionCount?: number | null;
|
|
100
|
+
diagnosticCodes?: string[];
|
|
94
101
|
isPreferred?: boolean;
|
|
95
102
|
data?: RmtJsonValue;
|
|
96
103
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const {
|
|
2
|
+
lintAppPlatformDocument
|
|
3
|
+
} = require('../app-platform-tooling');
|
|
4
|
+
|
|
5
|
+
function isAppPlatformDocument(document = {}) {
|
|
6
|
+
const metadata = document.manifest && document.manifest.metadata && typeof document.manifest.metadata === 'object'
|
|
7
|
+
? document.manifest.metadata
|
|
8
|
+
: {};
|
|
9
|
+
const contract = typeof metadata.contractVersion === 'string' ? metadata.contractVersion : '';
|
|
10
|
+
return contract.includes('epic18')
|
|
11
|
+
|| Array.isArray(document.portals)
|
|
12
|
+
|| Array.isArray(document.overlays)
|
|
13
|
+
|| Array.isArray(document.resources)
|
|
14
|
+
|| Array.isArray(document.events)
|
|
15
|
+
|| Array.isArray(document.actions)
|
|
16
|
+
|| Array.isArray(document.dataSources);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function createAppPlatformPolicyRule() {
|
|
20
|
+
return {
|
|
21
|
+
id: 'rmt.app-platform-policy',
|
|
22
|
+
description: 'Validiert Epic-18 App-Platform Primitives fuer Surfaces, Portals, Events und Resources.',
|
|
23
|
+
defaultSeverity: 'error',
|
|
24
|
+
run(context) {
|
|
25
|
+
if (!isAppPlatformDocument(context.document)) return [];
|
|
26
|
+
return lintAppPlatformDocument(context.document, {
|
|
27
|
+
sourceModel: context.sourceModel
|
|
28
|
+
}).map((diagnostic) => ({
|
|
29
|
+
...diagnostic,
|
|
30
|
+
ruleId: 'rmt.app-platform-policy'
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = {
|
|
37
|
+
createAppPlatformPolicyRule,
|
|
38
|
+
isAppPlatformDocument
|
|
39
|
+
};
|
|
@@ -13,6 +13,9 @@ const {
|
|
|
13
13
|
const {
|
|
14
14
|
createTemplatePolicyRule
|
|
15
15
|
} = require('./template-policy');
|
|
16
|
+
const {
|
|
17
|
+
createAppPlatformPolicyRule
|
|
18
|
+
} = require('./app-platform-policy');
|
|
16
19
|
|
|
17
20
|
function getDefaultRmtLinterRules() {
|
|
18
21
|
return [
|
|
@@ -20,7 +23,8 @@ function getDefaultRmtLinterRules() {
|
|
|
20
23
|
createRoutePolicyRule(),
|
|
21
24
|
createTemplatePolicyRule(),
|
|
22
25
|
createSchedulerPolicyRule(),
|
|
23
|
-
createBoundaryPolicyRule()
|
|
26
|
+
createBoundaryPolicyRule(),
|
|
27
|
+
createAppPlatformPolicyRule()
|
|
24
28
|
];
|
|
25
29
|
}
|
|
26
30
|
|
|
@@ -2,7 +2,9 @@ export * from './rmt-tooling-public-types';
|
|
|
2
2
|
import type { RmtToolingConstant, RmtToolingFactory, RmtToolingFunction } from './rmt-tooling-public-types';
|
|
3
3
|
|
|
4
4
|
export declare const buildSemanticGraph: RmtToolingFactory;
|
|
5
|
+
export declare const buildRmtVNextPrimitiveSemanticGraph: RmtToolingFactory;
|
|
5
6
|
export declare const createSemanticDiagnostic: RmtToolingFactory;
|
|
7
|
+
export declare const createVNextPrimitiveDiagnostic: RmtToolingFactory;
|
|
6
8
|
export declare const DOMAIN_NAMES: RmtToolingConstant;
|
|
7
9
|
export declare const DUPLICATE_ID_CODE: RmtToolingConstant;
|
|
8
10
|
export declare const DUPLICATE_ROUTE_PATH_CODE: RmtToolingConstant;
|
|
@@ -16,3 +18,7 @@ export declare const RMT_SEMANTIC_GRAPH_REPORT_SCHEMA: RmtToolingConstant;
|
|
|
16
18
|
export declare const RMT_SEMANTIC_GRAPH_SCHEMA: RmtToolingConstant;
|
|
17
19
|
export declare const RMT_SEMANTIC_GRAPH_SUITE_PATH: RmtToolingConstant;
|
|
18
20
|
export declare const RMT_SEMANTIC_GRAPH_WORKPACKAGE: RmtToolingConstant;
|
|
21
|
+
export declare const RMT_VNEXT_PRIMITIVE_DIAGNOSTIC_CODES: RmtToolingConstant;
|
|
22
|
+
export declare const RMT_VNEXT_PRIMITIVE_DOMAIN_NAMES: RmtToolingConstant;
|
|
23
|
+
export declare const RMT_VNEXT_PRIMITIVE_SEMANTIC_GRAPH_SCHEMA: RmtToolingConstant;
|
|
24
|
+
export declare const RMT_VNEXT_PRIMITIVE_SEMANTIC_GRAPH_WORKPACKAGE: RmtToolingConstant;
|