@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.
Files changed (566) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/catalog/component-catalog-coverage.js +2 -0
  4. package/catalog/epic13-package-export-lock.js +11 -1
  5. package/catalog/epic13-rmt-production-readiness.js +0 -1
  6. package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
  7. package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
  8. package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
  9. package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
  10. package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
  11. package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
  12. package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
  13. package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
  14. package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
  15. package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
  16. package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
  17. package/catalog/epic18-rmt-component-template-primitives.js +240 -0
  18. package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
  19. package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
  20. package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
  21. package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
  22. package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
  23. package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
  24. package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
  25. package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
  26. package/catalog/surface-manager-controller.js +5 -1
  27. package/catalog/surface-manager-materialization.js +7 -1
  28. package/catalog/surface-manager-overlay-bridge.js +41 -6
  29. package/catalog/surface-manager-workbench-fixture.js +1 -1
  30. package/catalog/surface-type-capability-matrix.d.ts +61 -0
  31. package/catalog/surface-type-capability-matrix.js +183 -0
  32. package/catalog/type-exports-rmt.js +37 -1
  33. package/catalog/type-exports.js +3 -3
  34. package/components/icon-packs/lucide.js +4 -0
  35. package/components/manifest.json +2 -0
  36. package/components/prism-rmt.d.ts +34 -0
  37. package/components/prism-rmt.js +130 -0
  38. package/components/xcards.js +15 -0
  39. package/components/xcode.d.ts +36 -1
  40. package/components/xcode.js +215 -20
  41. package/components/xfooter.js +17 -0
  42. package/components/xheader.js +14 -0
  43. package/components/xhero.js +16 -1
  44. package/components/xlink.js +97 -14
  45. package/components/xmasonry.js +15 -0
  46. package/components/xplayer.d.ts +44 -2
  47. package/components/xplayer.js +242 -15
  48. package/components/xrouter.js +27 -2
  49. package/components/xsection.js +15 -0
  50. package/components/xsidepanel.js +10 -2
  51. package/components/xsurfacemanager-controller.d.ts +2 -1
  52. package/components/xsurfacemanager-controller.js +27 -3
  53. package/components/xsurfacemanager.d.ts +2 -0
  54. package/components/xsurfacemanager.js +20 -8
  55. package/components/xsurfaceoverlay-bridge.d.ts +20 -5
  56. package/components/xsurfaceoverlay-bridge.js +114 -18
  57. package/components/xsurfaceportal.d.ts +29 -0
  58. package/components/xsurfaceportal.js +122 -0
  59. package/components/xsurfaceregion.d.ts +50 -0
  60. package/components/xsurfaceregion.js +285 -0
  61. package/components/xsurfacewindow.js +2 -1
  62. package/components/xtooltip.js +89 -23
  63. package/docs/README.md +222 -298
  64. package/docs/changelog.md +107 -0
  65. package/docs/component-catalog-coverage.md +9 -9
  66. package/docs/component-platform.md +19 -1
  67. package/docs/component-ux-app-authoring.md +56 -63
  68. package/docs/components/xcode.md +83 -53
  69. package/docs/components/xsurfaceportal.md +32 -0
  70. package/docs/components/xsurfaceregion.md +37 -0
  71. package/docs/components.md +105 -69
  72. package/docs/de/README.md +264 -0
  73. package/docs/de/XTend-ADR.md +221 -0
  74. package/docs/de/a11y-keyboard-smokes.md +62 -0
  75. package/docs/de/about.md +18 -0
  76. package/docs/de/api.md +157 -0
  77. package/docs/de/best-practices.md +76 -0
  78. package/docs/de/changelog.md +107 -0
  79. package/docs/de/component-catalog-coverage.md +58 -0
  80. package/docs/de/component-lab.md +103 -0
  81. package/docs/de/component-long-tail-migration.md +41 -0
  82. package/docs/de/component-platform.md +177 -0
  83. package/docs/de/component-ux-app-authoring.md +123 -0
  84. package/docs/de/component-ux-authoring.md +96 -0
  85. package/docs/de/component-ux-gates.md +45 -0
  86. package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
  87. package/docs/de/components/xalert.md +81 -0
  88. package/docs/de/components/xbutton.md +103 -0
  89. package/docs/de/components/xcalendar.md +82 -0
  90. package/docs/de/components/xcards.md +128 -0
  91. package/docs/de/components/xcheckbox.md +102 -0
  92. package/docs/de/components/xcode.md +156 -0
  93. package/docs/de/components/xdialog.md +92 -0
  94. package/docs/de/components/xdrawer.md +84 -0
  95. package/docs/de/components/xfooter.md +126 -0
  96. package/docs/de/components/xform.md +128 -0
  97. package/docs/de/components/xheader.md +308 -0
  98. package/docs/de/components/xhero.md +142 -0
  99. package/docs/de/components/xicon.md +125 -0
  100. package/docs/de/components/xinput.md +129 -0
  101. package/docs/de/components/xlightbox.md +98 -0
  102. package/docs/de/components/xlink.md +109 -0
  103. package/docs/de/components/xmasonry.md +124 -0
  104. package/docs/de/components/xmenu.md +158 -0
  105. package/docs/de/components/xmodal.md +82 -0
  106. package/docs/de/components/xplayer.md +104 -0
  107. package/docs/de/components/xpopover.md +67 -0
  108. package/docs/de/components/xprogress.md +56 -0
  109. package/docs/de/components/xradio.md +103 -0
  110. package/docs/de/components/xrouter.md +260 -0
  111. package/docs/de/components/xsection.md +125 -0
  112. package/docs/de/components/xselect.md +105 -0
  113. package/docs/de/components/xsidepanel.md +30 -0
  114. package/docs/de/components/xspinner.md +102 -0
  115. package/docs/de/components/xstate.md +148 -0
  116. package/docs/de/components/xstatus.md +55 -0
  117. package/docs/de/components/xsummary.md +78 -0
  118. package/docs/de/components/xsurfacemanager.md +27 -0
  119. package/docs/de/components/xsurfacewindow.md +21 -0
  120. package/docs/de/components/xtabs.md +160 -0
  121. package/docs/de/components/xtextarea.md +98 -0
  122. package/docs/de/components/xtheme.md +167 -0
  123. package/docs/de/components/xtoast.md +62 -0
  124. package/docs/de/components/xtooltip.md +66 -0
  125. package/docs/de/components/xtype.md +82 -0
  126. package/docs/de/components/xutils.md +144 -0
  127. package/docs/de/components/xwriter.md +94 -0
  128. package/docs/de/components.md +153 -0
  129. package/docs/de/conditional-network-evidence-ci.md +38 -0
  130. package/docs/de/conditional-network-evidence.md +50 -0
  131. package/docs/de/core-migration-guide.md +110 -0
  132. package/docs/de/design-tokens.md +116 -0
  133. package/docs/de/docs-rmt-production-hardening.md +31 -0
  134. package/docs/de/enterprise-adoption.md +413 -0
  135. package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
  136. package/docs/de/epic10-platform-gates.md +62 -0
  137. package/docs/de/epic10-release-handoff.md +81 -0
  138. package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
  139. package/docs/de/epic12-rc0-handoff.md +61 -0
  140. package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
  141. package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
  142. package/docs/de/epic18-vendor-bugfixes.md +34 -0
  143. package/docs/de/existing-component-metadata.md +67 -0
  144. package/docs/de/hydration-performance-closure.md +34 -0
  145. package/docs/de/hydration-policies.md +71 -0
  146. package/docs/de/known-residual-triage.md +22 -0
  147. package/docs/de/manifest-import-policy.md +79 -0
  148. package/docs/de/manifest.md +112 -0
  149. package/docs/de/motion-contrast.md +67 -0
  150. package/docs/de/package-export-lock.md +44 -0
  151. package/docs/de/performance-measurements.md +106 -0
  152. package/docs/de/performance-regression.md +89 -0
  153. package/docs/de/performance.md +94 -0
  154. package/docs/de/previews/README.md +17 -0
  155. package/docs/de/prod-browser-csp-smokes.md +40 -0
  156. package/docs/de/public-component-types.md +79 -0
  157. package/docs/de/quick-start-guide.md +220 -0
  158. package/docs/de/rc0-adoption-guide.md +102 -0
  159. package/docs/de/rc0-gate-matrix.md +58 -0
  160. package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
  161. package/docs/de/rc1-migration-notes.md +69 -0
  162. package/docs/de/rc1-readiness.md +46 -0
  163. package/docs/de/release-owner-acceptance.md +56 -0
  164. package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
  165. package/docs/de/rmt-action-effect-runtime.md +81 -0
  166. package/docs/de/rmt-app-platform-authoring.md +54 -0
  167. package/docs/de/rmt-app-platform-fixture.md +46 -0
  168. package/docs/de/rmt-app-platform-migration-guide.md +88 -0
  169. package/docs/de/rmt-app-platform-tooling.md +79 -0
  170. package/docs/de/rmt-component-template-primitives.md +57 -0
  171. package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
  172. package/docs/de/rmt-dsl-authoring-polish.md +145 -0
  173. package/docs/de/rmt-event-routing-runtime.md +81 -0
  174. package/docs/de/rmt-first-demo-app.md +77 -0
  175. package/docs/de/rmt-first-xtend-apps.md +129 -0
  176. package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  177. package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
  178. package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
  179. package/docs/de/rmt-language-server.md +234 -0
  180. package/docs/de/rmt-lifecycle-demo.md +24 -0
  181. package/docs/de/rmt-linter.md +140 -0
  182. package/docs/de/rmt-node-ssr-adapter.md +100 -0
  183. package/docs/de/rmt-php-ssr-adapter.md +120 -0
  184. package/docs/de/rmt-production-readiness.md +63 -0
  185. package/docs/de/rmt-state-selector-runtime.md +47 -0
  186. package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
  187. package/docs/de/rmt-tooling-release-gates.md +77 -0
  188. package/docs/de/rmt-vnext-authoring.md +170 -0
  189. package/docs/de/rmt-vnext-component-primitives.md +188 -0
  190. package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
  191. package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  192. package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
  193. package/docs/de/rmt-vnext-migration-notes.md +62 -0
  194. package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
  195. package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
  196. package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
  197. package/docs/de/rmt-vnext-primitive-migration.md +119 -0
  198. package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
  199. package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
  200. package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
  201. package/docs/de/rmt-vnext-release-handoff.md +83 -0
  202. package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
  203. package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
  204. package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
  205. package/docs/de/screenreader-signals.md +56 -0
  206. package/docs/de/supply-chain-gates.md +100 -0
  207. package/docs/de/surface-manager-authoring-guide.md +94 -0
  208. package/docs/de/surface-manager-browser-lab.md +45 -0
  209. package/docs/de/surface-manager-component-lab.md +43 -0
  210. package/docs/de/surface-manager-controller.md +66 -0
  211. package/docs/de/surface-manager-layout-engines.md +32 -0
  212. package/docs/de/surface-manager-lazy-hydration.md +63 -0
  213. package/docs/de/surface-manager-migration-guide.md +122 -0
  214. package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
  215. package/docs/de/surface-manager-overlay-bridge.md +53 -0
  216. package/docs/de/surface-manager-persistence.md +30 -0
  217. package/docs/de/surface-manager-quality-gates.md +51 -0
  218. package/docs/de/surface-manager-release-handoff.md +68 -0
  219. package/docs/de/surface-manager-remote-policy.md +54 -0
  220. package/docs/de/surface-manager-rmt-authoring.md +102 -0
  221. package/docs/de/surface-manager-route-lifecycle.md +59 -0
  222. package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
  223. package/docs/de/surface-manager-side-panel-runtime.md +36 -0
  224. package/docs/de/surface-manager-stack-policy.md +39 -0
  225. package/docs/de/surface-manager-window-runtime.md +47 -0
  226. package/docs/de/surface-manager-workbench-fixture.md +43 -0
  227. package/docs/de/third-party-design-authoring.md +406 -0
  228. package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
  229. package/docs/de/trusted-dom-sanitizing.md +110 -0
  230. package/docs/de/type-exports.md +61 -0
  231. package/docs/de/typescript-components.md +63 -0
  232. package/docs/de/visual-browser-regression.md +83 -0
  233. package/docs/de/visual-owner-artifacts.md +46 -0
  234. package/docs/de/visual-snapshot-automation.md +87 -0
  235. package/docs/de/xtend-api-types.md +55 -0
  236. package/docs/de/xtend-builder-types.md +55 -0
  237. package/docs/de/xtend-catalog-types.md +44 -0
  238. package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
  239. package/docs/de/xtend-fabric.md +474 -0
  240. package/docs/de/xtend-loader-types.md +58 -0
  241. package/docs/de/xtend-loader.md +265 -0
  242. package/docs/de/xtend-policy-types.md +38 -0
  243. package/docs/de/xtend-rmt-types.md +40 -0
  244. package/docs/de/xtend-vendor-types.md +36 -0
  245. package/docs/de/xtendrmt-app-dsl.md +334 -0
  246. package/docs/de/xtendrmt-migration-guide.md +266 -0
  247. package/docs/de/xtendrmt-native-authoring.md +333 -0
  248. package/docs/de/xtendrmt-overview.md +109 -0
  249. package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
  250. package/docs/de/xtendrmt-runtime-bridge.md +155 -0
  251. package/docs/en/README.md +163 -0
  252. package/docs/en/XTend-ADR.md +221 -0
  253. package/docs/en/a11y-keyboard-smokes.md +68 -0
  254. package/docs/en/about.md +25 -0
  255. package/docs/en/api.md +171 -0
  256. package/docs/en/best-practices.md +125 -0
  257. package/docs/en/changelog.md +104 -0
  258. package/docs/en/component-catalog-coverage.md +104 -0
  259. package/docs/en/component-lab.md +103 -0
  260. package/docs/en/component-long-tail-migration.md +41 -0
  261. package/docs/en/component-platform.md +243 -0
  262. package/docs/en/component-ux-app-authoring.md +118 -0
  263. package/docs/en/component-ux-authoring.md +96 -0
  264. package/docs/en/component-ux-gates.md +45 -0
  265. package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
  266. package/docs/en/components/xalert.md +94 -0
  267. package/docs/en/components/xbutton.md +118 -0
  268. package/docs/en/components/xcalendar.md +95 -0
  269. package/docs/en/components/xcards.md +139 -0
  270. package/docs/en/components/xcheckbox.md +118 -0
  271. package/docs/en/components/xcode.md +153 -0
  272. package/docs/en/components/xdialog.md +108 -0
  273. package/docs/en/components/xdrawer.md +110 -0
  274. package/docs/en/components/xfooter.md +138 -0
  275. package/docs/en/components/xform.md +147 -0
  276. package/docs/en/components/xheader.md +308 -0
  277. package/docs/en/components/xhero.md +157 -0
  278. package/docs/en/components/xicon.md +149 -0
  279. package/docs/en/components/xinput.md +147 -0
  280. package/docs/en/components/xlightbox.md +113 -0
  281. package/docs/en/components/xlink.md +130 -0
  282. package/docs/en/components/xmasonry.md +136 -0
  283. package/docs/en/components/xmenu.md +185 -0
  284. package/docs/en/components/xmodal.md +102 -0
  285. package/docs/en/components/xplayer.md +114 -0
  286. package/docs/en/components/xpopover.md +87 -0
  287. package/docs/en/components/xprogress.md +73 -0
  288. package/docs/en/components/xradio.md +119 -0
  289. package/docs/en/components/xrouter.md +260 -0
  290. package/docs/en/components/xsection.md +136 -0
  291. package/docs/en/components/xselect.md +122 -0
  292. package/docs/en/components/xsidepanel.md +48 -0
  293. package/docs/en/components/xspinner.md +118 -0
  294. package/docs/en/components/xstate.md +163 -0
  295. package/docs/en/components/xstatus.md +71 -0
  296. package/docs/en/components/xsummary.md +90 -0
  297. package/docs/en/components/xsurfacemanager.md +42 -0
  298. package/docs/en/components/xsurfacewindow.md +31 -0
  299. package/docs/en/components/xtabs.md +187 -0
  300. package/docs/en/components/xtextarea.md +115 -0
  301. package/docs/en/components/xtheme.md +203 -0
  302. package/docs/en/components/xtoast.md +78 -0
  303. package/docs/en/components/xtooltip.md +85 -0
  304. package/docs/en/components/xtype.md +91 -0
  305. package/docs/en/components/xutils.md +161 -0
  306. package/docs/en/components/xwriter.md +106 -0
  307. package/docs/en/components.md +151 -0
  308. package/docs/en/conditional-network-evidence-ci.md +38 -0
  309. package/docs/en/conditional-network-evidence.md +50 -0
  310. package/docs/en/core-migration-guide.md +110 -0
  311. package/docs/en/design-tokens.md +137 -0
  312. package/docs/en/docs-rmt-production-hardening.md +31 -0
  313. package/docs/en/enterprise-adoption.md +413 -0
  314. package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
  315. package/docs/en/epic10-platform-gates.md +62 -0
  316. package/docs/en/epic10-release-handoff.md +81 -0
  317. package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
  318. package/docs/en/epic12-rc0-handoff.md +61 -0
  319. package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
  320. package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
  321. package/docs/en/epic18-vendor-bugfixes.md +29 -0
  322. package/docs/en/existing-component-metadata.md +67 -0
  323. package/docs/en/hydration-performance-closure.md +34 -0
  324. package/docs/en/hydration-policies.md +75 -0
  325. package/docs/en/known-residual-triage.md +22 -0
  326. package/docs/en/manifest-import-policy.md +81 -0
  327. package/docs/en/manifest.md +135 -0
  328. package/docs/en/motion-contrast.md +67 -0
  329. package/docs/en/package-export-lock.md +44 -0
  330. package/docs/en/performance-measurements.md +106 -0
  331. package/docs/en/performance-regression.md +89 -0
  332. package/docs/en/performance.md +132 -0
  333. package/docs/en/previews/README.md +17 -0
  334. package/docs/en/prod-browser-csp-smokes.md +40 -0
  335. package/docs/en/public-component-types.md +79 -0
  336. package/docs/en/quick-start-guide.md +189 -0
  337. package/docs/en/rc0-adoption-guide.md +102 -0
  338. package/docs/en/rc0-gate-matrix.md +58 -0
  339. package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
  340. package/docs/en/rc1-migration-notes.md +69 -0
  341. package/docs/en/rc1-readiness.md +46 -0
  342. package/docs/en/release-owner-acceptance.md +56 -0
  343. package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
  344. package/docs/en/rmt-action-effect-runtime.md +101 -0
  345. package/docs/en/rmt-app-platform-authoring.md +47 -0
  346. package/docs/en/rmt-app-platform-fixture.md +35 -0
  347. package/docs/en/rmt-app-platform-migration-guide.md +75 -0
  348. package/docs/en/rmt-app-platform-tooling.md +58 -0
  349. package/docs/en/rmt-component-template-primitives.md +49 -0
  350. package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
  351. package/docs/en/rmt-dsl-authoring-polish.md +143 -0
  352. package/docs/en/rmt-event-routing-runtime.md +98 -0
  353. package/docs/en/rmt-first-demo-app.md +87 -0
  354. package/docs/en/rmt-first-xtend-apps.md +127 -0
  355. package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
  356. package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
  357. package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
  358. package/docs/en/rmt-language-server.md +243 -0
  359. package/docs/en/rmt-lifecycle-demo.md +23 -0
  360. package/docs/en/rmt-linter.md +146 -0
  361. package/docs/en/rmt-node-ssr-adapter.md +99 -0
  362. package/docs/en/rmt-php-ssr-adapter.md +118 -0
  363. package/docs/en/rmt-production-readiness.md +63 -0
  364. package/docs/en/rmt-state-selector-runtime.md +34 -0
  365. package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
  366. package/docs/en/rmt-tooling-release-gates.md +77 -0
  367. package/docs/en/rmt-vnext-authoring.md +102 -0
  368. package/docs/en/rmt-vnext-component-primitives.md +185 -0
  369. package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
  370. package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
  371. package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
  372. package/docs/en/rmt-vnext-migration-notes.md +62 -0
  373. package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
  374. package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
  375. package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
  376. package/docs/en/rmt-vnext-primitive-migration.md +93 -0
  377. package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
  378. package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
  379. package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
  380. package/docs/en/rmt-vnext-release-handoff.md +83 -0
  381. package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
  382. package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
  383. package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
  384. package/docs/en/screenreader-signals.md +56 -0
  385. package/docs/en/supply-chain-gates.md +106 -0
  386. package/docs/en/surface-manager-authoring-guide.md +94 -0
  387. package/docs/en/surface-manager-browser-lab.md +45 -0
  388. package/docs/en/surface-manager-component-lab.md +43 -0
  389. package/docs/en/surface-manager-controller.md +66 -0
  390. package/docs/en/surface-manager-layout-engines.md +32 -0
  391. package/docs/en/surface-manager-lazy-hydration.md +63 -0
  392. package/docs/en/surface-manager-migration-guide.md +113 -0
  393. package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
  394. package/docs/en/surface-manager-overlay-bridge.md +53 -0
  395. package/docs/en/surface-manager-persistence.md +30 -0
  396. package/docs/en/surface-manager-quality-gates.md +51 -0
  397. package/docs/en/surface-manager-release-handoff.md +68 -0
  398. package/docs/en/surface-manager-remote-policy.md +54 -0
  399. package/docs/en/surface-manager-rmt-authoring.md +89 -0
  400. package/docs/en/surface-manager-route-lifecycle.md +59 -0
  401. package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
  402. package/docs/en/surface-manager-side-panel-runtime.md +36 -0
  403. package/docs/en/surface-manager-stack-policy.md +39 -0
  404. package/docs/en/surface-manager-window-runtime.md +47 -0
  405. package/docs/en/surface-manager-workbench-fixture.md +43 -0
  406. package/docs/en/third-party-design-authoring.md +406 -0
  407. package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
  408. package/docs/en/trusted-dom-sanitizing.md +124 -0
  409. package/docs/en/type-exports.md +61 -0
  410. package/docs/en/typescript-components.md +63 -0
  411. package/docs/en/visual-browser-regression.md +83 -0
  412. package/docs/en/visual-owner-artifacts.md +46 -0
  413. package/docs/en/visual-snapshot-automation.md +87 -0
  414. package/docs/en/xtend-api-types.md +55 -0
  415. package/docs/en/xtend-builder-types.md +55 -0
  416. package/docs/en/xtend-catalog-types.md +44 -0
  417. package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
  418. package/docs/en/xtend-fabric.md +474 -0
  419. package/docs/en/xtend-loader-types.md +58 -0
  420. package/docs/en/xtend-loader.md +265 -0
  421. package/docs/en/xtend-policy-types.md +38 -0
  422. package/docs/en/xtend-rmt-types.md +40 -0
  423. package/docs/en/xtend-vendor-types.md +36 -0
  424. package/docs/en/xtendrmt-app-dsl.md +331 -0
  425. package/docs/en/xtendrmt-migration-guide.md +256 -0
  426. package/docs/en/xtendrmt-native-authoring.md +336 -0
  427. package/docs/en/xtendrmt-overview.md +63 -0
  428. package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
  429. package/docs/en/xtendrmt-runtime-bridge.md +155 -0
  430. package/docs/enterprise-adoption.md +4 -2
  431. package/docs/epic18-media-manager-vendor-upstream.md +318 -0
  432. package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
  433. package/docs/epic18-vendor-bugfixes.md +34 -0
  434. package/docs/index.php +1056 -109
  435. package/docs/manifest.md +8 -2
  436. package/docs/menu.json +986 -133
  437. package/docs/package-export-lock.md +2 -2
  438. package/docs/public-component-types.md +2 -2
  439. package/docs/quick-start-guide.md +126 -58
  440. package/docs/rmt-action-effect-runtime.md +101 -0
  441. package/docs/rmt-app-platform-authoring.md +54 -0
  442. package/docs/rmt-app-platform-fixture.md +46 -0
  443. package/docs/rmt-app-platform-migration-guide.md +88 -0
  444. package/docs/rmt-app-platform-tooling.md +79 -0
  445. package/docs/rmt-component-template-primitives.md +57 -0
  446. package/docs/rmt-dom-descriptor-renderer.md +64 -0
  447. package/docs/rmt-dsl-authoring-polish.md +67 -44
  448. package/docs/rmt-event-routing-runtime.md +98 -0
  449. package/docs/rmt-first-demo-app.md +2 -2
  450. package/docs/rmt-first-xtend-apps.md +70 -46
  451. package/docs/rmt-language-server.md +61 -4
  452. package/docs/rmt-lifecycle-demo.md +1 -2
  453. package/docs/rmt-node-ssr-adapter.md +144 -0
  454. package/docs/rmt-php-ssr-adapter.md +158 -0
  455. package/docs/rmt-state-selector-runtime.md +47 -0
  456. package/docs/rmt-surface-resource-graph-runtime.md +92 -0
  457. package/docs/rmt-vnext-authoring.md +128 -18
  458. package/docs/rmt-vnext-component-primitives.md +188 -0
  459. package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
  460. package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
  461. package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
  462. package/docs/rmt-vnext-primitive-lowering.md +108 -0
  463. package/docs/rmt-vnext-primitive-migration.md +119 -0
  464. package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
  465. package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
  466. package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
  467. package/docs/rmt-vnext-release-handoff.md +14 -0
  468. package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
  469. package/docs/surface-manager-migration-guide.md +34 -6
  470. package/docs/surface-manager-overlay-bridge.md +9 -4
  471. package/docs/surface-manager-rmt-authoring.md +50 -34
  472. package/docs/surface-manager-workbench-fixture.md +1 -2
  473. package/docs/third-party-design-authoring.md +1 -1
  474. package/docs/type-exports.md +3 -3
  475. package/docs/utils/pageloader.js +811 -62
  476. package/docs/visual-browser-regression.md +1 -1
  477. package/docs/xtend-rmt-types.md +3 -2
  478. package/docs/xtendrmt-app-dsl.md +187 -122
  479. package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
  480. package/docs/xtendrmt-migration-guide.md +48 -17
  481. package/docs/xtendrmt-native-authoring.md +213 -217
  482. package/docs/xtendrmt-overview.md +81 -61
  483. package/docs/xtendrmt-parsedown-scheduling.md +23 -8
  484. package/fabric/package.json +1 -1
  485. package/package.json +684 -21
  486. package/tools/package.json +5 -1
  487. package/tools/rmt-editor/vscode/README.md +72 -5
  488. package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
  489. package/tools/rmt-editor/vscode/extension.d.ts +33 -0
  490. package/tools/rmt-editor/vscode/extension.js +1816 -7
  491. package/tools/rmt-editor/vscode/language-configuration.json +2 -1
  492. package/tools/rmt-editor/vscode/package.json +193 -2
  493. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
  494. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
  495. package/tools/rmt-editor/vscode/templates/launch.json +70 -0
  496. package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
  497. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  498. package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
  499. package/tools/rmt-language/app-platform-tooling.js +677 -0
  500. package/tools/rmt-language/completions.d.ts +5 -0
  501. package/tools/rmt-language/completions.js +185 -3
  502. package/tools/rmt-language/diagnostics.js +54 -0
  503. package/tools/rmt-language/hover.js +36 -0
  504. package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
  505. package/tools/rmt-language/rules/app-platform-policy.js +39 -0
  506. package/tools/rmt-language/rules/index.js +5 -1
  507. package/tools/rmt-language/semantic-graph.d.ts +6 -0
  508. package/tools/rmt-language/semantic-graph.js +928 -0
  509. package/tools/rmt-language/snippets/index.js +44 -0
  510. package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
  511. package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
  512. package/tools/rmt-language/vnext-compatibility.js +642 -0
  513. package/tools/rmt-language/vnext-compiler.d.ts +5 -0
  514. package/tools/rmt-language/vnext-compiler.js +863 -17
  515. package/tools/rmt-language/vnext-parser.js +725 -9
  516. package/tools/rmt-language/vnext-release.d.ts +1 -0
  517. package/tools/rmt-language/vnext-release.js +20 -0
  518. package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
  519. package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
  520. package/tools/rmt-language/vnext-surfaces.js +111 -52
  521. package/tools/rmt-language/vnext-tooling.d.ts +19 -1
  522. package/tools/rmt-language/vnext-tooling.js +1247 -5
  523. package/tools/rmt-language-server/protocol.js +3 -0
  524. package/tools/rmt-language-server/server.d.ts +2 -0
  525. package/tools/rmt-language-server/server.js +176 -22
  526. package/tools/rmt-linter/cli.d.ts +2 -0
  527. package/tools/rmt-linter/cli.js +62 -0
  528. package/xtend-builder/generators/registry.js +11 -0
  529. package/xtend-builder/generators/rmt-app-platform.js +239 -0
  530. package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
  531. package/xtend-builder/lib/cli.js +38 -0
  532. package/xtend-builder/package.json +3 -3
  533. package/xtend-builder/scaffold.config.js +29 -2
  534. package/xtend.css +49 -2
  535. package/xtendrmt/package.json +49 -1
  536. package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
  537. package/xtendrmt/rmt-action-effect-runtime.js +494 -0
  538. package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
  539. package/xtendrmt/rmt-component-capability-registry.js +636 -0
  540. package/xtendrmt/rmt-core.d.ts +6 -0
  541. package/xtendrmt/rmt-core.esm.js +32 -6
  542. package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
  543. package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
  544. package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
  545. package/xtendrmt/rmt-event-routing-runtime.js +666 -0
  546. package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
  547. package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
  548. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
  549. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
  550. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
  551. package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
  552. package/xtendrmt/rmt-native-shell-runtime.js +309 -0
  553. package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
  554. package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
  555. package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
  556. package/xtendrmt/rmt-runtime.browser.js +32 -6
  557. package/xtendrmt/rmt-runtime.esm.js +32 -6
  558. package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
  559. package/xtendrmt/rmt-state-selector-runtime.js +866 -0
  560. package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
  561. package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
  562. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
  563. package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
  564. package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
  565. package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
  566. package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
@@ -324,6 +324,9 @@ function toLspCodeAction(action = {}) {
324
324
  pointer: action.pointer || null,
325
325
  safe: action.safe !== false,
326
326
  confidence: action.confidence || null,
327
+ preview: action.preview || null,
328
+ fixAllActionCount: action.fixAllActionCount || null,
329
+ diagnosticCodes: Array.isArray(action.diagnosticCodes) ? action.diagnosticCodes : [],
327
330
  workpackage: action.workpackage || RMT_LANGUAGE_SERVER_WORKPACKAGE
328
331
  }
329
332
  };
@@ -3,6 +3,7 @@ import type { RmtLanguageServiceProvider, RmtToolingClassConstructor, RmtTooling
3
3
 
4
4
  export declare const createCapabilities: RmtToolingFactory;
5
5
  export declare const createRmtLanguageServer: RmtToolingFactory;
6
+ export declare const isWritableTransportOpen: RmtToolingFunction<boolean>;
6
7
  export declare const RMT_LANGUAGE_SERVER_MODULE_PATH: RmtToolingConstant;
7
8
  export declare const RMT_LANGUAGE_SERVER_PACKAGE_SCRIPT: RmtToolingConstant;
8
9
  export declare const RMT_LANGUAGE_SERVER_REPORT_SCHEMA: RmtToolingConstant;
@@ -13,3 +14,4 @@ export declare const RmtLanguageServer: RmtToolingClassConstructor<RmtLanguageSe
13
14
  export declare const runStdioServer: RmtToolingFunction;
14
15
  export declare const SERVER_NAME: RmtToolingConstant;
15
16
  export declare const SERVER_VERSION: RmtToolingConstant;
17
+ export declare const writeProtocolOutput: RmtToolingFunction;
@@ -27,11 +27,14 @@ const {
27
27
  } = require('../rmt-language/code-actions');
28
28
  const {
29
29
  analyzeRmtVNextToolingSource,
30
+ createRmtVNextPrimitiveCommandHandoff,
30
31
  findRmtVNextPointerAtPosition,
32
+ getRmtVNextToolingCodeActions,
31
33
  getRmtVNextToolingCompletions,
32
34
  getRmtVNextToolingDefinition,
33
35
  getRmtVNextToolingDocumentSymbols,
34
36
  getRmtVNextToolingHover,
37
+ RMT_VNEXT_PRIMITIVE_KERNEL_BOUNDARY_COMMAND,
35
38
  isLikelyRmtVNextSource,
36
39
  lintRmtVNextToolingSource
37
40
  } = require('../rmt-language/vnext-tooling');
@@ -170,7 +173,10 @@ function createCapabilities() {
170
173
  documentSymbolProvider: true,
171
174
  definitionProvider: true,
172
175
  codeActionProvider: {
173
- codeActionKinds: ['quickfix']
176
+ codeActionKinds: ['quickfix', 'source.fixAll', 'source.fixAll.rmt.vnext.primitives']
177
+ },
178
+ executeCommandProvider: {
179
+ commands: [RMT_VNEXT_PRIMITIVE_KERNEL_BOUNDARY_COMMAND]
174
180
  }
175
181
  };
176
182
  }
@@ -378,6 +384,7 @@ class RmtLanguageServer {
378
384
  completion(params = {}) {
379
385
  const uri = normalizeString(params.textDocument && params.textDocument.uri);
380
386
  const analysis = this.analyzeDocument(uri);
387
+ const xtend = params.xtend || {};
381
388
 
382
389
  if (!analysis) {
383
390
  return {
@@ -386,22 +393,23 @@ class RmtLanguageServer {
386
393
  };
387
394
  }
388
395
 
389
- const pointer = params.xtend && params.xtend.pointer
390
- ? params.xtend.pointer
396
+ const pointer = xtend.pointer
397
+ ? xtend.pointer
391
398
  : this.getPointerAtPosition(uri, params.position || {});
392
399
  const report = analysis.languageMode === 'vnext'
393
400
  ? getRmtVNextToolingCompletions(analysis.input, {
394
401
  rootDir: this.rootDir,
395
402
  analysis: analysis.graph,
396
- pointer,
397
- prefix: params.xtend && params.xtend.prefix ? params.xtend.prefix : '',
398
- context: params.xtend && params.xtend.context ? params.xtend.context : null
403
+ pointer: xtend.pointer || null,
404
+ prefix: xtend.prefix || '',
405
+ context: xtend.context || null,
406
+ position: params.position || null
399
407
  })
400
408
  : getRmtCompletions(analysis.input, {
401
409
  rootDir: this.rootDir,
402
410
  graph: analysis.graph,
403
411
  pointer,
404
- prefix: params.xtend && params.xtend.prefix ? params.xtend.prefix : ''
412
+ prefix: xtend.prefix || ''
405
413
  });
406
414
 
407
415
  return {
@@ -491,20 +499,46 @@ class RmtLanguageServer {
491
499
  return [];
492
500
  }
493
501
 
494
- if (analysis.languageMode === 'vnext') {
495
- return [];
496
- }
497
-
498
- const report = getRmtCodeActions(analysis.input, {
499
- rootDir: this.rootDir,
500
- graph: analysis.graph,
501
- lintReport: analysis.linterReport,
502
- contextDiagnostics: params.context && params.context.diagnostics ? params.context.diagnostics : []
503
- });
502
+ const report = analysis.languageMode === 'vnext'
503
+ ? getRmtVNextToolingCodeActions(analysis.input, {
504
+ rootDir: this.rootDir,
505
+ analysis: analysis.graph,
506
+ lintReport: analysis.linterReport,
507
+ contextDiagnostics: params.context && params.context.diagnostics ? params.context.diagnostics : []
508
+ })
509
+ : getRmtCodeActions(analysis.input, {
510
+ rootDir: this.rootDir,
511
+ graph: analysis.graph,
512
+ lintReport: analysis.linterReport,
513
+ contextDiagnostics: params.context && params.context.diagnostics ? params.context.diagnostics : []
514
+ });
504
515
 
505
516
  return toArray(report.actions).map(toLspCodeAction);
506
517
  }
507
518
 
519
+ executeCommand(params = {}) {
520
+ const command = normalizeString(params.command);
521
+ const args = toArray(params.arguments);
522
+
523
+ if (command === RMT_VNEXT_PRIMITIVE_KERNEL_BOUNDARY_COMMAND) {
524
+ return createRmtVNextPrimitiveCommandHandoff({
525
+ command,
526
+ arguments: args
527
+ }, {
528
+ rootDir: this.rootDir
529
+ });
530
+ }
531
+
532
+ return {
533
+ schema: 'xtend.rmt.language-server-command-result.v1',
534
+ workpackage: RMT_LANGUAGE_SERVER_WORKPACKAGE,
535
+ status: 'unsupported_command',
536
+ ok: false,
537
+ command,
538
+ supportedCommands: [RMT_VNEXT_PRIMITIVE_KERNEL_BOUNDARY_COMMAND]
539
+ };
540
+ }
541
+
508
542
  handleRequest(message = {}) {
509
543
  try {
510
544
  switch (message.method) {
@@ -523,6 +557,8 @@ class RmtLanguageServer {
523
557
  return createJsonRpcResponse(message.id, this.definition(message.params || {}));
524
558
  case 'textDocument/codeAction':
525
559
  return createJsonRpcResponse(message.id, this.codeAction(message.params || {}));
560
+ case 'workspace/executeCommand':
561
+ return createJsonRpcResponse(message.id, this.executeCommand(message.params || {}));
526
562
  default:
527
563
  return createJsonRpcError(message.id, -32601, `RMT Language Server method not found: ${message.method}`);
528
564
  }
@@ -584,21 +620,137 @@ function createRmtLanguageServer(options = {}) {
584
620
  return new RmtLanguageServer(options);
585
621
  }
586
622
 
623
+ function isWritableTransportOpen(stream) {
624
+ return !!(
625
+ stream &&
626
+ typeof stream.write === 'function' &&
627
+ stream.destroyed !== true &&
628
+ stream.writableEnded !== true &&
629
+ stream.writableFinished !== true &&
630
+ stream.closed !== true &&
631
+ stream.writable !== false
632
+ );
633
+ }
634
+
635
+ function writeProtocolOutput(stream, encoded) {
636
+ if (!isWritableTransportOpen(stream)) {
637
+ return {
638
+ schema: RMT_LANGUAGE_SERVER_REPORT_SCHEMA,
639
+ workpackage: RMT_LANGUAGE_SERVER_WORKPACKAGE,
640
+ ok: false,
641
+ status: 'transport-closed',
642
+ reason: 'stdio output stream is no longer writable'
643
+ };
644
+ }
645
+
646
+ try {
647
+ const accepted = stream.write(encoded);
648
+ return {
649
+ schema: RMT_LANGUAGE_SERVER_REPORT_SCHEMA,
650
+ workpackage: RMT_LANGUAGE_SERVER_WORKPACKAGE,
651
+ ok: true,
652
+ status: accepted === false ? 'backpressure' : 'written',
653
+ backpressure: accepted === false
654
+ };
655
+ } catch (error) {
656
+ return {
657
+ schema: RMT_LANGUAGE_SERVER_REPORT_SCHEMA,
658
+ workpackage: RMT_LANGUAGE_SERVER_WORKPACKAGE,
659
+ ok: false,
660
+ status: 'write-failed',
661
+ code: error && error.code ? error.code : null,
662
+ reason: error && error.message ? error.message : String(error)
663
+ };
664
+ }
665
+ }
666
+
587
667
  function runStdioServer(options = {}) {
588
668
  const server = createRmtLanguageServer(options);
669
+ const input = options.input || process.stdin;
670
+ const output = options.output || process.stdout;
671
+ const exitProcess = typeof options.exitProcess === 'function'
672
+ ? options.exitProcess
673
+ : (options.exitProcess === false ? null : process.exit.bind(process));
674
+ let transportClosed = false;
675
+
676
+ const closeTransport = (reason) => {
677
+ transportClosed = true;
678
+ server.transportClosed = true;
679
+ server.transportCloseReason = reason || null;
680
+ if (input && typeof input.pause === 'function') {
681
+ input.pause();
682
+ }
683
+ };
684
+
685
+ const maybeExit = (code) => {
686
+ if (exitProcess) {
687
+ exitProcess(code);
688
+ } else {
689
+ process.exitCode = code;
690
+ }
691
+ };
692
+
693
+ if (output && typeof output.on === 'function') {
694
+ output.on('error', (error) => {
695
+ closeTransport({
696
+ status: 'output-error',
697
+ code: error && error.code ? error.code : null,
698
+ reason: error && error.message ? error.message : String(error)
699
+ });
700
+ });
701
+ }
702
+
703
+ if (input && typeof input.on === 'function') {
704
+ input.on('end', () => {
705
+ closeTransport({ status: 'input-ended' });
706
+ maybeExit(server.shutdownRequested ? 0 : 0);
707
+ });
708
+ input.on('close', () => {
709
+ closeTransport({ status: 'input-closed' });
710
+ });
711
+ input.on('error', (error) => {
712
+ closeTransport({
713
+ status: 'input-error',
714
+ code: error && error.code ? error.code : null,
715
+ reason: error && error.message ? error.message : String(error)
716
+ });
717
+ maybeExit(1);
718
+ });
719
+ }
720
+
721
+ input.on('data', (chunk) => {
722
+ if (transportClosed) {
723
+ return;
724
+ }
725
+
726
+ let result = null;
727
+ try {
728
+ result = server.acceptProtocolData(chunk);
729
+ } catch (error) {
730
+ result = {
731
+ encodedOutputs: [
732
+ encodeProtocolMessage(createJsonRpcError(null, -32700, error && error.message ? error.message : String(error)))
733
+ ]
734
+ };
735
+ }
589
736
 
590
- process.stdin.on('data', (chunk) => {
591
- const result = server.acceptProtocolData(chunk);
592
737
  result.encodedOutputs.forEach((encoded) => {
593
- process.stdout.write(encoded);
738
+ if (transportClosed) {
739
+ return;
740
+ }
741
+ const writeResult = writeProtocolOutput(output, encoded);
742
+ if (!writeResult.ok) {
743
+ closeTransport(writeResult);
744
+ }
594
745
  });
595
746
 
596
747
  if (server.exitRequested) {
597
- process.exit(server.shutdownRequested ? 0 : 1);
748
+ closeTransport({ status: 'lsp-exit-requested' });
749
+ maybeExit(server.shutdownRequested ? 0 : 1);
598
750
  }
599
751
  });
600
752
 
601
- process.stdin.resume();
753
+ input.resume();
602
754
  return server;
603
755
  }
604
756
 
@@ -618,5 +770,7 @@ module.exports = {
618
770
  RmtLanguageServer,
619
771
  createCapabilities,
620
772
  createRmtLanguageServer,
773
+ isWritableTransportOpen,
774
+ writeProtocolOutput,
621
775
  runStdioServer
622
776
  };
@@ -3,8 +3,10 @@ import type { RmtLanguageServiceReport, RmtParseResult, RmtToolingConstant, RmtT
3
3
 
4
4
  export declare const buildHelpText: RmtToolingFactory;
5
5
  export declare const collectRmtFiles: RmtToolingFunction;
6
+ export declare const formatProblemMatcherDiagnostic: RmtToolingFunction<string>;
6
7
  export declare const lintFiles: RmtToolingFunction<RmtLanguageServiceReport>;
7
8
  export declare const parseArgs: RmtToolingFunction<RmtParseResult>;
9
+ export declare const printProblemMatcherReport: RmtToolingFunction;
8
10
  export declare const RMT_LINTER_CLI_MODULE_PATH: RmtToolingConstant;
9
11
  export declare const RMT_LINTER_CLI_PACKAGE_SCRIPT: RmtToolingConstant;
10
12
  export declare const RMT_LINTER_CLI_REPORT_SCHEMA: RmtToolingConstant;
@@ -16,6 +16,8 @@ const RMT_LINTER_CLI_MODULE_PATH = 'tools/rmt-linter/cli.js';
16
16
  const RMT_LINTER_CLI_SUITE_PATH = 'tests/rmt-language/rmt_linter_cli_suite.js';
17
17
  const RMT_LINTER_CLI_PACKAGE_SCRIPT = 'npm run test:rmt-linter-cli';
18
18
  const DEFAULT_FAIL_ON = 'error';
19
+ const DEFAULT_FORMAT = 'text';
20
+ const OUTPUT_FORMATS = new Set(['text', 'json', 'problem-matcher']);
19
21
  const SEVERITY_RANK = {
20
22
  error: 0,
21
23
  warning: 1,
@@ -31,11 +33,16 @@ function normalizeSeverity(value) {
31
33
  return Object.prototype.hasOwnProperty.call(SEVERITY_RANK, value) ? value : DEFAULT_FAIL_ON;
32
34
  }
33
35
 
36
+ function normalizeOutputFormat(value) {
37
+ return OUTPUT_FORMATS.has(value) ? value : DEFAULT_FORMAT;
38
+ }
39
+
34
40
  function parseArgs(args = [], inheritedOptions = {}) {
35
41
  const parsed = {
36
42
  help: false,
37
43
  json: !!inheritedOptions.json,
38
44
  agent: !!inheritedOptions.agent,
45
+ format: inheritedOptions.format || (inheritedOptions.json ? 'json' : DEFAULT_FORMAT),
39
46
  failOn: inheritedOptions.failOn || DEFAULT_FAIL_ON,
40
47
  rootDir: inheritedOptions.rootDir || process.cwd(),
41
48
  targets: []
@@ -52,12 +59,32 @@ function parseArgs(args = [], inheritedOptions = {}) {
52
59
 
53
60
  if (arg === '--json') {
54
61
  parsed.json = true;
62
+ parsed.format = 'json';
55
63
  continue;
56
64
  }
57
65
 
58
66
  if (arg === '--agent' || arg === '--agent-report') {
59
67
  parsed.agent = true;
60
68
  parsed.json = true;
69
+ parsed.format = 'json';
70
+ continue;
71
+ }
72
+
73
+ if (arg === '--problem-matcher') {
74
+ parsed.format = 'problem-matcher';
75
+ continue;
76
+ }
77
+
78
+ if (arg === '--format') {
79
+ parsed.format = normalizeOutputFormat(args[index + 1]);
80
+ parsed.json = parsed.format === 'json';
81
+ index += 1;
82
+ continue;
83
+ }
84
+
85
+ if (arg.startsWith('--format=')) {
86
+ parsed.format = normalizeOutputFormat(arg.slice('--format='.length));
87
+ parsed.json = parsed.format === 'json';
61
88
  continue;
62
89
  }
63
90
 
@@ -91,6 +118,7 @@ function parseArgs(args = [], inheritedOptions = {}) {
91
118
  }
92
119
 
93
120
  parsed.failOn = normalizeSeverity(parsed.failOn);
121
+ parsed.format = parsed.json ? 'json' : normalizeOutputFormat(parsed.format);
94
122
  parsed.rootDir = path.resolve(parsed.rootDir || process.cwd());
95
123
  parsed.targets = positionals;
96
124
 
@@ -108,10 +136,13 @@ function buildHelpText() {
108
136
  ' xt rmt lint "docs/**/*.rmt" --json',
109
137
  ' xt rmt lint app.rmt --agent',
110
138
  ' xt rmt lint app.rmt --fail-on warning',
139
+ ' xt rmt lint app.rmt --format problem-matcher',
111
140
  '',
112
141
  'Options:',
113
142
  ' --json Print machine-readable JSON report.',
114
143
  ' --agent Print AI-agent repair report with fix order and no-op explanations.',
144
+ ' --format <format> text, json or problem-matcher. Default: text.',
145
+ ' --problem-matcher Alias for --format problem-matcher.',
115
146
  ' --fail-on <level> error, warning, info or hint. Default: error.',
116
147
  ' --root <dir> Workspace root for relative targets.',
117
148
  ' --help Print this help text.'
@@ -386,6 +417,29 @@ function printTextReport(report, stdout, rootDir) {
386
417
  });
387
418
  }
388
419
 
420
+ function sanitizeProblemMatcherMessage(value) {
421
+ return String(value || '').replace(/\s+/g, ' ').trim();
422
+ }
423
+
424
+ function normalizeProblemMatcherSeverity(severity) {
425
+ return severity === 'hint' ? 'info' : normalizeSeverity(severity);
426
+ }
427
+
428
+ function formatProblemMatcherDiagnostic(diagnostic, rootDir) {
429
+ const location = formatLocation(diagnostic, rootDir);
430
+ const severity = normalizeProblemMatcherSeverity(diagnostic.severity);
431
+ const code = diagnostic.code || 'rmt.diagnostic';
432
+ const message = sanitizeProblemMatcherMessage(diagnostic.message || code);
433
+
434
+ return `${severity} ${code} ${location} ${message}`;
435
+ }
436
+
437
+ function printProblemMatcherReport(report, stdout, rootDir) {
438
+ report.diagnostics.forEach((diagnostic) => {
439
+ writeLine(stdout, formatProblemMatcherDiagnostic(diagnostic, rootDir));
440
+ });
441
+ }
442
+
389
443
  function runRmtLinterCli(args = process.argv.slice(2), io = {}) {
390
444
  const stdout = io.stdout || process.stdout;
391
445
  const stderr = io.stderr || process.stderr;
@@ -400,6 +454,8 @@ function runRmtLinterCli(args = process.argv.slice(2), io = {}) {
400
454
  const report = createEmptyFailureReport('Kein RMT Target angegeben. Nutze `xt rmt lint <file-or-dir>`.', options);
401
455
  if (options.json) {
402
456
  writeLine(stdout, JSON.stringify(report, null, 2));
457
+ } else if (options.format === 'problem-matcher') {
458
+ printProblemMatcherReport(report, stdout, options.rootDir);
403
459
  } else {
404
460
  writeLine(stderr, report.diagnostics[0].message);
405
461
  }
@@ -412,6 +468,8 @@ function runRmtLinterCli(args = process.argv.slice(2), io = {}) {
412
468
  const report = createEmptyFailureReport('Keine .rmt oder .rmt.json Dateien fuer die angegebenen Targets gefunden.', options);
413
469
  if (options.json) {
414
470
  writeLine(stdout, JSON.stringify(report, null, 2));
471
+ } else if (options.format === 'problem-matcher') {
472
+ printProblemMatcherReport(report, stdout, options.rootDir);
415
473
  } else {
416
474
  writeLine(stderr, report.diagnostics[0].message);
417
475
  }
@@ -424,6 +482,8 @@ function runRmtLinterCli(args = process.argv.slice(2), io = {}) {
424
482
 
425
483
  if (options.json || options.agent) {
426
484
  writeLine(stdout, JSON.stringify(report, null, 2));
485
+ } else if (options.format === 'problem-matcher') {
486
+ printProblemMatcherReport(report, stdout, options.rootDir);
427
487
  } else {
428
488
  printTextReport(report, stdout, options.rootDir);
429
489
  }
@@ -444,7 +504,9 @@ module.exports = {
444
504
  RMT_LINTER_CLI_WORKPACKAGE,
445
505
  buildHelpText,
446
506
  collectRmtFiles,
507
+ formatProblemMatcherDiagnostic,
447
508
  lintFiles,
448
509
  parseArgs,
510
+ printProblemMatcherReport,
449
511
  runRmtLinterCli
450
512
  };
@@ -19,6 +19,9 @@ const {
19
19
  const {
20
20
  createRmtAppBuild
21
21
  } = require('./rmt-build');
22
+ const {
23
+ createRmtAppPlatformBuild
24
+ } = require('./rmt-app-platform');
22
25
 
23
26
  const GENERATOR_REGISTRY_SCHEMA = 'xtend.scaffold.generator-registry.v1';
24
27
 
@@ -78,6 +81,14 @@ const GENERATORS = [
78
81
  owner: 'WP-E17-04',
79
82
  description: 'Compiles an RMT vNext template into Core JSON, XTend component/app, host, browser smoke and Scaffold report artifacts.',
80
83
  run: createRmtAppBuild
84
+ },
85
+ {
86
+ id: 'rmt-app-platform',
87
+ command: 'rmt-app-platform',
88
+ status: 'rmt-app-platform-diagnostics-source-map-and-scaffold-report',
89
+ owner: 'WP-E18-11',
90
+ description: 'Builds diagnostics, source maps and scaffold reports for generic Epic 18 RMT App Platform sources.',
91
+ run: createRmtAppPlatformBuild
81
92
  }
82
93
  ];
83
94