@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,35 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogGate,
4
+ XtendCatalogOptions,
5
+ XtendCatalogPlan,
6
+ XtendCatalogRecord,
7
+ XtendCatalogReport
8
+ } from './catalog-public-types';
9
+
10
+
11
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_CONTRACT: string;
12
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
13
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_LOCAL_GATE: string;
14
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_MODULE: string;
15
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_PACKAGE_SCRIPT: string;
16
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_REPORT_ARTIFACT: string;
17
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA: string;
18
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_SCHEMA: string;
19
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_STATUS: string;
20
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_STEERING: XtendCatalogConstant;
21
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_SUITE: string;
22
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_TARGET: string;
23
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE: string;
24
+ export declare const EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE_DOC: XtendCatalogConstant;
25
+ export declare const NEXT_DECISION: XtendCatalogConstant;
26
+ export declare const NEXT_WORKPACKAGE: string;
27
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
28
+ export declare const REQUIRED_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
29
+ export declare const REQUIRED_RMT_ARTIFACTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
30
+ export declare const REQUIRED_RMT_DOMAINS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
31
+ export declare const REQUIRED_RMT_SOURCE_GATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
32
+ export declare const RMT_EVIDENCE_RECORDS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
33
+ export declare function createEpic13RmtProductionReadinessPlan(options?: XtendCatalogOptions): XtendCatalogPlan;
34
+ export declare function createEpic13RmtProductionReadinessReport(options?: XtendCatalogOptions): XtendCatalogReport;
35
+ export declare function validateEpic13RmtProductionReadinessPlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,314 @@
1
+ const {
2
+ KERNEL_BOUNDARY
3
+ } = require('./epic12-rc0-gate-matrix');
4
+ const {
5
+ EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
6
+ EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA,
7
+ createEpic13VisualOwnerArtifactPlan,
8
+ createEpic13VisualOwnerArtifactReport,
9
+ validateEpic13VisualOwnerArtifactPlan
10
+ } = require('./epic13-visual-owner-artifact');
11
+
12
+ const EPIC13_RMT_PRODUCTION_READINESS_SCHEMA = 'xtend.epic13.rmt-production-readiness.v1';
13
+ const EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA = 'xtend.epic13.rmt-production-readiness-report.v1';
14
+ const EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE = 'WP-E13-09';
15
+ const EPIC13_RMT_PRODUCTION_READINESS_STATUS = 'accepted-rmt-production-readiness-bundling';
16
+ const EPIC13_RMT_PRODUCTION_READINESS_TARGET = 'rmt-first-production-readiness-bundled';
17
+ const EPIC13_RMT_PRODUCTION_READINESS_MODULE = 'catalog/epic13-rmt-production-readiness.js';
18
+ const EPIC13_RMT_PRODUCTION_READINESS_SUITE = 'tests/platform/epic13_rmt_production_readiness_suite.js';
19
+ const EPIC13_RMT_PRODUCTION_READINESS_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
20
+ const EPIC13_RMT_PRODUCTION_READINESS_CONTRACT = 'development/XTend-Epic13-RMT-Production-Readiness-Contract.md';
21
+ const EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE_DOC = 'development/WP-E13-09-RMT-first-App-Production-Readiness-Gate-buendeln.md';
22
+ const EPIC13_RMT_PRODUCTION_READINESS_DOCS = 'docs/rmt-production-readiness.md';
23
+ const EPIC13_RMT_PRODUCTION_READINESS_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json';
24
+ const EPIC13_RMT_PRODUCTION_READINESS_PACKAGE_SCRIPT = 'npm run test:epic13-rmt-production-readiness';
25
+ const EPIC13_RMT_PRODUCTION_READINESS_REPORT_ARTIFACT = '.xtend-test-results/xtend-epic13-rmt-production-readiness-report.json';
26
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
27
+ const NEXT_DECISION = 'rc1-gate-matrix-ci-handoff';
28
+ const NEXT_WORKPACKAGE = 'WP-E13-13';
29
+
30
+ const REQUIRED_RMT_SOURCE_GATES = Object.freeze([
31
+ 'npm run test:rmt-compatibility',
32
+ 'npm run test:rmt-first-class-app',
33
+ 'npm run test:rmt-first-demo-app',
34
+ 'npm run test:rmt-artifact-parity',
35
+ 'npm run test:rmt-component-fabric-ingestion',
36
+ 'npm run test:rmt-component-lifecycle-telemetry',
37
+ 'npm run test:epic13-visual-owner-artifact'
38
+ ]);
39
+
40
+ const REQUIRED_RMT_DOMAINS = Object.freeze([
41
+ 'app-shell',
42
+ 'routing',
43
+ 'components',
44
+ 'fabric',
45
+ 'lanes',
46
+ 'diagnostics',
47
+ 'artifact-parity',
48
+ 'kernel-boundary'
49
+ ]);
50
+
51
+ const REQUIRED_RMT_ARTIFACTS = Object.freeze([
52
+ 'tests/fixtures/rmt-first-class-xtend-app.rmt',
53
+ 'xtendrmt/rmt-first-demo-app.rmt',
54
+ 'xtendrmt/rmt-first-demo-app.js',
55
+ 'xtendrmt-rmt-first-demo.html',
56
+ 'tests/browser/fixtures/rmt-first-demo-app-smoke.html',
57
+ 'xtendrmt/rmt-core.esm.js',
58
+ 'xtendrmt/rmt-runtime.esm.js',
59
+ 'xtendrmt/rmt-runtime.browser.js',
60
+ 'xtendrmt/rmt-core.d.ts',
61
+ 'xtendrmt/rmt.schema.json',
62
+ 'xtendrmt/rmt-manifest.json'
63
+ ]);
64
+
65
+ const REQUIRED_DOCS = Object.freeze([
66
+ EPIC13_RMT_PRODUCTION_READINESS_STEERING,
67
+ EPIC13_RMT_PRODUCTION_READINESS_CONTRACT,
68
+ EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE_DOC,
69
+ EPIC13_RMT_PRODUCTION_READINESS_DOCS,
70
+ 'development/XTend-RMT-First-Class-App-Authoring.md',
71
+ 'development/WP-E10-13-RMT-first-Demo-App-ohne-manuelle-Shell-bauen.md',
72
+ 'development/XTend-Fabric-Component-Compatibility-v2.md',
73
+ 'development/XTend-Component-Lifecycle-Telemetry-Contract.md',
74
+ 'docs/rmt-first-xtend-apps.md',
75
+ 'docs/rmt-first-demo-app.md',
76
+ 'docs/xtendrmt-app-dsl.md',
77
+ 'docs/xtendrmt-native-authoring.md',
78
+ 'docs/xtend-fabric-rmt-lane-mapping.md',
79
+ 'docs/visual-owner-artifacts.md',
80
+ 'docs/enterprise-adoption.md'
81
+ ]);
82
+
83
+ const RMT_EVIDENCE_RECORDS = Object.freeze([
84
+ {
85
+ id: 'rmt-compatibility',
86
+ command: 'npm run test:rmt-compatibility',
87
+ schema: 'xtend.scaffold.rmt-compatibility-binding.v1',
88
+ domains: ['kernel-boundary', 'artifact-parity', 'diagnostics'],
89
+ evidence: 'tests/rmt/rmt_compatibility_suite.js',
90
+ status: 'covered'
91
+ },
92
+ {
93
+ id: 'rmt-first-class-app',
94
+ command: 'npm run test:rmt-first-class-app',
95
+ schema: 'xtend.rmt.first-class-app-authoring.v1',
96
+ domains: ['app-shell', 'routing', 'components', 'lanes', 'diagnostics'],
97
+ evidence: 'tests/fixtures/rmt-first-class-xtend-app.rmt',
98
+ status: 'covered'
99
+ },
100
+ {
101
+ id: 'rmt-first-demo-app',
102
+ command: 'npm run test:rmt-first-demo-app',
103
+ schema: 'xtend.epic10.rmt-first-demo-app.v1',
104
+ domains: ['app-shell', 'routing', 'components', 'fabric', 'lanes', 'diagnostics'],
105
+ evidence: 'xtendrmt/rmt-first-demo-app.rmt',
106
+ status: 'covered'
107
+ },
108
+ {
109
+ id: 'rmt-artifact-parity',
110
+ command: 'npm run test:rmt-artifact-parity',
111
+ schema: 'xtend.rmt.artifact-parity.v1',
112
+ domains: ['artifact-parity', 'kernel-boundary'],
113
+ evidence: 'scripts/verify_xtendrmt_artifact_parity.js',
114
+ status: 'covered'
115
+ },
116
+ {
117
+ id: 'component-fabric-lane-ingestion',
118
+ command: 'npm run test:rmt-component-fabric-ingestion',
119
+ schema: 'xtend.component.fabric-lane-ingestion.v2',
120
+ domains: ['fabric', 'lanes', 'components'],
121
+ evidence: 'tests/rmt/rmt_component_fabric_lane_ingestion_suite.js',
122
+ status: 'covered'
123
+ },
124
+ {
125
+ id: 'component-lifecycle-telemetry',
126
+ command: 'npm run test:rmt-component-lifecycle-telemetry',
127
+ schema: 'xtend.component.lifecycle-telemetry.v1',
128
+ domains: ['fabric', 'diagnostics', 'components'],
129
+ evidence: 'tests/rmt/rmt_component_lifecycle_telemetry_suite.js',
130
+ status: 'covered'
131
+ },
132
+ {
133
+ id: 'visual-owner-artifact',
134
+ command: 'npm run test:epic13-visual-owner-artifact',
135
+ schema: EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA,
136
+ domains: ['diagnostics'],
137
+ evidence: 'tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json',
138
+ status: 'covered'
139
+ }
140
+ ]);
141
+
142
+ function unique(values) {
143
+ return [...new Set(values)];
144
+ }
145
+
146
+ function createEpic13RmtProductionReadinessPlan(options = {}) {
147
+ const sourcePlan = options.sourcePlan || createEpic13VisualOwnerArtifactPlan(options);
148
+ const sourceValidation = options.sourceValidation || validateEpic13VisualOwnerArtifactPlan(sourcePlan);
149
+ const sourceReport = options.sourceReport || createEpic13VisualOwnerArtifactReport({ ...options, plan: sourcePlan });
150
+ const evidenceRecords = RMT_EVIDENCE_RECORDS.map((record) => ({
151
+ ...record,
152
+ domains: record.domains.slice()
153
+ }));
154
+ const coveredDomains = unique(evidenceRecords.flatMap((record) => record.domains));
155
+ const missingDomains = REQUIRED_RMT_DOMAINS.filter((domain) => !coveredDomains.includes(domain));
156
+
157
+ return {
158
+ schema: EPIC13_RMT_PRODUCTION_READINESS_SCHEMA,
159
+ reportSchema: EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
160
+ workpackage: EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE,
161
+ status: EPIC13_RMT_PRODUCTION_READINESS_STATUS,
162
+ generatedAt: options.generatedAt || 'static-local',
163
+ module: EPIC13_RMT_PRODUCTION_READINESS_MODULE,
164
+ suite: EPIC13_RMT_PRODUCTION_READINESS_SUITE,
165
+ steeringDocument: EPIC13_RMT_PRODUCTION_READINESS_STEERING,
166
+ contract: EPIC13_RMT_PRODUCTION_READINESS_CONTRACT,
167
+ workpackageDocument: EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE_DOC,
168
+ docs: EPIC13_RMT_PRODUCTION_READINESS_DOCS,
169
+ localGate: EPIC13_RMT_PRODUCTION_READINESS_LOCAL_GATE,
170
+ packageScript: EPIC13_RMT_PRODUCTION_READINESS_PACKAGE_SCRIPT,
171
+ reportArtifact: EPIC13_RMT_PRODUCTION_READINESS_REPORT_ARTIFACT,
172
+ sourceSchema: EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA,
173
+ sourceReportSchema: EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
174
+ sourceStatus: sourcePlan.status,
175
+ sourceValidationOk: sourceValidation.ok,
176
+ sourceReportOk: sourceReport.ok,
177
+ releaseCandidate: 'RC1',
178
+ targetReadiness: EPIC13_RMT_PRODUCTION_READINESS_TARGET,
179
+ appAuthoringSchema: 'xtend.rmt.first-class-app-authoring.v1',
180
+ demoAppSchema: 'xtend.epic10.rmt-first-demo-app.v1',
181
+ artifactParitySchema: 'xtend.rmt.artifact-parity.v1',
182
+ fabricLaneIngestionSchema: 'xtend.component.fabric-lane-ingestion.v2',
183
+ lifecycleTelemetrySchema: 'xtend.component.lifecycle-telemetry.v1',
184
+ requiredDomains: REQUIRED_RMT_DOMAINS.slice(),
185
+ coveredDomains,
186
+ missingDomains,
187
+ sourceGates: REQUIRED_RMT_SOURCE_GATES.slice(),
188
+ evidenceRecords,
189
+ artifactPaths: REQUIRED_RMT_ARTIFACTS.slice(),
190
+ requiredDocs: REQUIRED_DOCS.slice(),
191
+ coverageSummary: {
192
+ requiredDomainCount: REQUIRED_RMT_DOMAINS.length,
193
+ coveredDomainCount: coveredDomains.length,
194
+ missingDomainCount: missingDomains.length,
195
+ requiredGateCount: REQUIRED_RMT_SOURCE_GATES.length,
196
+ evidenceRecordCount: evidenceRecords.length
197
+ },
198
+ productionBundle: {
199
+ shellFirst: true,
200
+ routingNativeInRmt: true,
201
+ componentAdapterRequired: true,
202
+ fabricLaneIngestionRequired: true,
203
+ lifecycleTelemetryRequired: true,
204
+ diagnosticsRequired: true,
205
+ artifactParityRequired: true
206
+ },
207
+ kernelBoundary: KERNEL_BOUNDARY,
208
+ rmtKernelImportsXtendTypes: false,
209
+ adapterBoundary: 'xtend-adapters-only',
210
+ frameworkAgnostic: true,
211
+ localGateMode: 'static-rc1-rmt-gate-bundle',
212
+ externalBrowserRequiredInLocalGate: false,
213
+ externalNetworkAllowedInLocalGate: false,
214
+ nextDecision: NEXT_DECISION,
215
+ nextWorkpackage: NEXT_WORKPACKAGE,
216
+ publishBoundary: PUBLISH_BOUNDARY,
217
+ publishAllowed: false,
218
+ packagePrivateRequired: true
219
+ };
220
+ }
221
+
222
+ function validateEpic13RmtProductionReadinessPlan(plan = createEpic13RmtProductionReadinessPlan()) {
223
+ const errors = [];
224
+ const evidence = plan && Array.isArray(plan.evidenceRecords) ? plan.evidenceRecords : [];
225
+
226
+ if (!plan || plan.schema !== EPIC13_RMT_PRODUCTION_READINESS_SCHEMA) errors.push(`schema must be ${EPIC13_RMT_PRODUCTION_READINESS_SCHEMA}`);
227
+ if (!plan || plan.reportSchema !== EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA}`);
228
+ if (!plan || plan.workpackage !== EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE}`);
229
+ if (!plan || plan.status !== EPIC13_RMT_PRODUCTION_READINESS_STATUS) errors.push(`status must be ${EPIC13_RMT_PRODUCTION_READINESS_STATUS}`);
230
+ if (!plan || plan.sourceSchema !== EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA) errors.push('source schema must be visual owner artifact');
231
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('visual owner artifact source must validate');
232
+ if (!plan || plan.targetReadiness !== EPIC13_RMT_PRODUCTION_READINESS_TARGET) errors.push(`targetReadiness must be ${EPIC13_RMT_PRODUCTION_READINESS_TARGET}`);
233
+ REQUIRED_RMT_SOURCE_GATES.forEach((gate) => {
234
+ if (!plan || !plan.sourceGates.includes(gate)) errors.push(`source gate missing: ${gate}`);
235
+ });
236
+ REQUIRED_RMT_DOMAINS.forEach((domain) => {
237
+ if (!plan || !plan.coveredDomains.includes(domain)) errors.push(`domain missing: ${domain}`);
238
+ });
239
+ REQUIRED_RMT_ARTIFACTS.forEach((artifactPath) => {
240
+ if (!plan || !plan.artifactPaths.includes(artifactPath)) errors.push(`artifact missing: ${artifactPath}`);
241
+ });
242
+ REQUIRED_DOCS.forEach((docPath) => {
243
+ if (!plan || !plan.requiredDocs.includes(docPath)) errors.push(`doc missing: ${docPath}`);
244
+ });
245
+ if (!plan || plan.missingDomains.length !== 0) errors.push(`missing RMT readiness domains: ${plan ? plan.missingDomains.join(', ') : '<plan missing>'}`);
246
+ if (!plan || plan.coverageSummary.requiredGateCount !== REQUIRED_RMT_SOURCE_GATES.length) errors.push('required gate count must match source gate list');
247
+ if (!plan || plan.coverageSummary.evidenceRecordCount !== RMT_EVIDENCE_RECORDS.length) errors.push('evidence record count must match RMT evidence list');
248
+ if (!plan || evidence.some((record) => record.status !== 'covered')) errors.push('all RMT evidence records must be covered');
249
+ if (!plan || !plan.productionBundle.shellFirst || !plan.productionBundle.routingNativeInRmt) errors.push('RMT production bundle must be shell-first and routing-native');
250
+ if (!plan || !plan.productionBundle.componentAdapterRequired || !plan.productionBundle.fabricLaneIngestionRequired || !plan.productionBundle.lifecycleTelemetryRequired) errors.push('component, Fabric/Lane and Lifecycle Telemetry coverage are required');
251
+ if (!plan || !plan.productionBundle.diagnosticsRequired || !plan.productionBundle.artifactParityRequired) errors.push('diagnostics and artifact parity are required');
252
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
253
+ if (!plan || plan.rmtKernelImportsXtendTypes !== false) errors.push('RMT kernel must not import XTend types');
254
+ if (!plan || plan.adapterBoundary !== 'xtend-adapters-only') errors.push('adapter boundary must remain XTend adapters only');
255
+ if (!plan || plan.frameworkAgnostic !== true) errors.push('RMT production readiness must remain framework agnostic');
256
+ if (!plan || plan.localGateMode !== 'static-rc1-rmt-gate-bundle') errors.push('local gate mode must remain static RC1 RMT bundle');
257
+ if (!plan || plan.externalBrowserRequiredInLocalGate !== false || plan.externalNetworkAllowedInLocalGate !== false) errors.push('local gate must not require external browser or network');
258
+ if (!plan || plan.nextDecision !== NEXT_DECISION) errors.push(`next decision must be ${NEXT_DECISION}`);
259
+ if (!plan || plan.nextWorkpackage !== NEXT_WORKPACKAGE) errors.push(`next workpackage must be ${NEXT_WORKPACKAGE}`);
260
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
261
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
262
+
263
+ return {
264
+ schema: EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
265
+ ok: errors.length === 0,
266
+ errors
267
+ };
268
+ }
269
+
270
+ function createEpic13RmtProductionReadinessReport(options = {}) {
271
+ const plan = options.plan || createEpic13RmtProductionReadinessPlan(options);
272
+ const validation = validateEpic13RmtProductionReadinessPlan(plan);
273
+
274
+ return {
275
+ schema: EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
276
+ ok: validation.ok,
277
+ errors: validation.errors,
278
+ plan,
279
+ sourceGateCount: plan.sourceGates.length,
280
+ coveredDomainCount: plan.coveredDomains.length,
281
+ evidenceRecordCount: plan.evidenceRecords.length,
282
+ artifactCount: plan.artifactPaths.length,
283
+ publishAllowed: plan.publishAllowed,
284
+ nextWorkpackage: plan.nextWorkpackage
285
+ };
286
+ }
287
+
288
+ module.exports = {
289
+ EPIC13_RMT_PRODUCTION_READINESS_CONTRACT,
290
+ EPIC13_RMT_PRODUCTION_READINESS_DOCS,
291
+ EPIC13_RMT_PRODUCTION_READINESS_LOCAL_GATE,
292
+ EPIC13_RMT_PRODUCTION_READINESS_MODULE,
293
+ EPIC13_RMT_PRODUCTION_READINESS_PACKAGE_SCRIPT,
294
+ EPIC13_RMT_PRODUCTION_READINESS_REPORT_ARTIFACT,
295
+ EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
296
+ EPIC13_RMT_PRODUCTION_READINESS_SCHEMA,
297
+ EPIC13_RMT_PRODUCTION_READINESS_STATUS,
298
+ EPIC13_RMT_PRODUCTION_READINESS_STEERING,
299
+ EPIC13_RMT_PRODUCTION_READINESS_SUITE,
300
+ EPIC13_RMT_PRODUCTION_READINESS_TARGET,
301
+ EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE,
302
+ EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE_DOC,
303
+ NEXT_DECISION,
304
+ NEXT_WORKPACKAGE,
305
+ PUBLISH_BOUNDARY,
306
+ REQUIRED_DOCS,
307
+ REQUIRED_RMT_ARTIFACTS,
308
+ REQUIRED_RMT_DOMAINS,
309
+ REQUIRED_RMT_SOURCE_GATES,
310
+ RMT_EVIDENCE_RECORDS,
311
+ createEpic13RmtProductionReadinessPlan,
312
+ createEpic13RmtProductionReadinessReport,
313
+ validateEpic13RmtProductionReadinessPlan
314
+ };
@@ -0,0 +1,36 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogGate,
4
+ XtendCatalogOptions,
5
+ XtendCatalogPlan,
6
+ XtendCatalogRecord,
7
+ XtendCatalogReport
8
+ } from './catalog-public-types';
9
+
10
+
11
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_CONTRACT: string;
12
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
13
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_FIXTURE_SCHEMA: string;
14
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_LOCAL_GATE: string;
15
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_MODULE: string;
16
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_PACKAGE_SCRIPT: string;
17
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_ARTIFACT: string;
18
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA: string;
19
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA: string;
20
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_STATUS: string;
21
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_STEERING: XtendCatalogConstant;
22
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_SUITE: string;
23
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_TARGET: string;
24
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE: string;
25
+ export declare const EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE_DOC: XtendCatalogConstant;
26
+ export declare const NEXT_DECISION: XtendCatalogConstant;
27
+ export declare const NEXT_WORKPACKAGE: string;
28
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
29
+ export declare const REQUIRED_ARTIFACTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
30
+ export declare const REQUIRED_BROWSER_ASSERTIONS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
31
+ export declare const REQUIRED_SOURCE_GATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
32
+ export declare const TRUSTED_DOM_BOUNDARY_FIXTURE: XtendCatalogConstant;
33
+ export declare const TRUSTED_DOM_BOUNDARY_RESULT_KEY: string;
34
+ export declare function createEpic13TrustedDomBoundaryPlan(options?: XtendCatalogOptions): XtendCatalogPlan;
35
+ export declare function createEpic13TrustedDomBoundaryReport(options?: XtendCatalogOptions): XtendCatalogReport;
36
+ export declare function validateEpic13TrustedDomBoundaryPlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,230 @@
1
+ const {
2
+ KERNEL_BOUNDARY
3
+ } = require('./epic12-rc0-gate-matrix');
4
+ const {
5
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
6
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA,
7
+ createEpic13DocsRmtProductionHardeningPlan,
8
+ createEpic13DocsRmtProductionHardeningReport,
9
+ validateEpic13DocsRmtProductionHardeningPlan
10
+ } = require('./epic13-docs-rmt-production-hardening');
11
+ const {
12
+ SANITIZING_BOUNDARY_CONTRACT,
13
+ TRUSTED_DOM_POLICY_CONTRACT,
14
+ TRUSTED_DOM_SANITIZER_CONTRACT
15
+ } = require('../security/trusted-dom-policy');
16
+
17
+ const EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA = 'xtend.epic13.trusted-dom-boundary.v1';
18
+ const EPIC13_TRUSTED_DOM_BOUNDARY_FIXTURE_SCHEMA = 'xtend.epic13.trusted-dom-boundary-browser-smoke.v1';
19
+ const EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA = 'xtend.epic13.trusted-dom-boundary-report.v1';
20
+ const EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE = 'WP-E13-11';
21
+ const EPIC13_TRUSTED_DOM_BOUNDARY_STATUS = 'accepted-trusted-dom-boundary-browser-proof';
22
+ const EPIC13_TRUSTED_DOM_BOUNDARY_TARGET = 'trusted-dom-parsedown-rmt-html-boundary-browser-proofed';
23
+ const EPIC13_TRUSTED_DOM_BOUNDARY_MODULE = 'catalog/epic13-trusted-dom-boundary.js';
24
+ const EPIC13_TRUSTED_DOM_BOUNDARY_SUITE = 'tests/platform/epic13_trusted_dom_boundary_suite.js';
25
+ const EPIC13_TRUSTED_DOM_BOUNDARY_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
26
+ const EPIC13_TRUSTED_DOM_BOUNDARY_CONTRACT = 'development/XTend-Epic13-Trusted-DOM-Boundary-Contract.md';
27
+ const EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE_DOC = 'development/WP-E13-11-Trusted-DOM-Parsedown-und-RMT-HTML-Boundary-browsernah-pruefen.md';
28
+ const EPIC13_TRUSTED_DOM_BOUNDARY_DOCS = 'docs/trusted-dom-boundary-browser-proof.md';
29
+ const EPIC13_TRUSTED_DOM_BOUNDARY_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json';
30
+ const EPIC13_TRUSTED_DOM_BOUNDARY_PACKAGE_SCRIPT = 'npm run test:epic13-trusted-dom-boundary';
31
+ const EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_ARTIFACT = '.xtend-test-results/xtend-epic13-trusted-dom-boundary-report.json';
32
+ const TRUSTED_DOM_BOUNDARY_FIXTURE = 'tests/browser/fixtures/epic13-trusted-dom-boundary-smoke.html';
33
+ const TRUSTED_DOM_BOUNDARY_RESULT_KEY = '__xtendEpic13TrustedDomBoundaryResult';
34
+ const NEXT_DECISION = 'rc1-gate-matrix-ci-handoff';
35
+ const NEXT_WORKPACKAGE = 'WP-E13-13';
36
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
37
+
38
+ const REQUIRED_SOURCE_GATES = Object.freeze([
39
+ 'npm run test:manifest-policy',
40
+ 'npm run test:docs-rmt-pilot',
41
+ 'npm run test:browser',
42
+ 'npm run test:epic13-prod-browser-csp-smoke',
43
+ 'npm run test:epic13-docs-rmt-production-hardening'
44
+ ]);
45
+
46
+ const REQUIRED_BROWSER_ASSERTIONS = Object.freeze([
47
+ 'parsedown-content-sanitized-before-innerhtml-sink',
48
+ 'trusted-dom-proof-schema-marked-on-sink',
49
+ 'script-element-removed',
50
+ 'iframe-element-removed',
51
+ 'event-handler-attributes-removed',
52
+ 'javascript-urls-removed',
53
+ 'srcdoc-removed',
54
+ 'safe-parsedown-text-preserved',
55
+ 'sanitizer-records-removed-payloads',
56
+ 'malicious-script-did-not-execute',
57
+ 'rmt-shell-remained-shell-first',
58
+ 'rmt-kernel-remains-parser-neutral'
59
+ ]);
60
+
61
+ const REQUIRED_ARTIFACTS = Object.freeze([
62
+ EPIC13_TRUSTED_DOM_BOUNDARY_STEERING,
63
+ EPIC13_TRUSTED_DOM_BOUNDARY_CONTRACT,
64
+ EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE_DOC,
65
+ EPIC13_TRUSTED_DOM_BOUNDARY_DOCS,
66
+ TRUSTED_DOM_BOUNDARY_FIXTURE,
67
+ 'security/trusted-dom-policy.js',
68
+ 'docs/utils/pageloader.js',
69
+ 'docs/index.php',
70
+ 'docs/xtendrmt-parsedown-docs.rmt',
71
+ 'docs/trusted-dom-sanitizing.md',
72
+ 'docs/docs-rmt-production-hardening.md',
73
+ 'docs/prod-browser-csp-smokes.md'
74
+ ]);
75
+
76
+ function createEpic13TrustedDomBoundaryPlan(options = {}) {
77
+ const sourcePlan = options.sourcePlan || createEpic13DocsRmtProductionHardeningPlan(options);
78
+ const sourceValidation = options.sourceValidation || validateEpic13DocsRmtProductionHardeningPlan(sourcePlan);
79
+ const sourceReport = options.sourceReport || createEpic13DocsRmtProductionHardeningReport({ ...options, plan: sourcePlan });
80
+
81
+ return {
82
+ schema: EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA,
83
+ fixtureSchema: EPIC13_TRUSTED_DOM_BOUNDARY_FIXTURE_SCHEMA,
84
+ reportSchema: EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA,
85
+ workpackage: EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE,
86
+ status: EPIC13_TRUSTED_DOM_BOUNDARY_STATUS,
87
+ generatedAt: options.generatedAt || 'static-local',
88
+ module: EPIC13_TRUSTED_DOM_BOUNDARY_MODULE,
89
+ suite: EPIC13_TRUSTED_DOM_BOUNDARY_SUITE,
90
+ steeringDocument: EPIC13_TRUSTED_DOM_BOUNDARY_STEERING,
91
+ contract: EPIC13_TRUSTED_DOM_BOUNDARY_CONTRACT,
92
+ workpackageDocument: EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE_DOC,
93
+ docs: EPIC13_TRUSTED_DOM_BOUNDARY_DOCS,
94
+ localGate: EPIC13_TRUSTED_DOM_BOUNDARY_LOCAL_GATE,
95
+ packageScript: EPIC13_TRUSTED_DOM_BOUNDARY_PACKAGE_SCRIPT,
96
+ reportArtifact: EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_ARTIFACT,
97
+ sourceSchema: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA,
98
+ sourceReportSchema: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
99
+ sourceStatus: sourcePlan.status,
100
+ sourceValidationOk: sourceValidation.ok,
101
+ sourceReportOk: sourceReport.ok,
102
+ targetReadiness: EPIC13_TRUSTED_DOM_BOUNDARY_TARGET,
103
+ trustedDomPolicy: TRUSTED_DOM_POLICY_CONTRACT,
104
+ trustedDomSanitizer: TRUSTED_DOM_SANITIZER_CONTRACT,
105
+ trustBoundary: SANITIZING_BOUNDARY_CONTRACT,
106
+ fixture: TRUSTED_DOM_BOUNDARY_FIXTURE,
107
+ resultKey: TRUSTED_DOM_BOUNDARY_RESULT_KEY,
108
+ sourceGates: REQUIRED_SOURCE_GATES.slice(),
109
+ requiredBrowserAssertions: REQUIRED_BROWSER_ASSERTIONS.slice(),
110
+ artifactPaths: REQUIRED_ARTIFACTS.slice(),
111
+ boundaryProof: {
112
+ parsedownHtmlRequiresSanitizer: true,
113
+ rmtHtmlFragmentRequiresSanitizer: true,
114
+ structuredDomDescriptorPreferred: true,
115
+ hostOwnsSanitizingSink: true,
116
+ scriptsBlocked: true,
117
+ inlineEventHandlersBlocked: true,
118
+ javascriptUrlsBlocked: true,
119
+ srcdocBlocked: true,
120
+ cspSmokeLinked: true
121
+ },
122
+ localGateMode: 'static-fixture-plus-trusted-dom-sanitizer-proof',
123
+ externalBrowserRequiredInLocalGate: false,
124
+ externalNetworkAllowedInLocalGate: false,
125
+ browserExecutionMode: 'optional-driver-or-owner-artifact',
126
+ frameworkAgnostic: true,
127
+ rmtKernelImportsSanitizer: false,
128
+ rmtKernelImportsParsedown: false,
129
+ rmtKernelImportsXtendTypes: false,
130
+ kernelBoundary: KERNEL_BOUNDARY,
131
+ nextDecision: NEXT_DECISION,
132
+ nextWorkpackage: NEXT_WORKPACKAGE,
133
+ publishBoundary: PUBLISH_BOUNDARY,
134
+ publishAllowed: false,
135
+ packagePrivateRequired: true
136
+ };
137
+ }
138
+
139
+ function validateEpic13TrustedDomBoundaryPlan(plan = createEpic13TrustedDomBoundaryPlan()) {
140
+ const errors = [];
141
+ const proof = plan && plan.boundaryProof ? plan.boundaryProof : {};
142
+
143
+ if (!plan || plan.schema !== EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA) errors.push(`schema must be ${EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA}`);
144
+ if (!plan || plan.fixtureSchema !== EPIC13_TRUSTED_DOM_BOUNDARY_FIXTURE_SCHEMA) errors.push(`fixtureSchema must be ${EPIC13_TRUSTED_DOM_BOUNDARY_FIXTURE_SCHEMA}`);
145
+ if (!plan || plan.reportSchema !== EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA}`);
146
+ if (!plan || plan.workpackage !== EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE}`);
147
+ if (!plan || plan.status !== EPIC13_TRUSTED_DOM_BOUNDARY_STATUS) errors.push(`status must be ${EPIC13_TRUSTED_DOM_BOUNDARY_STATUS}`);
148
+ if (!plan || plan.sourceSchema !== EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA) errors.push('source schema must be Docs RMT production hardening');
149
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('Docs RMT production hardening source must validate');
150
+ if (!plan || plan.targetReadiness !== EPIC13_TRUSTED_DOM_BOUNDARY_TARGET) errors.push(`targetReadiness must be ${EPIC13_TRUSTED_DOM_BOUNDARY_TARGET}`);
151
+ if (!plan || plan.trustedDomPolicy !== TRUSTED_DOM_POLICY_CONTRACT) errors.push(`trustedDomPolicy must be ${TRUSTED_DOM_POLICY_CONTRACT}`);
152
+ if (!plan || plan.trustedDomSanitizer !== TRUSTED_DOM_SANITIZER_CONTRACT) errors.push(`trustedDomSanitizer must be ${TRUSTED_DOM_SANITIZER_CONTRACT}`);
153
+ if (!plan || plan.trustBoundary !== SANITIZING_BOUNDARY_CONTRACT) errors.push(`trustBoundary must be ${SANITIZING_BOUNDARY_CONTRACT}`);
154
+ if (!plan || plan.fixture !== TRUSTED_DOM_BOUNDARY_FIXTURE) errors.push(`fixture must be ${TRUSTED_DOM_BOUNDARY_FIXTURE}`);
155
+ if (!plan || plan.resultKey !== TRUSTED_DOM_BOUNDARY_RESULT_KEY) errors.push(`resultKey must be ${TRUSTED_DOM_BOUNDARY_RESULT_KEY}`);
156
+ REQUIRED_SOURCE_GATES.forEach((gate) => {
157
+ if (!plan || !plan.sourceGates.includes(gate)) errors.push(`source gate missing: ${gate}`);
158
+ });
159
+ REQUIRED_BROWSER_ASSERTIONS.forEach((assertion) => {
160
+ if (!plan || !plan.requiredBrowserAssertions.includes(assertion)) errors.push(`browser assertion missing: ${assertion}`);
161
+ });
162
+ REQUIRED_ARTIFACTS.forEach((artifact) => {
163
+ if (!plan || !plan.artifactPaths.includes(artifact)) errors.push(`artifact missing: ${artifact}`);
164
+ });
165
+ if (!proof.parsedownHtmlRequiresSanitizer || !proof.rmtHtmlFragmentRequiresSanitizer) errors.push('Parsedown HTML and RMT HTML fragments must require sanitizer');
166
+ if (!proof.structuredDomDescriptorPreferred || !proof.hostOwnsSanitizingSink) errors.push('Structured descriptors must stay preferred and host must own sanitizing sink');
167
+ if (!proof.scriptsBlocked || !proof.inlineEventHandlersBlocked || !proof.javascriptUrlsBlocked || !proof.srcdocBlocked) errors.push('trusted DOM proof must block scripts, inline handlers, javascript URLs and srcdoc');
168
+ if (!plan || plan.localGateMode !== 'static-fixture-plus-trusted-dom-sanitizer-proof') errors.push('local gate mode must stay static fixture plus sanitizer proof');
169
+ if (!plan || plan.externalBrowserRequiredInLocalGate !== false || plan.externalNetworkAllowedInLocalGate !== false) errors.push('local gate must not require external browser or network');
170
+ if (!plan || plan.frameworkAgnostic !== true) errors.push('trusted DOM boundary proof must stay framework agnostic');
171
+ if (!plan || plan.rmtKernelImportsSanitizer !== false || plan.rmtKernelImportsParsedown !== false || plan.rmtKernelImportsXtendTypes !== false) errors.push('RMT kernel must not import sanitizer, Parsedown or XTend types');
172
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
173
+ if (!plan || plan.nextDecision !== NEXT_DECISION) errors.push(`next decision must be ${NEXT_DECISION}`);
174
+ if (!plan || plan.nextWorkpackage !== NEXT_WORKPACKAGE) errors.push(`next workpackage must be ${NEXT_WORKPACKAGE}`);
175
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
176
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
177
+
178
+ return {
179
+ schema: EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA,
180
+ ok: errors.length === 0,
181
+ errors
182
+ };
183
+ }
184
+
185
+ function createEpic13TrustedDomBoundaryReport(options = {}) {
186
+ const plan = options.plan || createEpic13TrustedDomBoundaryPlan(options);
187
+ const validation = validateEpic13TrustedDomBoundaryPlan(plan);
188
+
189
+ return {
190
+ schema: EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA,
191
+ ok: validation.ok,
192
+ errors: validation.errors,
193
+ plan,
194
+ sourceGateCount: plan.sourceGates.length,
195
+ browserAssertionCount: plan.requiredBrowserAssertions.length,
196
+ fixture: plan.fixture,
197
+ trustedDomSanitizer: plan.trustedDomSanitizer,
198
+ publishAllowed: plan.publishAllowed,
199
+ nextWorkpackage: plan.nextWorkpackage
200
+ };
201
+ }
202
+
203
+ module.exports = {
204
+ EPIC13_TRUSTED_DOM_BOUNDARY_CONTRACT,
205
+ EPIC13_TRUSTED_DOM_BOUNDARY_DOCS,
206
+ EPIC13_TRUSTED_DOM_BOUNDARY_FIXTURE_SCHEMA,
207
+ EPIC13_TRUSTED_DOM_BOUNDARY_LOCAL_GATE,
208
+ EPIC13_TRUSTED_DOM_BOUNDARY_MODULE,
209
+ EPIC13_TRUSTED_DOM_BOUNDARY_PACKAGE_SCRIPT,
210
+ EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_ARTIFACT,
211
+ EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA,
212
+ EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA,
213
+ EPIC13_TRUSTED_DOM_BOUNDARY_STATUS,
214
+ EPIC13_TRUSTED_DOM_BOUNDARY_STEERING,
215
+ EPIC13_TRUSTED_DOM_BOUNDARY_SUITE,
216
+ EPIC13_TRUSTED_DOM_BOUNDARY_TARGET,
217
+ EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE,
218
+ EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE_DOC,
219
+ NEXT_DECISION,
220
+ NEXT_WORKPACKAGE,
221
+ PUBLISH_BOUNDARY,
222
+ REQUIRED_ARTIFACTS,
223
+ REQUIRED_BROWSER_ASSERTIONS,
224
+ REQUIRED_SOURCE_GATES,
225
+ TRUSTED_DOM_BOUNDARY_FIXTURE,
226
+ TRUSTED_DOM_BOUNDARY_RESULT_KEY,
227
+ createEpic13TrustedDomBoundaryPlan,
228
+ createEpic13TrustedDomBoundaryReport,
229
+ validateEpic13TrustedDomBoundaryPlan
230
+ };
@@ -0,0 +1,35 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogGate,
4
+ XtendCatalogOptions,
5
+ XtendCatalogPlan,
6
+ XtendCatalogRecord,
7
+ XtendCatalogReport
8
+ } from './catalog-public-types';
9
+
10
+
11
+ export declare const DETERMINISTIC_VIEWPORTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
12
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_CONTRACT: string;
13
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
14
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_LOCAL_GATE: string;
15
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_MANIFEST_SCHEMA: string;
16
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_MODULE: string;
17
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_PACKAGE_SCRIPT: string;
18
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA: string;
19
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA: string;
20
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_STATUS: string;
21
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_STEERING: XtendCatalogConstant;
22
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_SUITE: string;
23
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_TARGET: string;
24
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE: string;
25
+ export declare const EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE_DOC: XtendCatalogConstant;
26
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
27
+ export declare const REQUIRED_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
28
+ export declare const REQUIRED_SOURCE_GATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
29
+ export declare const VISUAL_OWNER_ARTIFACT_MANIFEST: XtendCatalogConstant;
30
+ export declare const VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE: XtendCatalogConstant;
31
+ export declare const VISUAL_OWNER_ARTIFACT_REPORT: XtendCatalogConstant;
32
+ export declare const VISUAL_OWNER_ARTIFACT_ROOT: XtendCatalogConstant;
33
+ export declare function createEpic13VisualOwnerArtifactPlan(options?: XtendCatalogOptions): XtendCatalogPlan;
34
+ export declare function createEpic13VisualOwnerArtifactReport(options?: XtendCatalogOptions): XtendCatalogReport;
35
+ export declare function validateEpic13VisualOwnerArtifactPlan(plan?: unknown): XtendCatalogReport;