@ccslabs/xtend 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/LICENSE +201 -0
  3. package/README.md +184 -0
  4. package/a11y/motion-contrast-policy.d.ts +32 -0
  5. package/a11y/motion-contrast-policy.js +261 -0
  6. package/a11y/runtime-a11y-contract.d.ts +44 -0
  7. package/a11y/runtime-a11y-contract.js +385 -0
  8. package/a11y/screenreader-signals.d.ts +32 -0
  9. package/a11y/screenreader-signals.js +372 -0
  10. package/api.d.ts +168 -0
  11. package/api.js +864 -0
  12. package/catalog/catalog-public-types.d.ts +66 -0
  13. package/catalog/component-catalog-coverage.d.ts +20 -0
  14. package/catalog/component-catalog-coverage.js +377 -0
  15. package/catalog/component-long-tail-migration.d.ts +18 -0
  16. package/catalog/component-long-tail-migration.js +305 -0
  17. package/catalog/component-regression-priority.d.ts +20 -0
  18. package/catalog/component-regression-priority.js +305 -0
  19. package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
  20. package/catalog/enterprise-component-flex-release-handoff.js +437 -0
  21. package/catalog/enterprise-component-style-audit.d.ts +22 -0
  22. package/catalog/enterprise-component-style-audit.js +353 -0
  23. package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
  24. package/catalog/enterprise-form-control-theme-a11y.js +220 -0
  25. package/catalog/enterprise-icon-control-audit.d.ts +21 -0
  26. package/catalog/enterprise-icon-control-audit.js +258 -0
  27. package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
  28. package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
  29. package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
  30. package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
  31. package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
  32. package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
  33. package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
  34. package/catalog/enterprise-third-party-authoring-guide.js +310 -0
  35. package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
  36. package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
  37. package/catalog/epic10-existing-component-metadata.d.ts +25 -0
  38. package/catalog/epic10-existing-component-metadata.js +534 -0
  39. package/catalog/epic10-p0-component-wave.d.ts +28 -0
  40. package/catalog/epic10-p0-component-wave.js +688 -0
  41. package/catalog/epic10-platform-gates.d.ts +31 -0
  42. package/catalog/epic10-platform-gates.js +425 -0
  43. package/catalog/epic10-release-handoff.d.ts +30 -0
  44. package/catalog/epic10-release-handoff.js +195 -0
  45. package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
  46. package/catalog/epic11-enterprise-ux-handoff.js +403 -0
  47. package/catalog/epic12-docs-adoption.d.ts +29 -0
  48. package/catalog/epic12-docs-adoption.js +183 -0
  49. package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
  50. package/catalog/epic12-rc0-gate-matrix.js +439 -0
  51. package/catalog/epic12-rc0-handoff.d.ts +30 -0
  52. package/catalog/epic12-rc0-handoff.js +385 -0
  53. package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
  54. package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
  55. package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
  56. package/catalog/epic13-conditional-network-evidence.js +280 -0
  57. package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
  58. package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
  59. package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
  60. package/catalog/epic13-hydration-performance-closure.js +234 -0
  61. package/catalog/epic13-known-residual-triage.d.ts +32 -0
  62. package/catalog/epic13-known-residual-triage.js +339 -0
  63. package/catalog/epic13-package-export-lock.d.ts +41 -0
  64. package/catalog/epic13-package-export-lock.js +604 -0
  65. package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
  66. package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
  67. package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
  68. package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
  69. package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
  70. package/catalog/epic13-rc1-migration-notes.js +271 -0
  71. package/catalog/epic13-rc1-readiness.d.ts +33 -0
  72. package/catalog/epic13-rc1-readiness.js +487 -0
  73. package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
  74. package/catalog/epic13-release-owner-acceptance.js +354 -0
  75. package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
  76. package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
  77. package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
  78. package/catalog/epic13-rmt-production-readiness.js +314 -0
  79. package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
  80. package/catalog/epic13-trusted-dom-boundary.js +230 -0
  81. package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
  82. package/catalog/epic13-visual-owner-artifact.js +233 -0
  83. package/catalog/epic14-lsp-handoff.d.ts +28 -0
  84. package/catalog/epic14-lsp-handoff.js +312 -0
  85. package/catalog/epic14-rmt-tooling.d.ts +33 -0
  86. package/catalog/epic14-rmt-tooling.js +282 -0
  87. package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
  88. package/catalog/surface-manager-adapter-runtime.js +203 -0
  89. package/catalog/surface-manager-browser-lab.d.ts +39 -0
  90. package/catalog/surface-manager-browser-lab.js +225 -0
  91. package/catalog/surface-manager-controller.d.ts +43 -0
  92. package/catalog/surface-manager-controller.js +290 -0
  93. package/catalog/surface-manager-layout-engines.d.ts +32 -0
  94. package/catalog/surface-manager-layout-engines.js +161 -0
  95. package/catalog/surface-manager-lazy-loading.d.ts +35 -0
  96. package/catalog/surface-manager-lazy-loading.js +173 -0
  97. package/catalog/surface-manager-materialization.d.ts +37 -0
  98. package/catalog/surface-manager-materialization.js +202 -0
  99. package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
  100. package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
  101. package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
  102. package/catalog/surface-manager-overlay-bridge.js +247 -0
  103. package/catalog/surface-manager-persistence.d.ts +37 -0
  104. package/catalog/surface-manager-persistence.js +178 -0
  105. package/catalog/surface-manager-quality-gates.d.ts +48 -0
  106. package/catalog/surface-manager-quality-gates.js +324 -0
  107. package/catalog/surface-manager-release-handoff.d.ts +47 -0
  108. package/catalog/surface-manager-release-handoff.js +274 -0
  109. package/catalog/surface-manager-remote-policy.d.ts +34 -0
  110. package/catalog/surface-manager-remote-policy.js +199 -0
  111. package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
  112. package/catalog/surface-manager-rmt-authoring.js +368 -0
  113. package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
  114. package/catalog/surface-manager-route-lifecycle.js +162 -0
  115. package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
  116. package/catalog/surface-manager-runtime-release-handoff.js +245 -0
  117. package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
  118. package/catalog/surface-manager-side-panel-runtime.js +307 -0
  119. package/catalog/surface-manager-stack-policy.d.ts +32 -0
  120. package/catalog/surface-manager-stack-policy.js +169 -0
  121. package/catalog/surface-manager-window-runtime.d.ts +45 -0
  122. package/catalog/surface-manager-window-runtime.js +285 -0
  123. package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
  124. package/catalog/surface-manager-workbench-fixture.js +315 -0
  125. package/catalog/type-exports-api.js +236 -0
  126. package/catalog/type-exports-builder.js +405 -0
  127. package/catalog/type-exports-catalog.js +394 -0
  128. package/catalog/type-exports-loader.js +266 -0
  129. package/catalog/type-exports-policy.js +461 -0
  130. package/catalog/type-exports-rmt.js +407 -0
  131. package/catalog/type-exports-vendor.js +365 -0
  132. package/catalog/type-exports.js +574 -0
  133. package/components/icon-packs/core.js +154 -0
  134. package/components/icon-packs/lucide.js +136 -0
  135. package/components/manifest.json +44 -0
  136. package/components/prism.d.ts +73 -0
  137. package/components/prism.js +300 -0
  138. package/components/turndown.d.ts +34 -0
  139. package/components/turndown.js +107 -0
  140. package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
  141. package/components/x-rmt-lifecycle-demo-build.js +1175 -0
  142. package/components/x-rmt-lifecycle-demo.d.ts +83 -0
  143. package/components/x-rmt-lifecycle-demo.js +1175 -0
  144. package/components/xalert.d.ts +42 -0
  145. package/components/xalert.js +538 -0
  146. package/components/xbutton.d.ts +127 -0
  147. package/components/xbutton.js +612 -0
  148. package/components/xcalendar.d.ts +39 -0
  149. package/components/xcalendar.js +338 -0
  150. package/components/xcards.d.ts +34 -0
  151. package/components/xcards.js +253 -0
  152. package/components/xcheckbox.d.ts +48 -0
  153. package/components/xcheckbox.js +448 -0
  154. package/components/xcode.d.ts +35 -0
  155. package/components/xcode.js +370 -0
  156. package/components/xdialog.d.ts +48 -0
  157. package/components/xdialog.js +763 -0
  158. package/components/xdrawer.d.ts +61 -0
  159. package/components/xdrawer.js +654 -0
  160. package/components/xfooter.d.ts +41 -0
  161. package/components/xfooter.js +351 -0
  162. package/components/xform.d.ts +43 -0
  163. package/components/xform.js +456 -0
  164. package/components/xheader.d.ts +68 -0
  165. package/components/xheader.js +1253 -0
  166. package/components/xhero.d.ts +42 -0
  167. package/components/xhero.js +475 -0
  168. package/components/xicon.d.ts +146 -0
  169. package/components/xicon.js +688 -0
  170. package/components/xinput.d.ts +37 -0
  171. package/components/xinput.js +444 -0
  172. package/components/xlightbox.d.ts +48 -0
  173. package/components/xlightbox.js +571 -0
  174. package/components/xlink.d.ts +63 -0
  175. package/components/xlink.js +565 -0
  176. package/components/xmasonry.d.ts +35 -0
  177. package/components/xmasonry.js +666 -0
  178. package/components/xmenu.d.ts +118 -0
  179. package/components/xmenu.js +1005 -0
  180. package/components/xmodal.d.ts +64 -0
  181. package/components/xmodal.js +831 -0
  182. package/components/xplayer.d.ts +57 -0
  183. package/components/xplayer.js +1748 -0
  184. package/components/xpopover.d.ts +54 -0
  185. package/components/xpopover.js +466 -0
  186. package/components/xprogress.d.ts +40 -0
  187. package/components/xprogress.js +345 -0
  188. package/components/xradio.d.ts +50 -0
  189. package/components/xradio.js +474 -0
  190. package/components/xrouter.d.ts +244 -0
  191. package/components/xrouter.js +1841 -0
  192. package/components/xsection.d.ts +34 -0
  193. package/components/xsection.js +253 -0
  194. package/components/xselect.d.ts +46 -0
  195. package/components/xselect.js +463 -0
  196. package/components/xsidepanel.d.ts +56 -0
  197. package/components/xsidepanel.js +728 -0
  198. package/components/xspinner.d.ts +38 -0
  199. package/components/xspinner.js +388 -0
  200. package/components/xstate.d.ts +137 -0
  201. package/components/xstate.js +493 -0
  202. package/components/xstatus.d.ts +41 -0
  203. package/components/xstatus.js +381 -0
  204. package/components/xsummary.d.ts +43 -0
  205. package/components/xsummary.js +293 -0
  206. package/components/xsurfacemanager-controller.d.ts +130 -0
  207. package/components/xsurfacemanager-controller.js +699 -0
  208. package/components/xsurfacemanager.d.ts +452 -0
  209. package/components/xsurfacemanager.js +3775 -0
  210. package/components/xsurfaceoverlay-bridge.d.ts +43 -0
  211. package/components/xsurfaceoverlay-bridge.js +238 -0
  212. package/components/xsurfacewindow.d.ts +50 -0
  213. package/components/xsurfacewindow.js +576 -0
  214. package/components/xtabs.d.ts +73 -0
  215. package/components/xtabs.js +611 -0
  216. package/components/xtend-public-types.d.ts +208 -0
  217. package/components/xtextarea.d.ts +46 -0
  218. package/components/xtextarea.js +451 -0
  219. package/components/xtheme.d.ts +253 -0
  220. package/components/xtheme.js +1438 -0
  221. package/components/xtoast.d.ts +39 -0
  222. package/components/xtoast.js +389 -0
  223. package/components/xtooltip.d.ts +53 -0
  224. package/components/xtooltip.js +432 -0
  225. package/components/xtype.d.ts +42 -0
  226. package/components/xtype.js +244 -0
  227. package/components/xutils.d.ts +164 -0
  228. package/components/xutils.js +496 -0
  229. package/components/xwriter.d.ts +67 -0
  230. package/components/xwriter.js +854 -0
  231. package/design-tokens/themes/enterprise-light.json +40 -0
  232. package/design-tokens/themes/xtend-signature.json +126 -0
  233. package/design-tokens/xtend-design-tokens.d.ts +95 -0
  234. package/design-tokens/xtend-design-tokens.js +395 -0
  235. package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
  236. package/design-tokens/xtheme-token-alias-layer.js +423 -0
  237. package/docs/.htaccess +51 -0
  238. package/docs/README.md +340 -0
  239. package/docs/XTend-ADR.md +221 -0
  240. package/docs/a11y-keyboard-smokes.md +62 -0
  241. package/docs/about.md +18 -0
  242. package/docs/api.md +157 -0
  243. package/docs/best-practices.md +76 -0
  244. package/docs/component-catalog-coverage.md +58 -0
  245. package/docs/component-lab.md +103 -0
  246. package/docs/component-long-tail-migration.md +41 -0
  247. package/docs/component-platform.md +159 -0
  248. package/docs/component-ux-app-authoring.md +130 -0
  249. package/docs/component-ux-authoring.md +96 -0
  250. package/docs/component-ux-gates.md +45 -0
  251. package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
  252. package/docs/components/xalert.md +81 -0
  253. package/docs/components/xbutton.md +103 -0
  254. package/docs/components/xcalendar.md +82 -0
  255. package/docs/components/xcards.md +128 -0
  256. package/docs/components/xcheckbox.md +102 -0
  257. package/docs/components/xcode.md +126 -0
  258. package/docs/components/xdialog.md +92 -0
  259. package/docs/components/xdrawer.md +84 -0
  260. package/docs/components/xfooter.md +126 -0
  261. package/docs/components/xform.md +128 -0
  262. package/docs/components/xheader.md +308 -0
  263. package/docs/components/xhero.md +142 -0
  264. package/docs/components/xicon.md +125 -0
  265. package/docs/components/xinput.md +129 -0
  266. package/docs/components/xlightbox.md +98 -0
  267. package/docs/components/xlink.md +109 -0
  268. package/docs/components/xmasonry.md +124 -0
  269. package/docs/components/xmenu.md +158 -0
  270. package/docs/components/xmodal.md +82 -0
  271. package/docs/components/xplayer.md +104 -0
  272. package/docs/components/xpopover.md +67 -0
  273. package/docs/components/xprogress.md +56 -0
  274. package/docs/components/xradio.md +103 -0
  275. package/docs/components/xrouter.md +260 -0
  276. package/docs/components/xsection.md +125 -0
  277. package/docs/components/xselect.md +105 -0
  278. package/docs/components/xsidepanel.md +30 -0
  279. package/docs/components/xspinner.md +102 -0
  280. package/docs/components/xstate.md +148 -0
  281. package/docs/components/xstatus.md +55 -0
  282. package/docs/components/xsummary.md +78 -0
  283. package/docs/components/xsurfacemanager.md +27 -0
  284. package/docs/components/xsurfacewindow.md +21 -0
  285. package/docs/components/xtabs.md +160 -0
  286. package/docs/components/xtextarea.md +98 -0
  287. package/docs/components/xtheme.md +167 -0
  288. package/docs/components/xtoast.md +62 -0
  289. package/docs/components/xtooltip.md +66 -0
  290. package/docs/components/xtype.md +82 -0
  291. package/docs/components/xutils.md +144 -0
  292. package/docs/components/xwriter.md +94 -0
  293. package/docs/components.md +117 -0
  294. package/docs/conditional-network-evidence-ci.md +38 -0
  295. package/docs/conditional-network-evidence.md +50 -0
  296. package/docs/core-migration-guide.md +110 -0
  297. package/docs/design-tokens.md +116 -0
  298. package/docs/docs-rmt-production-hardening.md +31 -0
  299. package/docs/enterprise-adoption.md +411 -0
  300. package/docs/enterprise-component-flex-release-handoff.md +129 -0
  301. package/docs/epic10-platform-gates.md +62 -0
  302. package/docs/epic10-release-handoff.md +81 -0
  303. package/docs/epic11-enterprise-ux-handoff.md +70 -0
  304. package/docs/epic12-rc0-handoff.md +61 -0
  305. package/docs/existing-component-metadata.md +67 -0
  306. package/docs/hydration-performance-closure.md +34 -0
  307. package/docs/hydration-policies.md +71 -0
  308. package/docs/index.php +1625 -0
  309. package/docs/known-residual-triage.md +22 -0
  310. package/docs/manifest-import-policy.md +79 -0
  311. package/docs/manifest.md +106 -0
  312. package/docs/menu.json +1190 -0
  313. package/docs/motion-contrast.md +67 -0
  314. package/docs/package-export-lock.md +44 -0
  315. package/docs/performance-measurements.md +106 -0
  316. package/docs/performance-regression.md +89 -0
  317. package/docs/performance.md +94 -0
  318. package/docs/previews/README.md +17 -0
  319. package/docs/prod-browser-csp-smokes.md +40 -0
  320. package/docs/public-component-types.md +79 -0
  321. package/docs/quick-start-guide.md +152 -0
  322. package/docs/rc0-adoption-guide.md +102 -0
  323. package/docs/rc0-gate-matrix.md +58 -0
  324. package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
  325. package/docs/rc1-migration-notes.md +69 -0
  326. package/docs/rc1-readiness.md +46 -0
  327. package/docs/release-owner-acceptance.md +56 -0
  328. package/docs/release-report-pack-dry-run-evidence.md +39 -0
  329. package/docs/rmt-dsl-authoring-polish.md +122 -0
  330. package/docs/rmt-first-demo-app.md +77 -0
  331. package/docs/rmt-first-xtend-apps.md +105 -0
  332. package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  333. package/docs/rmt-kernel-security-hardening-migration.md +50 -0
  334. package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
  335. package/docs/rmt-language-server.md +177 -0
  336. package/docs/rmt-lifecycle-demo.md +25 -0
  337. package/docs/rmt-linter.md +140 -0
  338. package/docs/rmt-production-readiness.md +63 -0
  339. package/docs/rmt-tooling-release-gates.md +77 -0
  340. package/docs/rmt-vnext-authoring.md +60 -0
  341. package/docs/rmt-vnext-cross-surface-events.md +68 -0
  342. package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  343. package/docs/rmt-vnext-migration-notes.md +62 -0
  344. package/docs/rmt-vnext-release-handoff.md +69 -0
  345. package/docs/rmt-vnext-remote-surfaces.md +90 -0
  346. package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
  347. package/docs/screenreader-signals.md +56 -0
  348. package/docs/supply-chain-gates.md +100 -0
  349. package/docs/surface-manager-authoring-guide.md +94 -0
  350. package/docs/surface-manager-browser-lab.md +45 -0
  351. package/docs/surface-manager-component-lab.md +43 -0
  352. package/docs/surface-manager-controller.md +66 -0
  353. package/docs/surface-manager-layout-engines.md +32 -0
  354. package/docs/surface-manager-lazy-hydration.md +63 -0
  355. package/docs/surface-manager-migration-guide.md +94 -0
  356. package/docs/surface-manager-native-rmt-surfaces.md +38 -0
  357. package/docs/surface-manager-overlay-bridge.md +53 -0
  358. package/docs/surface-manager-persistence.md +30 -0
  359. package/docs/surface-manager-quality-gates.md +51 -0
  360. package/docs/surface-manager-release-handoff.md +68 -0
  361. package/docs/surface-manager-remote-policy.md +54 -0
  362. package/docs/surface-manager-rmt-authoring.md +86 -0
  363. package/docs/surface-manager-route-lifecycle.md +59 -0
  364. package/docs/surface-manager-runtime-release-handoff.md +69 -0
  365. package/docs/surface-manager-side-panel-runtime.md +36 -0
  366. package/docs/surface-manager-stack-policy.md +39 -0
  367. package/docs/surface-manager-window-runtime.md +47 -0
  368. package/docs/surface-manager-workbench-fixture.md +43 -0
  369. package/docs/third-party-design-authoring.md +406 -0
  370. package/docs/trusted-dom-boundary-browser-proof.md +32 -0
  371. package/docs/trusted-dom-sanitizing.md +110 -0
  372. package/docs/type-exports.md +61 -0
  373. package/docs/typescript-components.md +63 -0
  374. package/docs/utils/fabric-runtime.js +650 -0
  375. package/docs/utils/pageloader.js +2823 -0
  376. package/docs/utils/parsedown.php +298 -0
  377. package/docs/visual-browser-regression.md +83 -0
  378. package/docs/visual-owner-artifacts.md +46 -0
  379. package/docs/visual-snapshot-automation.md +87 -0
  380. package/docs/xtend-api-types.md +55 -0
  381. package/docs/xtend-builder-types.md +55 -0
  382. package/docs/xtend-catalog-types.md +44 -0
  383. package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
  384. package/docs/xtend-fabric.md +474 -0
  385. package/docs/xtend-loader-types.md +58 -0
  386. package/docs/xtend-loader.md +265 -0
  387. package/docs/xtend-policy-types.md +38 -0
  388. package/docs/xtend-rmt-types.md +39 -0
  389. package/docs/xtend-vendor-types.md +36 -0
  390. package/docs/xtendrmt-app-dsl.md +269 -0
  391. package/docs/xtendrmt-migration-guide.md +235 -0
  392. package/docs/xtendrmt-native-authoring.md +337 -0
  393. package/docs/xtendrmt-overview.md +89 -0
  394. package/docs/xtendrmt-parsedown-docs.rmt +956 -0
  395. package/docs/xtendrmt-parsedown-scheduling.md +301 -0
  396. package/docs/xtendrmt-runtime-bridge.md +155 -0
  397. package/fabric/hydration-policy.d.ts +27 -0
  398. package/fabric/hydration-policy.js +306 -0
  399. package/fabric/package.json +58 -0
  400. package/fabric/rmt-lane-mapping.d.ts +47 -0
  401. package/fabric/rmt-lane-mapping.js +504 -0
  402. package/fabric/xtend-fabric.d.ts +81 -0
  403. package/fabric/xtend-fabric.js +2669 -0
  404. package/fabric/xtend-policy-public-types.d.ts +135 -0
  405. package/package.json +8225 -0
  406. package/security/README.md +54 -0
  407. package/security/manifest-import-policy.d.ts +43 -0
  408. package/security/manifest-import-policy.js +260 -0
  409. package/security/supply-chain-gate-policy.d.ts +45 -0
  410. package/security/supply-chain-gate-policy.js +249 -0
  411. package/security/trusted-dom-policy.d.ts +36 -0
  412. package/security/trusted-dom-policy.js +316 -0
  413. package/tools/package.json +77 -0
  414. package/tools/rmt-editor/vscode/README.md +33 -0
  415. package/tools/rmt-editor/vscode/extension.d.ts +9 -0
  416. package/tools/rmt-editor/vscode/extension.js +55 -0
  417. package/tools/rmt-editor/vscode/language-configuration.json +28 -0
  418. package/tools/rmt-editor/vscode/package.json +83 -0
  419. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
  420. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
  421. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  422. package/tools/rmt-language/code-actions.d.ts +15 -0
  423. package/tools/rmt-language/code-actions.js +566 -0
  424. package/tools/rmt-language/completions.d.ts +22 -0
  425. package/tools/rmt-language/completions.js +475 -0
  426. package/tools/rmt-language/definitions.d.ts +13 -0
  427. package/tools/rmt-language/definitions.js +212 -0
  428. package/tools/rmt-language/diagnostics.d.ts +23 -0
  429. package/tools/rmt-language/diagnostics.js +486 -0
  430. package/tools/rmt-language/format-adapter.d.ts +16 -0
  431. package/tools/rmt-language/format-adapter.js +270 -0
  432. package/tools/rmt-language/hover.d.ts +12 -0
  433. package/tools/rmt-language/hover.js +326 -0
  434. package/tools/rmt-language/kernel-escalation.d.ts +122 -0
  435. package/tools/rmt-language/kernel-escalation.js +427 -0
  436. package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
  437. package/tools/rmt-language/kernel-panic-monitor.js +674 -0
  438. package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
  439. package/tools/rmt-language/kernel-policy-parity.js +629 -0
  440. package/tools/rmt-language/kernel-recovery.d.ts +173 -0
  441. package/tools/rmt-language/kernel-recovery.js +666 -0
  442. package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
  443. package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
  444. package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
  445. package/tools/rmt-language/kernel-security-regression.js +465 -0
  446. package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
  447. package/tools/rmt-language/kernel-trust-authority.js +549 -0
  448. package/tools/rmt-language/parser.d.ts +14 -0
  449. package/tools/rmt-language/parser.js +111 -0
  450. package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
  451. package/tools/rmt-language/rules/boundary-policy.js +81 -0
  452. package/tools/rmt-language/rules/document-policy.js +65 -0
  453. package/tools/rmt-language/rules/index.js +29 -0
  454. package/tools/rmt-language/rules/route-policy.js +81 -0
  455. package/tools/rmt-language/rules/scheduler-policy.js +66 -0
  456. package/tools/rmt-language/rules/template-policy.js +130 -0
  457. package/tools/rmt-language/semantic-graph.d.ts +18 -0
  458. package/tools/rmt-language/semantic-graph.js +827 -0
  459. package/tools/rmt-language/snippets/README.md +17 -0
  460. package/tools/rmt-language/snippets/index.d.ts +17 -0
  461. package/tools/rmt-language/snippets/index.js +417 -0
  462. package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
  463. package/tools/rmt-language/source-model.d.ts +14 -0
  464. package/tools/rmt-language/source-model.js +731 -0
  465. package/tools/rmt-language/symbols.d.ts +13 -0
  466. package/tools/rmt-language/symbols.js +183 -0
  467. package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
  468. package/tools/rmt-language/vnext-compatibility.js +675 -0
  469. package/tools/rmt-language/vnext-compiler.d.ts +17 -0
  470. package/tools/rmt-language/vnext-compiler.js +716 -0
  471. package/tools/rmt-language/vnext-composition.d.ts +30 -0
  472. package/tools/rmt-language/vnext-composition.js +595 -0
  473. package/tools/rmt-language/vnext-conditions.d.ts +25 -0
  474. package/tools/rmt-language/vnext-conditions.js +474 -0
  475. package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
  476. package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
  477. package/tools/rmt-language/vnext-degradation.d.ts +23 -0
  478. package/tools/rmt-language/vnext-degradation.js +428 -0
  479. package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
  480. package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
  481. package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
  482. package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
  483. package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
  484. package/tools/rmt-language/vnext-enterprise-release.js +472 -0
  485. package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
  486. package/tools/rmt-language/vnext-event-governance.js +488 -0
  487. package/tools/rmt-language/vnext-events.d.ts +44 -0
  488. package/tools/rmt-language/vnext-events.js +680 -0
  489. package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
  490. package/tools/rmt-language/vnext-import-resolver.js +642 -0
  491. package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
  492. package/tools/rmt-language/vnext-lifecycle.js +404 -0
  493. package/tools/rmt-language/vnext-parser.d.ts +21 -0
  494. package/tools/rmt-language/vnext-parser.js +1391 -0
  495. package/tools/rmt-language/vnext-regression.d.ts +25 -0
  496. package/tools/rmt-language/vnext-regression.js +394 -0
  497. package/tools/rmt-language/vnext-release.d.ts +29 -0
  498. package/tools/rmt-language/vnext-release.js +293 -0
  499. package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
  500. package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
  501. package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
  502. package/tools/rmt-language/vnext-remote-compiler.js +520 -0
  503. package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
  504. package/tools/rmt-language/vnext-remote-manifest.js +538 -0
  505. package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
  506. package/tools/rmt-language/vnext-remote-security.js +380 -0
  507. package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
  508. package/tools/rmt-language/vnext-remote-tooling.js +805 -0
  509. package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
  510. package/tools/rmt-language/vnext-scheduler.js +469 -0
  511. package/tools/rmt-language/vnext-security.d.ts +28 -0
  512. package/tools/rmt-language/vnext-security.js +597 -0
  513. package/tools/rmt-language/vnext-streaming.d.ts +28 -0
  514. package/tools/rmt-language/vnext-streaming.js +593 -0
  515. package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
  516. package/tools/rmt-language/vnext-surfaces.js +406 -0
  517. package/tools/rmt-language/vnext-tooling.d.ts +25 -0
  518. package/tools/rmt-language/vnext-tooling.js +728 -0
  519. package/tools/rmt-language-server/protocol.d.ts +22 -0
  520. package/tools/rmt-language-server/protocol.js +352 -0
  521. package/tools/rmt-language-server/server.d.ts +15 -0
  522. package/tools/rmt-language-server/server.js +622 -0
  523. package/tools/rmt-linter/cli.d.ts +14 -0
  524. package/tools/rmt-linter/cli.js +450 -0
  525. package/tools/rmt-linter/reporter.d.ts +16 -0
  526. package/tools/rmt-linter/reporter.js +472 -0
  527. package/xtend-builder/README.md +83 -0
  528. package/xtend-builder/a11y/README.md +42 -0
  529. package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
  530. package/xtend-builder/a11y/component-a11y-profile.js +314 -0
  531. package/xtend-builder/blueprints/README.md +105 -0
  532. package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
  533. package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
  534. package/xtend-builder/builder-public-types.d.ts +234 -0
  535. package/xtend-builder/extensions/README.md +26 -0
  536. package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
  537. package/xtend-builder/extensions/component-extension-points.js +277 -0
  538. package/xtend-builder/generators/README.md +149 -0
  539. package/xtend-builder/generators/component-files.d.ts +5 -0
  540. package/xtend-builder/generators/component-files.js +769 -0
  541. package/xtend-builder/generators/component-plan.d.ts +4 -0
  542. package/xtend-builder/generators/component-plan.js +104 -0
  543. package/xtend-builder/generators/registry.d.ts +6 -0
  544. package/xtend-builder/generators/registry.js +118 -0
  545. package/xtend-builder/generators/rmt-build.js +738 -0
  546. package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
  547. package/xtend-builder/lib/cli.d.ts +9 -0
  548. package/xtend-builder/lib/cli.js +543 -0
  549. package/xtend-builder/lib/layout.d.ts +6 -0
  550. package/xtend-builder/lib/layout.js +153 -0
  551. package/xtend-builder/lib/package-resolver.js +25 -0
  552. package/xtend-builder/package.json +90 -0
  553. package/xtend-builder/performance/README.md +31 -0
  554. package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
  555. package/xtend-builder/performance/component-performance-profile.js +347 -0
  556. package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
  557. package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
  558. package/xtend-builder/preview/README.md +61 -0
  559. package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
  560. package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
  561. package/xtend-builder/preview/component-lab.d.ts +14 -0
  562. package/xtend-builder/preview/component-lab.js +278 -0
  563. package/xtend-builder/preview/component-preview.d.ts +5 -0
  564. package/xtend-builder/preview/component-preview.js +160 -0
  565. package/xtend-builder/scaffold.config.d.ts +4 -0
  566. package/xtend-builder/scaffold.config.js +2056 -0
  567. package/xtend-builder/scaffold.d.ts +3 -0
  568. package/xtend-builder/scaffold.js +11 -0
  569. package/xtend-builder/templates/README.md +33 -0
  570. package/xtend-builder/templates/component/a11y.template.ts +11 -0
  571. package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
  572. package/xtend-builder/templates/component/component-suite.template.js +108 -0
  573. package/xtend-builder/templates/component/contract.template.ts +10 -0
  574. package/xtend-builder/templates/component/demo-plan.template.md +73 -0
  575. package/xtend-builder/templates/component/docs.template.md +301 -0
  576. package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
  577. package/xtend-builder/templates/component/fixture.template.html +37 -0
  578. package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
  579. package/xtend-builder/templates/component/performance.template.ts +13 -0
  580. package/xtend-builder/templates/component/rmt.template.ts +12 -0
  581. package/xtend-builder/templates/component/source.template.d.ts +2 -0
  582. package/xtend-builder/templates/component/source.template.js +137 -0
  583. package/xtend-builder/templates/component/source.template.ts +110 -0
  584. package/xtend-builder/templates/component/types.template.d.ts +423 -0
  585. package/xtend-builder/templates/loader.d.ts +4 -0
  586. package/xtend-builder/templates/loader.js +51 -0
  587. package/xtend-builder/templates/registry.d.ts +6 -0
  588. package/xtend-builder/templates/registry.js +119 -0
  589. package/xtend-builder/typing/README.md +130 -0
  590. package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
  591. package/xtend-builder/typing/component-contract-v2.js +248 -0
  592. package/xtend-builder/typing/component-network-contract.d.ts +22 -0
  593. package/xtend-builder/typing/component-network-contract.js +478 -0
  594. package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
  595. package/xtend-builder/typing/component-shell-contract.js +312 -0
  596. package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
  597. package/xtend-builder/typing/component-styling-contract.js +301 -0
  598. package/xtend-builder/typing/component-types.d.ts +10 -0
  599. package/xtend-builder/typing/component-types.js +551 -0
  600. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
  601. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
  602. package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
  603. package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
  604. package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
  605. package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
  606. package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
  607. package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
  608. package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
  609. package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
  610. package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
  611. package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
  612. package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
  613. package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
  614. package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
  615. package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
  616. package/xtend-builder/utils/README.md +8 -0
  617. package/xtend-builder/utils/naming.d.ts +7 -0
  618. package/xtend-builder/utils/naming.js +36 -0
  619. package/xtend-builder/utils/validation.d.ts +5 -0
  620. package/xtend-builder/utils/validation.js +95 -0
  621. package/xtend-builder/wiring/README.md +46 -0
  622. package/xtend-builder/wiring/features.d.ts +5 -0
  623. package/xtend-builder/wiring/features.js +165 -0
  624. package/xtend-builder/wiring/hydration.d.ts +4 -0
  625. package/xtend-builder/wiring/hydration.js +44 -0
  626. package/xtend-builder/wiring/manifest.d.ts +5 -0
  627. package/xtend-builder/wiring/manifest.js +48 -0
  628. package/xtend-builder/workflows/README.md +47 -0
  629. package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
  630. package/xtend-builder/workflows/developer-workflow.js +125 -0
  631. package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
  632. package/xtend-builder/writing/manifest-patcher.js +391 -0
  633. package/xtend-builder/writing/write-plan.d.ts +148 -0
  634. package/xtend-builder/writing/write-plan.js +646 -0
  635. package/xtend-dev.d.ts +23 -0
  636. package/xtend-dev.js +4 -0
  637. package/xtend-loader.d.ts +201 -0
  638. package/xtend-loader.js +1704 -0
  639. package/xtend.css +402 -0
  640. package/xtendrmt/package.json +64 -0
  641. package/xtendrmt/rmt-core.d.ts +4452 -0
  642. package/xtendrmt/rmt-core.esm.js +25793 -0
  643. package/xtendrmt/rmt-first-demo-app.js +265 -0
  644. package/xtendrmt/rmt-first-demo-app.rmt +737 -0
  645. package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
  646. package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
  647. package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
  648. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
  649. package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
  650. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
  651. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
  652. package/xtendrmt/rmt-manifest.json +548 -0
  653. package/xtendrmt/rmt-runtime.browser.js +26183 -0
  654. package/xtendrmt/rmt-runtime.esm.js +26214 -0
  655. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
  656. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
  657. package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
  658. package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
  659. package/xtendrmt/rmt.schema.json +3145 -0
  660. package/xtendrmt/surface-workbench.js +316 -0
  661. package/xtendrmt/surface-workbench.rmt +762 -0
  662. package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
  663. package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
  664. package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
@@ -0,0 +1,51 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const {
4
+ getTemplateForArtifact
5
+ } = require('./registry');
6
+
7
+ const rootDir = path.resolve(__dirname, '..', '..');
8
+
9
+ function getTemplateAbsolutePath(template) {
10
+ return path.join(rootDir, template.path);
11
+ }
12
+
13
+ function renderTemplateString(template, values) {
14
+ return String(template).replace(/\{\{([a-zA-Z0-9_]+)\}\}/g, (match, key) => {
15
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
16
+ return String(values[key]);
17
+ }
18
+
19
+ return match;
20
+ });
21
+ }
22
+
23
+ function renderTemplateForArtifact(artifact, values) {
24
+ const template = getTemplateForArtifact(artifact);
25
+ if (!template) {
26
+ return {
27
+ ok: false,
28
+ error: `No template registered for artifact "${artifact}".`
29
+ };
30
+ }
31
+
32
+ const absolutePath = getTemplateAbsolutePath(template);
33
+ if (!fs.existsSync(absolutePath)) {
34
+ return {
35
+ ok: false,
36
+ error: `Template file missing: ${template.path}`,
37
+ template
38
+ };
39
+ }
40
+
41
+ return {
42
+ ok: true,
43
+ template,
44
+ content: renderTemplateString(fs.readFileSync(absolutePath, 'utf8'), values)
45
+ };
46
+ }
47
+
48
+ module.exports = {
49
+ renderTemplateForArtifact,
50
+ renderTemplateString
51
+ };
@@ -0,0 +1,6 @@
1
+ import type { XtendBuilderTemplateDefinition, XtendBuilderTemplateRegistry } from '../builder-public-types';
2
+
3
+ export declare const TEMPLATE_REGISTRY: XtendBuilderTemplateDefinition[];
4
+ export declare const TEMPLATE_REGISTRY_SCHEMA: string;
5
+ export declare function getTemplateForArtifact(artifactId: string): XtendBuilderTemplateDefinition | null;
6
+ export declare function getTemplateRegistry(): XtendBuilderTemplateRegistry;
@@ -0,0 +1,119 @@
1
+ const TEMPLATE_REGISTRY_SCHEMA = 'xtend.scaffold.template-registry.v1';
2
+
3
+ const TEMPLATE_REGISTRY = [
4
+ {
5
+ id: 'component.source',
6
+ artifact: 'component',
7
+ path: 'xtend-builder/templates/component/source.template.js',
8
+ status: 'implemented-WP-E03-07',
9
+ purpose: 'Productive component source template for scaffold previews.'
10
+ },
11
+ {
12
+ id: 'component.docs',
13
+ artifact: 'docs',
14
+ path: 'xtend-builder/templates/component/docs.template.md',
15
+ status: 'implemented-WP-E03-07',
16
+ purpose: 'Public component documentation template.'
17
+ },
18
+ {
19
+ id: 'component.tests',
20
+ artifact: 'tests',
21
+ path: 'xtend-builder/templates/component/component-suite.template.js',
22
+ status: 'implemented-WP-E03-07',
23
+ purpose: 'Component-level test suite template with real assertions.'
24
+ },
25
+ {
26
+ id: 'component.fixture',
27
+ artifact: 'fixtures',
28
+ path: 'xtend-builder/templates/component/fixture.template.html',
29
+ status: 'implemented-WP-E03-07',
30
+ purpose: 'Repo-local component fixture template.'
31
+ },
32
+ {
33
+ id: 'component.types',
34
+ artifact: 'types',
35
+ path: 'xtend-builder/templates/component/types.template.d.ts',
36
+ status: 'implemented-WP-E03-09',
37
+ purpose: 'TypeScript public API and XTendRMT adapter attachment template.'
38
+ },
39
+ {
40
+ id: 'component.manifest-plan',
41
+ artifact: 'manifest',
42
+ path: 'xtend-builder/templates/component/manifest-plan.template.json',
43
+ status: 'implemented-WP-E03-07',
44
+ purpose: 'Manifest patch-plan template.'
45
+ },
46
+ {
47
+ id: 'component.demo-plan',
48
+ artifact: 'demo',
49
+ path: 'xtend-builder/templates/component/demo-plan.template.md',
50
+ status: 'implemented-WP-E03-10',
51
+ purpose: 'Preview reference-plan template for local reference-gate registration.'
52
+ },
53
+ {
54
+ id: 'component.ts-source',
55
+ artifact: 'ts-source',
56
+ path: 'xtend-builder/templates/component/source.template.ts',
57
+ status: 'implemented-WP-E10-07',
58
+ purpose: 'TypeScript-first component source template with RMT, Fabric, A11y and Performance metadata.'
59
+ },
60
+ {
61
+ id: 'component.ts-contract',
62
+ artifact: 'ts-contract',
63
+ path: 'xtend-builder/templates/component/contract.template.ts',
64
+ status: 'implemented-WP-E10-07',
65
+ purpose: 'Component Contract v2 source template.'
66
+ },
67
+ {
68
+ id: 'component.ts-rmt',
69
+ artifact: 'ts-rmt',
70
+ path: 'xtend-builder/templates/component/rmt.template.ts',
71
+ status: 'implemented-WP-E10-07',
72
+ purpose: 'RMT component metadata template for xtend.component adapter authoring.'
73
+ },
74
+ {
75
+ id: 'component.ts-a11y',
76
+ artifact: 'ts-a11y',
77
+ path: 'xtend-builder/templates/component/a11y.template.ts',
78
+ status: 'implemented-WP-E10-07',
79
+ purpose: 'Typed A11y profile template for new TypeScript components.'
80
+ },
81
+ {
82
+ id: 'component.ts-performance',
83
+ artifact: 'ts-performance',
84
+ path: 'xtend-builder/templates/component/performance.template.ts',
85
+ status: 'implemented-WP-E10-07',
86
+ purpose: 'Typed Performance profile template for new TypeScript components.'
87
+ },
88
+ {
89
+ id: 'component.ts-fixture',
90
+ artifact: 'ts-fixture',
91
+ path: 'xtend-builder/templates/component/fixture-data.template.ts',
92
+ status: 'implemented-WP-E10-07',
93
+ purpose: 'Typed fixture-data template for Component Lab, tests and RMT previews.'
94
+ }
95
+ ];
96
+
97
+ function clone(value) {
98
+ return JSON.parse(JSON.stringify(value));
99
+ }
100
+
101
+ function getTemplateRegistry() {
102
+ return {
103
+ schema: TEMPLATE_REGISTRY_SCHEMA,
104
+ root: 'xtend-builder/templates/',
105
+ templates: clone(TEMPLATE_REGISTRY)
106
+ };
107
+ }
108
+
109
+ function getTemplateForArtifact(artifact) {
110
+ const template = TEMPLATE_REGISTRY.find((entry) => entry.artifact === artifact);
111
+ return template ? clone(template) : null;
112
+ }
113
+
114
+ module.exports = {
115
+ TEMPLATE_REGISTRY,
116
+ TEMPLATE_REGISTRY_SCHEMA,
117
+ getTemplateForArtifact,
118
+ getTemplateRegistry
119
+ };
@@ -0,0 +1,130 @@
1
+ # XTend-Scaffold Typing
2
+
3
+ Dieser Bereich enthaelt ab `WP-E03-09` den Typisierungs-Contract fuer scaffolded Komponenten.
4
+
5
+ `xtend-builder/typing/component-types.js` stellt das Schema `xtend.scaffold.component-typing.v1` bereit. Das Modul erzeugt keine Runtime und schreibt keine Dateien. Es leitet aus Component-Plan und Feature-Wiring einen reviewbaren Contract fuer `.d.ts`-Artefakte ab.
6
+
7
+ ```bash
8
+ node xtend-builder/scaffold.js typing --tag x-example --profile display --feature state --json
9
+ ```
10
+
11
+ ## Contract
12
+
13
+ Der Typing-Contract umfasst:
14
+
15
+ - Zielpfad `components/<tag>.d.ts`
16
+ - Event-Name-Union und Event-Detail-Interface
17
+ - Attribute-Map fuer oeffentliche Attribute
18
+ - Property-Map fuer spaetere explizite Properties
19
+ - HTMLElementTagNameMap-Erweiterung
20
+ - ab Epic 10 / `WP-E10-03` den Component Contract v2 `xtend.component.contract.v2` fuer TypeScript Source, Public API, RMT, Fabric, Telemetry, Lanes, A11y, Performance, Tests, Docs und Maturity
21
+ - Scaffold-Wiring-Interface fuer State-, Event- und API-Signale
22
+ - vorbereitete XTendRMT-Anschluss-Typen fuer `xtend.component` und `xtend.xrouter`
23
+ - ab Epic 04 / `WP-E04-03` den Component Contract `xtend.rmt.component-contract.v1` mit Manifest Lookup, Attributes, Hydration, Diagnostics und Kernel-Grenzen
24
+ - ab Epic 04 / `WP-E04-04` den Template Authoring Contract `xtend.rmt.template-authoring.v1` mit Template-Refs, Component-Refs, Slots, Events, Hydration und Adapter-Grenzen
25
+ - ab Epic 04 / `WP-E04-05` den Root Handshake Contract `xtend.rmt.root-handshake.v1` mit Root-Refs, Lifecycle-Phasen, Scheduler-Endpoint-Hints und Digital-Twin-State-Policy
26
+ - ab Epic 04 / `WP-E04-06` den Host Capability Contract `xtend.rmt.host-capabilities.v1` fuer Manifest, Custom Elements, `xstate`, Hydration, Scheduler-Endpoints, Theme, API, Router und Diagnostics
27
+ - ab Epic 04 / `WP-E04-07` das RMT Compatibility Binding `xtend.scaffold.rmt-compatibility-binding.v1`, das Typing, Manifest-Plan, Preview-Plan und Extension-Punkte zusammenfuehrt
28
+ - ab Epic 04 / `WP-E04-08` den dedizierten Gate `node scripts/run_xtend_tests.js rmt-compatibility --json`
29
+
30
+ ## XTendRMT-Grenze
31
+
32
+ Der RMT-Anschluss ist ein Typ- und Adapter-Contract. Er implementiert keine Bridge, erweitert keinen RMT-Kernel und schreibt keine `.rmt` Dateien. Ab `WP-E04-03` beschreibt er explizit, welche Felder der neutrale RMT Component Record besitzt und welche Arbeit beim XTend Host Adapter bleibt. Ab `WP-E04-04` beschreibt er zusaetzlich, wie RMT Templates XTend-Komponenten ueber `xtend.template`, `componentRef`, `slots` und `events` authoren koennen. Ab `WP-E04-05` beschreibt er, wie der RMT Scheduler Root-Phasen plant, ohne Custom-Element-Lifecycle, `xstate` oder Host Cleanup selbst auszufuehren. Ab `WP-E04-06` beschreibt er, welche XTend Host Capabilities als Adapterdaten verhandelbar sind. Ab `WP-E04-07` bindet er diese Vertrage in einen gemeinsamen Dry-Run-Contract fuer Typing, Manifest, Preview und Extensions. Ab `WP-E04-08` prueft `rmt-compatibility` diesen Contract als eigenen Runner-Gate. Die produktive Bridge bleibt Epic 05 vorbehalten.
33
+
34
+ ## Component Contract v2
35
+
36
+ `component-contract-v2.js` stellt ab `WP-E10-03` den Contract `xtend.component.contract.v2` bereit. Das Modul erzeugt einen reviewbaren Contract fuer neue TypeScript-first Komponenten und bietet einen Validator fuer Pflichtdomains, ESM-Runtime, RMT-Kernel-Boundary und Public-API-Form.
37
+
38
+ ```bash
39
+ node scripts/run_xtend_tests.js component-contract-v2 --json
40
+ ```
41
+
42
+ Der Contract ist generator-only. Er fuehrt keine Runtime-Imports, keine XTendRMT-Kernel-Imports und keine produktiven Writes aus.
43
+
44
+ ## Component Network Contract
45
+
46
+ `component-network-contract.js` stellt ab `WP-E11-06` den Contract `xtend.component.network.v1` bereit. Das Modul modelliert Events, Commands, Contexts, Forms, Validation, Feedback, Overlays, Routing, Theme, State, RMT Authoring und Fabric Diagnostics fuer vernetzbare Enterprise-Komponenten.
47
+
48
+ ```bash
49
+ node scripts/run_xtend_tests.js component-network-contract --json
50
+ ```
51
+
52
+ Der Contract ist generator-only. Er beschreibt Adapterdaten fuer RMT ueber `xtend.rmt.component-network-authoring.v1`, importiert aber keine XTend-Typen in den RMT Kernel.
53
+
54
+ ## RMT Shell Authoring Contract
55
+
56
+ `rmt-shell-authoring-contract.js` stellt ab `WP-E11-07` den Contract `xtend.rmt.shell-authoring.v1` bereit. Das Modul fuehrt Shell, Styling, Runtime-A11y, UX-Performance und Component Network in ein RMT-first Authoring-Modell fuer sichtbare Component UX zusammen.
57
+
58
+ ```bash
59
+ node scripts/run_xtend_tests.js rmt-shell-authoring-ux --json
60
+ ```
61
+
62
+ Der Contract ist generator-only. RMT deklariert `shell`, `style`, `a11y`, `commands`, `events`, `variants`, `density`, `hydration`, `schedule` und `fabric`; XTend-Komponentenausfuehrung, XRouter, Fabric und DOM-Materialisierung bleiben Host-Adapterarbeit.
63
+
64
+ ## RMT DSL Authoring Polish
65
+
66
+ `rmt-dsl-authoring-polish.js` stellt ab `WP-E12-13` den Contract `xtend.rmt.dsl-authoring-polish.v1` bereit. Das Modul beschreibt Alias-Sugar, Diagnostik, Token Bridge und XRouter-/XLink-Routing-Sugar fuer Component Shells, damit XTendRMT upstream die DSL benutzerfreundlicher machen kann.
67
+
68
+ ```bash
69
+ node scripts/run_xtend_tests.js rmt-dsl-authoring-polish --json
70
+ ```
71
+
72
+ Der Contract ist generator-only und upstream-orientiert. Er normalisiert keine produktiven `.rmt` Dateien selbst und haelt `no-rmt-kernel-import-of-xtend-types` als harte Grenze sichtbar.
73
+
74
+ ## Form Controls UX Contract
75
+
76
+ `form-controls-ux-contract.js` stellt ab `WP-E11-08` den Contract `xtend.component.form-controls-ux.v1` bereit. Das Modul beschreibt die UX-Reife der Form-Control-Familie, das Runtime-Profil `xtendFormControlUxProfile`, RMT Shell-first Authoring, Validation, A11y, Fabric-Lanes und die Zielkomponenten `x-input`, `x-select`, `x-checkbox`, `x-radio`, `x-textarea`, `x-calendar`, `x-form` und `x-writer`.
77
+
78
+ ```bash
79
+ node scripts/run_xtend_tests.js form-controls-ux --json
80
+ ```
81
+
82
+ Der Contract ist generator-only. Die produktive UI bleibt in den Komponenten; RMT beschreibt Shell, Events, Commands und Schedules ueber `xtend.component`.
83
+
84
+ ## Feedback Status UX Contract
85
+
86
+ `feedback-status-ux-contract.js` stellt ab `WP-E11-09` den Contract `xtend.component.feedback-status-ux.v1` bereit. Das Modul beschreibt die UX-Reife der Feedback- und Status-Familie, das Runtime-Profil `xtendFeedbackStatusUxProfile`, RMT Shell-first Authoring, Live Regions, Dismiss/Timeout, Motion Safety, Fabric-Lanes und die Zielkomponenten `x-alert`, `x-toast`, `x-status`, `x-progress` und `x-spinner`.
87
+
88
+ ```bash
89
+ node scripts/run_xtend_tests.js feedback-status-ux --json
90
+ ```
91
+
92
+ Der Contract ist generator-only. RMT beschreibt Shell, A11y, Events, Commands und Schedules ueber `xtend.component`; XTend rendert und hydriert die Custom Elements im Host.
93
+
94
+ ## Navigation Routing UX Contract
95
+
96
+ `navigation-routing-ux-contract.js` stellt ab `WP-E11-10` den Contract `xtend.component.navigation-routing-ux.v1` bereit. Das Modul beschreibt die UX-Reife der Navigation- und Routing-Familie, das Runtime-Profil `xtendNavigationRoutingUxProfile`, RMT Shell-first Authoring, Active State, Focus Restore, Route Announcements, Keyboard Navigation, Fabric-Lanes und die Zielkomponenten `x-router` und `x-link`.
97
+
98
+ ```bash
99
+ node scripts/run_xtend_tests.js navigation-routing-ux --json
100
+ ```
101
+
102
+ Der Contract ist generator-only. RMT beschreibt Route Context, Links, Events, Commands und Schedules ueber `xtend.xrouter` und `xtend.component`; XTend rendert, fokussiert, announced und hydriert die Custom Elements im Host.
103
+
104
+ ## Overlay Interaction UX Contract
105
+
106
+ `overlay-interaction-ux-contract.js` stellt ab `WP-E11-11` den Contract `xtend.component.overlay-interaction-ux.v1` bereit. Das Modul beschreibt die UX-Reife der Overlay- und Interaction-Familie, das Runtime-Profil `xtendOverlayInteractionUxProfile`, RMT Shell-first Authoring, Overlay Stack, Focus Trap, Inert, Scroll Lock, Escape, Portal-Semantik, Fabric-Lanes und die Zielkomponenten `x-modal`, `x-dialog`, `x-popover`, `x-tooltip` und `x-drawer`.
107
+
108
+ ```bash
109
+ node scripts/run_xtend_tests.js overlay-interaction-ux --json
110
+ ```
111
+
112
+ Der Contract ist generator-only. RMT beschreibt Overlay-Shells, Events, Commands und Schedules ueber `xtend.component` und `rmt.overlay-stack`; XTend rendert, trappt Fokus, verwaltet Rueckfokus und DOM-nahe Inert-/Scroll-Lock-Regeln im Host.
113
+
114
+ ## Layout Display Media UX Contract
115
+
116
+ `layout-display-media-ux-contract.js` stellt ab `WP-E11-12` den Contract `xtend.component.layout-display-media-ux.v1` bereit. Das Modul beschreibt die UX-Reife der Layout-, Display- und Media-Familie, das Runtime-Profil `xtendLayoutDisplayMediaUxProfile`, RMT Shell-first Authoring, Responsive Slots, CSS Parts, Lazy Media, Fabric-Lanes und die Zielkomponenten `x-section`, `x-cards`, `x-header`, `x-footer`, `x-hero`, `x-type`, `x-code`, `x-masonry`, `x-summary`, `x-player` und `x-lightbox`.
117
+
118
+ ```bash
119
+ node scripts/run_xtend_tests.js layout-display-media-ux --json
120
+ ```
121
+
122
+ Der Contract ist generator-only. RMT beschreibt Shell, Layout, Media-Lifecycle, Events, Commands und Schedules ueber `xtend.component`, `rmt.layout-host` und `rmt.media-host`; XTend rendert, misst, hydriert und bedient Media im Host.
123
+
124
+ ## Ausnahmeprozess
125
+
126
+ Typfreie Komponenten sind nur mit dokumentierter Ausnahme erlaubt. Verboten bleiben:
127
+
128
+ - undokumentierte Typ-Luecken
129
+ - implizites `any` fuer oeffentliche APIs
130
+ - Runtime-Imports aus `.d.ts` Artefakten
@@ -0,0 +1,15 @@
1
+ import type { XtendBuilderComponentInput, XtendBuilderOptions, XtendBuilderRecord, XtendBuilderReport } from '../builder-public-types';
2
+
3
+ export declare const COMPONENT_CONTRACT_V2_SCHEMA: string;
4
+ export declare const COMPONENT_CONTRACT_REPORT_V2_SCHEMA: string;
5
+ export declare const COMPONENT_CONTRACT_V2_WORKPACKAGE: string;
6
+ export declare const COMPONENT_CONTRACT_V2_DOC: string;
7
+ export declare const TYPESCRIPT_SOURCE_STRATEGY_SCHEMA: string;
8
+ export declare const RMT_COMPONENT_CONTRACT_SCHEMA: string;
9
+ export declare const FABRIC_BOUNDARY_SCHEMA: string;
10
+ export declare const TELEMETRY_SNAPSHOT_SCHEMA: string;
11
+ export declare const CONTRACT_V2_REQUIRED_DOMAINS: string[];
12
+ export declare const CONTRACT_V2_LIFECYCLE_OPERATIONS: string[];
13
+ export declare const CONTRACT_V2_LANE_PRECEDENCE: string[];
14
+ export declare function createComponentContractV2(input?: XtendBuilderComponentInput, options?: XtendBuilderOptions): XtendBuilderRecord;
15
+ export declare function validateComponentContractV2(contract: unknown): XtendBuilderReport<XtendBuilderRecord>;
@@ -0,0 +1,248 @@
1
+ const COMPONENT_CONTRACT_V2_SCHEMA = 'xtend.component.contract.v2';
2
+ const COMPONENT_CONTRACT_REPORT_V2_SCHEMA = 'xtend.component.contract-report.v2';
3
+ const COMPONENT_CONTRACT_V2_WORKPACKAGE = 'WP-E10-03';
4
+ const COMPONENT_CONTRACT_V2_DOC = 'development/XTend-Component-Contract-v2.md';
5
+ const TYPESCRIPT_SOURCE_STRATEGY_SCHEMA = 'xtend.typescript.component-source-strategy.v1';
6
+ const RMT_COMPONENT_CONTRACT_SCHEMA = 'xtend.rmt.component-contract.v1';
7
+ const FABRIC_BOUNDARY_SCHEMA = 'xtend.component.fabric-boundary.v2';
8
+ const A11Y_COMPONENT_CONTRACT_SCHEMA = 'xtend.a11y.component-contract.v1';
9
+ const PERFORMANCE_COMPONENT_PROFILE_SCHEMA = 'xtend.performance.component-profile.v1';
10
+ const TELEMETRY_SNAPSHOT_SCHEMA = 'xtend.fabric.telemetry-snapshot.v1';
11
+
12
+ const CONTRACT_V2_REQUIRED_DOMAINS = [
13
+ 'source',
14
+ 'runtime',
15
+ 'publicApi',
16
+ 'rmt',
17
+ 'fabric',
18
+ 'telemetry',
19
+ 'lanes',
20
+ 'a11y',
21
+ 'performance',
22
+ 'tests',
23
+ 'docs',
24
+ 'maturity'
25
+ ];
26
+
27
+ const CONTRACT_V2_LIFECYCLE_OPERATIONS = [
28
+ 'mount',
29
+ 'hydrate',
30
+ 'render',
31
+ 'update',
32
+ 'event',
33
+ 'error',
34
+ 'unmount'
35
+ ];
36
+
37
+ const CONTRACT_V2_LANE_PRECEDENCE = [
38
+ 'rmt.schedule-record',
39
+ 'rmt.component-metadata',
40
+ 'fabric.runtime-override',
41
+ 'component.static-contract',
42
+ 'scaffold.blueprint-default'
43
+ ];
44
+
45
+ function toBasename(tag) {
46
+ return String(tag || 'x-example').replace(/-/g, '');
47
+ }
48
+
49
+ function toClassName(tag) {
50
+ return String(tag || 'x-example')
51
+ .split('-')
52
+ .filter(Boolean)
53
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
54
+ .join('');
55
+ }
56
+
57
+ function normalizeArray(value) {
58
+ return Array.isArray(value) ? value.slice() : [];
59
+ }
60
+
61
+ function createAttributeContract(attributes = []) {
62
+ const normalized = attributes.length > 0 ? attributes : ['variant'];
63
+ return normalized.map((name) => ({
64
+ name,
65
+ type: 'string | null',
66
+ reflects: true,
67
+ required: false,
68
+ source: 'observedAttributes'
69
+ }));
70
+ }
71
+
72
+ function createEventContract(events = [], className) {
73
+ return normalizeArray(events).map((name) => ({
74
+ name,
75
+ typeName: `${className}EventDetail`,
76
+ eventType: `CustomEvent<${className}EventDetail>`,
77
+ bubbles: true,
78
+ composed: true,
79
+ detailShape: {
80
+ id: 'string',
81
+ source: 'string',
82
+ value: 'unknown'
83
+ }
84
+ }));
85
+ }
86
+
87
+ function createComponentContractV2(input = {}, options = {}) {
88
+ const tag = input.tag || 'x-example';
89
+ const basename = input.basename || toBasename(tag);
90
+ const className = input.className || toClassName(tag);
91
+ const sourceRoot = options.sourceRoot || 'src/components/';
92
+ const runtimeOutputRoot = options.runtimeOutputRoot || 'components/';
93
+ const declarationOutputRoot = options.declarationOutputRoot || 'components/';
94
+ const maturity = input.maturity || 'preview';
95
+ const sourceState = input.sourceState || (input.typescript === false ? 'js-legacy' : 'ts-source');
96
+ const attributes = createAttributeContract(normalizeArray(input.attributes));
97
+ const events = createEventContract(normalizeArray(input.events), className);
98
+ const slots = normalizeArray(input.slots).length > 0
99
+ ? normalizeArray(input.slots).map((name) => ({ name, required: false, content: 'RmtTemplateRef | string | HTMLElement' }))
100
+ : [{ name: 'default', required: false, content: 'RmtTemplateRef | string | HTMLElement' }];
101
+
102
+ return {
103
+ schema: COMPONENT_CONTRACT_V2_SCHEMA,
104
+ status: 'contract-draft',
105
+ workpackage: COMPONENT_CONTRACT_V2_WORKPACKAGE,
106
+ tag,
107
+ className,
108
+ maturity,
109
+ source: {
110
+ strategy: TYPESCRIPT_SOURCE_STRATEGY_SCHEMA,
111
+ state: sourceState,
112
+ sourceRoot,
113
+ sourcePath: `${sourceRoot}${tag}/${tag}.ts`,
114
+ contractPath: `${sourceRoot}${tag}/${tag}.contract.ts`,
115
+ rmtMetadataPath: `${sourceRoot}${tag}/${tag}.rmt.ts`,
116
+ a11yProfilePath: `${sourceRoot}${tag}/${tag}.a11y.ts`,
117
+ performanceProfilePath: `${sourceRoot}${tag}/${tag}.performance.ts`,
118
+ fixtureDataPath: `${sourceRoot}${tag}/${tag}.fixture.ts`,
119
+ migrationAllowedStates: ['js-legacy', 'ts-planned', 'ts-source', 'ts-generated-esm', 'contract-only']
120
+ },
121
+ runtime: {
122
+ format: 'esm',
123
+ loader: 'xtend-loader.js',
124
+ manifest: 'components/manifest.json',
125
+ artifact: `${runtimeOutputRoot}${basename}.js`,
126
+ declaration: `${declarationOutputRoot}${basename}.d.ts`,
127
+ localOnly: true,
128
+ cdnAllowed: false,
129
+ newRuntimeDependenciesAllowed: false
130
+ },
131
+ publicApi: {
132
+ attributes,
133
+ properties: normalizeArray(input.properties),
134
+ slots,
135
+ events,
136
+ methods: normalizeArray(input.methods),
137
+ state: normalizeArray(input.state),
138
+ theme: normalizeArray(input.theme),
139
+ typeExports: [`${className}Element`, `${className}EventName`, `${className}EventDetail`]
140
+ },
141
+ rmt: {
142
+ schema: RMT_COMPONENT_CONTRACT_SCHEMA,
143
+ adapter: 'xtend.component',
144
+ componentRecordKind: 'custom_element',
145
+ fields: ['id', 'kind', 'adapter', 'tag', 'props', 'attributes', 'slots', 'events', 'schedule', 'hydration', 'fabric', 'a11y', 'performance'],
146
+ routeAdapter: input.routeAdapter || null,
147
+ kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'
148
+ },
149
+ fabric: {
150
+ schema: FABRIC_BOUNDARY_SCHEMA,
151
+ api: '@xtend-fabric',
152
+ operations: CONTRACT_V2_LIFECYCLE_OPERATIONS.slice(),
153
+ boundaryRequired: true,
154
+ diagnosticFields: ['component', 'phase', 'fiberId', 'lane', 'severity', 'cause']
155
+ },
156
+ telemetry: {
157
+ schema: TELEMETRY_SNAPSHOT_SCHEMA,
158
+ requiredOperations: CONTRACT_V2_LIFECYCLE_OPERATIONS.slice(),
159
+ requiredFields: ['componentId', 'routeId', 'rmtId', 'scheduleId', 'fiberId', 'lane', 'durationMs', 'status'],
160
+ backpressureAware: true
161
+ },
162
+ lanes: {
163
+ precedence: CONTRACT_V2_LANE_PRECEDENCE.slice(),
164
+ defaultLane: input.defaultLane || 'visible',
165
+ diagnosticsOnConflict: true
166
+ },
167
+ a11y: {
168
+ schema: A11Y_COMPONENT_CONTRACT_SCHEMA,
169
+ requiredProfile: true,
170
+ requiredFields: ['role', 'accessibleName', 'focusStrategy', 'keyboard', 'ariaStates', 'screenreader', 'motion', 'contrast']
171
+ },
172
+ performance: {
173
+ schema: PERFORMANCE_COMPONENT_PROFILE_SCHEMA,
174
+ budgetMatrix: 'development/XTend-Performance-Budget-Matrix.md',
175
+ requiredProfile: true,
176
+ requiredFields: ['budgetClass', 'lane', 'hydrationPolicy', 'criticalMeasurements', 'cleanup']
177
+ },
178
+ tests: {
179
+ requiredSuites: ['components', 'a11y-hydration', 'rmt-compatibility', 'references'],
180
+ futureSuites: ['component-contract-v2', 'performance-regression', 'browser'],
181
+ fixtureRequired: true
182
+ },
183
+ docs: {
184
+ componentGuide: `docs/components/${tag.replace(/^x-/, '')}.md`,
185
+ requiredSections: ['API', 'Events', 'RMT Authoring', 'Fabric', 'A11y', 'Performance']
186
+ },
187
+ maturity: {
188
+ model: 'xtend.component.maturity-model.v2',
189
+ target: maturity,
190
+ stableRequires: ['publicApi', 'rmt', 'fabric', 'telemetry', 'lanes', 'a11y', 'performance', 'tests', 'docs']
191
+ }
192
+ };
193
+ }
194
+
195
+ function validateComponentContractV2(contract = {}) {
196
+ const errors = [];
197
+
198
+ if (contract.schema !== COMPONENT_CONTRACT_V2_SCHEMA) {
199
+ errors.push(`schema must be ${COMPONENT_CONTRACT_V2_SCHEMA}`);
200
+ }
201
+ if (!/^x-[a-z0-9]+(?:-[a-z0-9]+)*$/.test(String(contract.tag || ''))) {
202
+ errors.push('tag must be a valid XTend custom element tag');
203
+ }
204
+
205
+ CONTRACT_V2_REQUIRED_DOMAINS.forEach((domain) => {
206
+ if (!contract[domain]) {
207
+ errors.push(`missing domain: ${domain}`);
208
+ }
209
+ });
210
+
211
+ if (contract.runtime && contract.runtime.format !== 'esm') {
212
+ errors.push('runtime.format must be esm');
213
+ }
214
+ if (contract.runtime && contract.runtime.cdnAllowed !== false) {
215
+ errors.push('runtime.cdnAllowed must be false');
216
+ }
217
+ if (contract.rmt && contract.rmt.kernelBoundary !== 'no-rmt-kernel-import-of-xtend-types') {
218
+ errors.push('rmt.kernelBoundary must keep the RMT kernel decoupled from XTend types');
219
+ }
220
+ if (contract.fabric && !Array.isArray(contract.fabric.operations)) {
221
+ errors.push('fabric.operations must be an array');
222
+ }
223
+ if (contract.publicApi && !Array.isArray(contract.publicApi.events)) {
224
+ errors.push('publicApi.events must be an array');
225
+ }
226
+
227
+ return {
228
+ schema: COMPONENT_CONTRACT_REPORT_V2_SCHEMA,
229
+ ok: errors.length === 0,
230
+ errors
231
+ };
232
+ }
233
+
234
+ module.exports = {
235
+ COMPONENT_CONTRACT_V2_SCHEMA,
236
+ COMPONENT_CONTRACT_REPORT_V2_SCHEMA,
237
+ COMPONENT_CONTRACT_V2_WORKPACKAGE,
238
+ COMPONENT_CONTRACT_V2_DOC,
239
+ TYPESCRIPT_SOURCE_STRATEGY_SCHEMA,
240
+ RMT_COMPONENT_CONTRACT_SCHEMA,
241
+ FABRIC_BOUNDARY_SCHEMA,
242
+ TELEMETRY_SNAPSHOT_SCHEMA,
243
+ CONTRACT_V2_REQUIRED_DOMAINS,
244
+ CONTRACT_V2_LIFECYCLE_OPERATIONS,
245
+ CONTRACT_V2_LANE_PRECEDENCE,
246
+ createComponentContractV2,
247
+ validateComponentContractV2
248
+ };
@@ -0,0 +1,22 @@
1
+ import type { XtendBuilderComponentInput, XtendBuilderOptions, XtendBuilderRecord, XtendBuilderReport } from '../builder-public-types';
2
+
3
+ export declare const COMPONENT_CONTRACT_V2_SCHEMA: string;
4
+ export declare const COMPONENT_NETWORK_ASSERTIONS: string[];
5
+ export declare const COMPONENT_NETWORK_CONTEXTS: string[];
6
+ export declare const COMPONENT_NETWORK_CONTRACT_DOC: string;
7
+ export declare const COMPONENT_NETWORK_CONTRACT_SCHEMA: string;
8
+ export declare const COMPONENT_NETWORK_PROFILES: string[];
9
+ export declare const COMPONENT_NETWORK_REPORT_SCHEMA: string;
10
+ export declare const COMPONENT_NETWORK_REQUIRED_COMMANDS: string[];
11
+ export declare const COMPONENT_NETWORK_REQUIRED_DOMAINS: string[];
12
+ export declare const COMPONENT_NETWORK_REQUIRED_EVENTS: string[];
13
+ export declare const COMPONENT_NETWORK_WORKPACKAGE: string;
14
+ export declare const COMPONENT_SHELL_CONTRACT_SCHEMA: string;
15
+ export declare const COMPONENT_STYLING_CONTRACT_SCHEMA: string;
16
+ export declare const COMPONENT_UX_PERFORMANCE_CONTRACT_SCHEMA: string;
17
+ export declare const FABRIC_BOUNDARY_SCHEMA: string;
18
+ export declare const KERNEL_BOUNDARY: string;
19
+ export declare const RMT_NETWORK_AUTHORING_SCHEMA: string;
20
+ export declare const RUNTIME_A11Y_CONTRACT_SCHEMA: string;
21
+ export declare function createComponentNetworkContract(input?: XtendBuilderComponentInput, options?: XtendBuilderOptions): XtendBuilderRecord;
22
+ export declare function validateComponentNetworkContract(contract: unknown): XtendBuilderReport<XtendBuilderRecord>;