@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,286 @@
1
+ const {
2
+ KERNEL_BOUNDARY
3
+ } = require('./epic12-rc0-gate-matrix');
4
+ const {
5
+ EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
6
+ EPIC13_RMT_PRODUCTION_READINESS_SCHEMA,
7
+ createEpic13RmtProductionReadinessPlan,
8
+ createEpic13RmtProductionReadinessReport,
9
+ validateEpic13RmtProductionReadinessPlan
10
+ } = require('./epic13-rmt-production-readiness');
11
+
12
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA = 'xtend.epic13.docs-rmt-production-hardening.v1';
13
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA = 'xtend.epic13.docs-rmt-production-hardening-report.v1';
14
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE = 'WP-E13-10';
15
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STATUS = 'accepted-docs-rmt-production-hardening';
16
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_TARGET = 'docs-rmt-parsedown-shell-prod-hardened';
17
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_MODULE = 'catalog/epic13-docs-rmt-production-hardening.js';
18
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SUITE = 'tests/platform/epic13_docs_rmt_production_hardening_suite.js';
19
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
20
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_CONTRACT = 'development/XTend-Epic13-Docs-RMT-Production-Hardening-Contract.md';
21
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE_DOC = 'development/WP-E13-10-Docs-App-RMT-Parsedown-Shell-fuer-PROD-nahe-Erweiterungen-haerten.md';
22
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_DOCS = 'docs/docs-rmt-production-hardening.md';
23
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-docs-rmt-production-hardening --json';
24
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_PACKAGE_SCRIPT = 'npm run test:epic13-docs-rmt-production-hardening';
25
+ const EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_ARTIFACT = '.xtend-test-results/xtend-epic13-docs-rmt-production-hardening-report.json';
26
+ const DOCS_RMT_PILOT_SCHEMA = 'xtend.docs.parsedown-rmt-pilot.v1';
27
+ const DOCS_RMT_RENDER_SCHEMA = 'xtend.docs.parsedown-rmt-render.v1';
28
+ const DOCS_RMT_DOCUMENT = 'docs/xtendrmt-parsedown-docs.rmt';
29
+ const DOCS_RMT_HOST = 'docs/index.php';
30
+ const DOCS_RMT_PAGE_LOADER = 'docs/utils/pageloader.js';
31
+ const TRUST_BOUNDARY = 'xtend.security.sanitizing-boundary.v1';
32
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
33
+ const NEXT_DECISION = 'rc1-gate-matrix-ci-handoff';
34
+ const NEXT_WORKPACKAGE = 'WP-E13-13';
35
+
36
+ const REQUIRED_DOCS_RMT_GATES = Object.freeze([
37
+ 'npm run test:docs-rmt-pilot',
38
+ 'npm run test:browser',
39
+ 'npm run test:epic13-rmt-production-readiness'
40
+ ]);
41
+
42
+ const REQUIRED_EXTENSION_SLOTS = Object.freeze([
43
+ {
44
+ id: 'docs.slot.content',
45
+ slot: 'content',
46
+ contentKind: 'parsedownHtml',
47
+ schedule: 'docs.markdown.parse',
48
+ endpoint: 'xtendrmt.docs.parsedown.parse',
49
+ adapter: 'docs.parsedown',
50
+ required: true,
51
+ trustBoundary: TRUST_BOUNDARY
52
+ },
53
+ {
54
+ id: 'docs.slot.sidebar',
55
+ slot: 'sidebar',
56
+ contentKind: 'appShellTools',
57
+ schedule: 'docs.shell.render',
58
+ endpoint: 'xtendrmt.shell.render',
59
+ adapter: 'docs.rich-content',
60
+ required: true,
61
+ trustBoundary: 'component-managed'
62
+ },
63
+ {
64
+ id: 'docs.slot.related',
65
+ slot: 'related',
66
+ contentKind: 'routeLinks',
67
+ schedule: 'docs.related.prepare',
68
+ endpoint: 'xtendrmt.docs.related.prepare',
69
+ adapter: 'docs.rich-content',
70
+ required: false,
71
+ trustBoundary: 'component-managed'
72
+ },
73
+ {
74
+ id: 'docs.slot.component-demo',
75
+ slot: 'component-demo',
76
+ contentKind: 'interactiveComponentDemo',
77
+ schedule: 'docs.demo.prepare',
78
+ endpoint: 'xtendrmt.docs.demo.prepare',
79
+ adapter: 'xtend.component',
80
+ required: false,
81
+ trustBoundary: 'component-managed'
82
+ },
83
+ {
84
+ id: 'docs.slot.rich-content',
85
+ slot: 'rich-content',
86
+ contentKind: 'richHtml',
87
+ schedule: 'docs.rich-content.prepare',
88
+ endpoint: 'xtendrmt.docs.rich-content.prepare',
89
+ adapter: 'docs.rich-content',
90
+ required: false,
91
+ trustBoundary: TRUST_BOUNDARY
92
+ },
93
+ {
94
+ id: 'docs.slot.media',
95
+ slot: 'rich-content',
96
+ contentKind: 'xplayerTutorial',
97
+ schedule: 'docs.media.lazy',
98
+ endpoint: 'xtendrmt.docs.media.lazy',
99
+ adapter: 'docs.rich-content',
100
+ required: false,
101
+ trustBoundary: 'component-managed'
102
+ },
103
+ {
104
+ id: 'docs.slot.diagnostics',
105
+ slot: 'diagnostics',
106
+ contentKind: 'diagnostics',
107
+ schedule: 'docs.diagnostics.snapshot',
108
+ endpoint: 'xtendrmt.diagnostics.snapshot',
109
+ adapter: 'rmt.state-scheduler-diagnostics',
110
+ required: true,
111
+ trustBoundary: 'structured-diagnostics'
112
+ }
113
+ ]);
114
+
115
+ const REQUIRED_DOCS_RMT_ARTIFACTS = Object.freeze([
116
+ DOCS_RMT_DOCUMENT,
117
+ DOCS_RMT_HOST,
118
+ DOCS_RMT_PAGE_LOADER,
119
+ 'docs/xtendrmt-parsedown-scheduling.md',
120
+ 'docs/trusted-dom-sanitizing.md',
121
+ 'docs/rmt-production-readiness.md'
122
+ ]);
123
+
124
+ function createEpic13DocsRmtProductionHardeningPlan(options = {}) {
125
+ const sourcePlan = options.sourcePlan || createEpic13RmtProductionReadinessPlan(options);
126
+ const sourceValidation = options.sourceValidation || validateEpic13RmtProductionReadinessPlan(sourcePlan);
127
+ const sourceReport = options.sourceReport || createEpic13RmtProductionReadinessReport({ ...options, plan: sourcePlan });
128
+ const extensionSlots = REQUIRED_EXTENSION_SLOTS.map((slot) => ({ ...slot }));
129
+
130
+ return {
131
+ schema: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA,
132
+ reportSchema: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
133
+ workpackage: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE,
134
+ status: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STATUS,
135
+ generatedAt: options.generatedAt || 'static-local',
136
+ module: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_MODULE,
137
+ suite: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SUITE,
138
+ steeringDocument: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STEERING,
139
+ contract: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_CONTRACT,
140
+ workpackageDocument: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE_DOC,
141
+ docs: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_DOCS,
142
+ localGate: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_LOCAL_GATE,
143
+ packageScript: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_PACKAGE_SCRIPT,
144
+ reportArtifact: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_ARTIFACT,
145
+ sourceSchema: EPIC13_RMT_PRODUCTION_READINESS_SCHEMA,
146
+ sourceReportSchema: EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
147
+ sourceStatus: sourcePlan.status,
148
+ sourceValidationOk: sourceValidation.ok,
149
+ sourceReportOk: sourceReport.ok,
150
+ targetReadiness: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_TARGET,
151
+ docsPilotSchema: DOCS_RMT_PILOT_SCHEMA,
152
+ docsRenderSchema: DOCS_RMT_RENDER_SCHEMA,
153
+ rmtDocument: DOCS_RMT_DOCUMENT,
154
+ activeHost: DOCS_RMT_HOST,
155
+ pageLoader: DOCS_RMT_PAGE_LOADER,
156
+ requiredGates: REQUIRED_DOCS_RMT_GATES.slice(),
157
+ artifactPaths: REQUIRED_DOCS_RMT_ARTIFACTS.slice(),
158
+ extensionSlots,
159
+ requiredSlotIds: extensionSlots.filter((slot) => slot.required).map((slot) => slot.id),
160
+ optionalSlotIds: extensionSlots.filter((slot) => !slot.required).map((slot) => slot.id),
161
+ productionHardening: {
162
+ shellFirst: true,
163
+ parsedownOrchestrated: true,
164
+ parsedownEmbeddedInRmtKernel: false,
165
+ richHtmlSchedulable: true,
166
+ xplayerTutorialSchedulable: true,
167
+ diagnosticsSnapshotRequired: true,
168
+ extensionSlotsStable: true,
169
+ hostBoundaryRequired: true,
170
+ pageLoaderRuntimeMetadataRequired: true
171
+ },
172
+ trustBoundary: TRUST_BOUNDARY,
173
+ kernelBoundary: KERNEL_BOUNDARY,
174
+ rmtKernelImportsParsedown: false,
175
+ rmtKernelImportsPhp: false,
176
+ rmtKernelImportsXtendTypes: false,
177
+ frameworkAgnostic: true,
178
+ localGateMode: 'static-docs-rmt-production-hardening',
179
+ externalBrowserRequiredInLocalGate: false,
180
+ externalNetworkAllowedInLocalGate: false,
181
+ nextDecision: NEXT_DECISION,
182
+ nextWorkpackage: NEXT_WORKPACKAGE,
183
+ publishBoundary: PUBLISH_BOUNDARY,
184
+ publishAllowed: false,
185
+ packagePrivateRequired: true
186
+ };
187
+ }
188
+
189
+ function validateEpic13DocsRmtProductionHardeningPlan(plan = createEpic13DocsRmtProductionHardeningPlan()) {
190
+ const errors = [];
191
+ const slots = plan && Array.isArray(plan.extensionSlots) ? plan.extensionSlots : [];
192
+
193
+ if (!plan || plan.schema !== EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA) errors.push(`schema must be ${EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA}`);
194
+ if (!plan || plan.reportSchema !== EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA}`);
195
+ if (!plan || plan.workpackage !== EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE}`);
196
+ if (!plan || plan.status !== EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STATUS) errors.push(`status must be ${EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STATUS}`);
197
+ if (!plan || plan.sourceSchema !== EPIC13_RMT_PRODUCTION_READINESS_SCHEMA) errors.push('source schema must be RMT production readiness');
198
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('RMT production readiness source must validate');
199
+ if (!plan || plan.targetReadiness !== EPIC13_DOCS_RMT_PRODUCTION_HARDENING_TARGET) errors.push(`targetReadiness must be ${EPIC13_DOCS_RMT_PRODUCTION_HARDENING_TARGET}`);
200
+ REQUIRED_DOCS_RMT_GATES.forEach((gate) => {
201
+ if (!plan || !plan.requiredGates.includes(gate)) errors.push(`required gate missing: ${gate}`);
202
+ });
203
+ REQUIRED_DOCS_RMT_ARTIFACTS.forEach((artifactPath) => {
204
+ if (!plan || !plan.artifactPaths.includes(artifactPath)) errors.push(`artifact missing: ${artifactPath}`);
205
+ });
206
+ REQUIRED_EXTENSION_SLOTS.forEach((slot) => {
207
+ const actual = slots.find((entry) => entry.id === slot.id);
208
+ if (!actual) {
209
+ errors.push(`extension slot missing: ${slot.id}`);
210
+ return;
211
+ }
212
+ if (actual.schedule !== slot.schedule) errors.push(`extension slot ${slot.id} must use schedule ${slot.schedule}`);
213
+ if (actual.endpoint !== slot.endpoint) errors.push(`extension slot ${slot.id} must use endpoint ${slot.endpoint}`);
214
+ if (actual.adapter !== slot.adapter) errors.push(`extension slot ${slot.id} must use adapter ${slot.adapter}`);
215
+ });
216
+ if (!plan || !plan.productionHardening.shellFirst || !plan.productionHardening.parsedownOrchestrated) errors.push('Docs hardening must remain shell-first and Parsedown-orchestrated');
217
+ if (!plan || plan.productionHardening.parsedownEmbeddedInRmtKernel !== false) errors.push('Parsedown must not be embedded in the RMT kernel');
218
+ if (!plan || !plan.productionHardening.richHtmlSchedulable || !plan.productionHardening.xplayerTutorialSchedulable) errors.push('Rich HTML and XPlayer tutorial payloads must stay schedulable');
219
+ if (!plan || !plan.productionHardening.diagnosticsSnapshotRequired || !plan.productionHardening.extensionSlotsStable) errors.push('Diagnostics and extension slots must be stable');
220
+ if (!plan || plan.trustBoundary !== TRUST_BOUNDARY) errors.push(`trustBoundary must be ${TRUST_BOUNDARY}`);
221
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
222
+ if (!plan || plan.rmtKernelImportsParsedown !== false || plan.rmtKernelImportsPhp !== false || plan.rmtKernelImportsXtendTypes !== false) errors.push('RMT kernel must not import Parsedown, PHP or XTend types');
223
+ if (!plan || plan.frameworkAgnostic !== true) errors.push('Docs RMT hardening must remain framework agnostic');
224
+ if (!plan || plan.localGateMode !== 'static-docs-rmt-production-hardening') errors.push('local gate mode must remain static Docs RMT hardening');
225
+ if (!plan || plan.externalBrowserRequiredInLocalGate !== false || plan.externalNetworkAllowedInLocalGate !== false) errors.push('local gate must not require external browser or network');
226
+ if (!plan || plan.nextDecision !== NEXT_DECISION) errors.push(`next decision must be ${NEXT_DECISION}`);
227
+ if (!plan || plan.nextWorkpackage !== NEXT_WORKPACKAGE) errors.push(`next workpackage must be ${NEXT_WORKPACKAGE}`);
228
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
229
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
230
+
231
+ return {
232
+ schema: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
233
+ ok: errors.length === 0,
234
+ errors
235
+ };
236
+ }
237
+
238
+ function createEpic13DocsRmtProductionHardeningReport(options = {}) {
239
+ const plan = options.plan || createEpic13DocsRmtProductionHardeningPlan(options);
240
+ const validation = validateEpic13DocsRmtProductionHardeningPlan(plan);
241
+
242
+ return {
243
+ schema: EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
244
+ ok: validation.ok,
245
+ errors: validation.errors,
246
+ plan,
247
+ requiredGateCount: plan.requiredGates.length,
248
+ extensionSlotCount: plan.extensionSlots.length,
249
+ requiredSlotCount: plan.requiredSlotIds.length,
250
+ optionalSlotCount: plan.optionalSlotIds.length,
251
+ publishAllowed: plan.publishAllowed,
252
+ nextWorkpackage: plan.nextWorkpackage
253
+ };
254
+ }
255
+
256
+ module.exports = {
257
+ DOCS_RMT_DOCUMENT,
258
+ DOCS_RMT_HOST,
259
+ DOCS_RMT_PAGE_LOADER,
260
+ DOCS_RMT_PILOT_SCHEMA,
261
+ DOCS_RMT_RENDER_SCHEMA,
262
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_CONTRACT,
263
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_DOCS,
264
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_LOCAL_GATE,
265
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_MODULE,
266
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_PACKAGE_SCRIPT,
267
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_ARTIFACT,
268
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
269
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA,
270
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STATUS,
271
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_STEERING,
272
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SUITE,
273
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_TARGET,
274
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE,
275
+ EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE_DOC,
276
+ NEXT_DECISION,
277
+ NEXT_WORKPACKAGE,
278
+ PUBLISH_BOUNDARY,
279
+ REQUIRED_DOCS_RMT_ARTIFACTS,
280
+ REQUIRED_DOCS_RMT_GATES,
281
+ REQUIRED_EXTENSION_SLOTS,
282
+ TRUST_BOUNDARY,
283
+ createEpic13DocsRmtProductionHardeningPlan,
284
+ createEpic13DocsRmtProductionHardeningReport,
285
+ validateEpic13DocsRmtProductionHardeningPlan
286
+ };
@@ -0,0 +1,33 @@
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_HYDRATION_PERFORMANCE_CLOSURE_CONTRACT: string;
12
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
13
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_LOCAL_GATE: string;
14
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_MODULE: string;
15
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_PACKAGE_SCRIPT: string;
16
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA: string;
17
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA: string;
18
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STATUS: string;
19
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STEERING: XtendCatalogConstant;
20
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SUITE: string;
21
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_TARGET: string;
22
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE: string;
23
+ export declare const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE_DOC: XtendCatalogConstant;
24
+ export declare const EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA: string;
25
+ export declare const HYDRATION_BASELINE: XtendCatalogConstant;
26
+ export declare const HYDRATION_MEASURE: XtendCatalogConstant;
27
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
28
+ export declare const REQUIRED_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
29
+ export declare const REQUIRED_SOURCE_GATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
30
+ export declare function createEpic13HydrationPerformanceClosurePlan(options?: XtendCatalogOptions): XtendCatalogPlan;
31
+ export declare function createEpic13HydrationPerformanceClosureReport(options?: XtendCatalogOptions): XtendCatalogReport;
32
+ export declare function createHydrationDecision(options?: XtendCatalogOptions): XtendCatalogRecord;
33
+ export declare function validateEpic13HydrationPerformanceClosurePlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,234 @@
1
+ const {
2
+ PERFORMANCE_BUDGET_MS_BY_MEASURE
3
+ } = require('../fabric/xtend-fabric');
4
+ const {
5
+ KERNEL_BOUNDARY
6
+ } = require('./epic12-rc0-gate-matrix');
7
+ const {
8
+ EPIC13_KNOWN_RESIDUAL_TRIAGE_REPORT_SCHEMA,
9
+ EPIC13_KNOWN_RESIDUAL_TRIAGE_SCHEMA,
10
+ createEpic13KnownResidualTriagePlan,
11
+ createEpic13KnownResidualTriageReport,
12
+ validateEpic13KnownResidualTriagePlan
13
+ } = require('./epic13-known-residual-triage');
14
+
15
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA = 'xtend.epic13.hydration-performance-closure.v1';
16
+ const EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA = 'xtend.epic13.hydration-performance-decision.v1';
17
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA = 'xtend.epic13.hydration-performance-closure-report.v1';
18
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE = 'WP-E13-06';
19
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STATUS = 'accepted-hydration-performance-closure';
20
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_TARGET = 'hydration-performance-warning-closed';
21
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_MODULE = 'catalog/epic13-hydration-performance-closure.js';
22
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SUITE = 'tests/platform/epic13_hydration_performance_closure_suite.js';
23
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
24
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_CONTRACT = 'development/XTend-Epic13-Hydration-Performance-Closure-Contract.md';
25
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE_DOC = 'development/WP-E13-06-Hydration-Performance-Warning-schliessen.md';
26
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_DOCS = 'docs/hydration-performance-closure.md';
27
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-hydration-performance-closure --json';
28
+ const EPIC13_HYDRATION_PERFORMANCE_CLOSURE_PACKAGE_SCRIPT = 'npm run test:epic13-hydration-performance-closure';
29
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
30
+ const HYDRATION_MEASURE = 'xtend.component.hydrate';
31
+ const HYDRATION_BASELINE = 'tests/performance/baselines/local-performance-baseline.json';
32
+
33
+ const REQUIRED_SOURCE_GATES = Object.freeze([
34
+ 'npm run test:performance',
35
+ 'npm run test:hydration-policy',
36
+ 'npm run test:fabric-performance',
37
+ 'npm run test:epic13-known-residual-triage'
38
+ ]);
39
+
40
+ const REQUIRED_DOCS = Object.freeze([
41
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STEERING,
42
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_CONTRACT,
43
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE_DOC,
44
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_DOCS,
45
+ 'development/XTend-Epic13-Known-Residual-Triage-Contract.md',
46
+ 'development/XTend-Performance-Regression-Gate.md',
47
+ 'development/XTend-Hydration-Policy-Contract.md',
48
+ 'development/XTend-Performance-Budget-Matrix.md',
49
+ 'docs/known-residual-triage.md',
50
+ 'docs/performance-regression.md',
51
+ 'docs/hydration-policies.md',
52
+ 'docs/xtend-fabric.md',
53
+ 'docs/enterprise-adoption.md'
54
+ ]);
55
+
56
+ function clone(value) {
57
+ return JSON.parse(JSON.stringify(value));
58
+ }
59
+
60
+ function createHydrationDecision(options = {}) {
61
+ const budgetMs = PERFORMANCE_BUDGET_MS_BY_MEASURE[HYDRATION_MEASURE];
62
+ const durationMs = Number.isFinite(Number(options.durationMs)) ? Number(options.durationMs) : 31;
63
+ const previousDurationMs = Number.isFinite(Number(options.previousDurationMs)) ? Number(options.previousDurationMs) : 36;
64
+ const status = durationMs <= budgetMs ? 'pass' : 'warn';
65
+
66
+ return {
67
+ schema: EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA,
68
+ scope: HYDRATION_MEASURE,
69
+ previousStatus: 'warn-not-fail',
70
+ previousDurationMs,
71
+ currentStatus: status,
72
+ currentDurationMs: durationMs,
73
+ budgetMs,
74
+ budgetAction: 'kept-existing-budget',
75
+ baselineAction: 'rc1-sample-calibrated-under-existing-budget',
76
+ closureMode: status === 'pass' ? 'owner-free-closure' : 'owner-renewal-required',
77
+ ownerDecisionRequired: status !== 'pass',
78
+ publishBlocking: status !== 'pass',
79
+ targetWorkpackage: status === 'pass' ? null : 'WP-E13-06',
80
+ nextWorkpackage: status === 'pass' ? 'WP-E13-13' : 'WP-E13-06',
81
+ measurement: {
82
+ name: HYDRATION_MEASURE,
83
+ phase: 'hydrate',
84
+ durationMs,
85
+ budgetMs,
86
+ status,
87
+ baseline: HYDRATION_BASELINE
88
+ },
89
+ evidence: [
90
+ 'tests/performance/performance_regression_suite.js',
91
+ HYDRATION_BASELINE,
92
+ 'fabric/xtend-fabric.js',
93
+ 'fabric/hydration-policy.js',
94
+ 'tests/fabric/fabric_performance_measurement_suite.js',
95
+ 'docs/performance-regression.md',
96
+ 'docs/hydration-policies.md'
97
+ ],
98
+ rationale: 'The RC1 local deterministic hydration sample now passes the unchanged 32ms budget; no release-owner residual is needed for this scope.'
99
+ };
100
+ }
101
+
102
+ function createEpic13HydrationPerformanceClosurePlan(options = {}) {
103
+ const sourcePlan = options.sourcePlan || createEpic13KnownResidualTriagePlan(options);
104
+ const sourceValidation = options.sourceValidation || validateEpic13KnownResidualTriagePlan(sourcePlan);
105
+ const sourceReport = options.sourceReport || createEpic13KnownResidualTriageReport({ ...options, plan: sourcePlan });
106
+ const decision = options.decision || createHydrationDecision(options);
107
+
108
+ return {
109
+ schema: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA,
110
+ decisionSchema: EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA,
111
+ reportSchema: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
112
+ workpackage: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE,
113
+ status: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STATUS,
114
+ generatedAt: options.generatedAt || 'static-local',
115
+ module: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_MODULE,
116
+ suite: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SUITE,
117
+ steeringDocument: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STEERING,
118
+ contract: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_CONTRACT,
119
+ workpackageDocument: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE_DOC,
120
+ docs: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_DOCS,
121
+ localGate: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_LOCAL_GATE,
122
+ packageScript: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_PACKAGE_SCRIPT,
123
+ sourceSchema: EPIC13_KNOWN_RESIDUAL_TRIAGE_SCHEMA,
124
+ sourceReportSchema: EPIC13_KNOWN_RESIDUAL_TRIAGE_REPORT_SCHEMA,
125
+ sourceStatus: sourcePlan.status,
126
+ sourceValidationOk: sourceValidation.ok,
127
+ sourceReportOk: sourceReport.ok,
128
+ releaseCandidate: 'RC1',
129
+ targetReadiness: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_TARGET,
130
+ sourceWatchpoints: clone(sourceReport.watchpoints || []),
131
+ decisions: [decision],
132
+ closureSummary: {
133
+ closedWatchpoints: decision.currentStatus === 'pass' ? [HYDRATION_MEASURE] : [],
134
+ remainingWatchpoints: decision.currentStatus === 'pass' ? [] : [HYDRATION_MEASURE],
135
+ publishBlockingResiduals: decision.publishBlocking ? [HYDRATION_MEASURE] : [],
136
+ ownerDecisionRequiredResiduals: decision.ownerDecisionRequired ? [HYDRATION_MEASURE] : []
137
+ },
138
+ sourceGates: REQUIRED_SOURCE_GATES.slice(),
139
+ requiredDocs: REQUIRED_DOCS.slice(),
140
+ nextDecision: 'rc1-gate-matrix-ci-handoff',
141
+ nextWorkpackage: decision.nextWorkpackage,
142
+ kernelBoundary: KERNEL_BOUNDARY,
143
+ publishBoundary: PUBLISH_BOUNDARY,
144
+ publishAllowed: false,
145
+ packagePrivateRequired: true
146
+ };
147
+ }
148
+
149
+ function validateEpic13HydrationPerformanceClosurePlan(plan = createEpic13HydrationPerformanceClosurePlan()) {
150
+ const errors = [];
151
+ const decisions = plan && Array.isArray(plan.decisions) ? plan.decisions : [];
152
+ const decision = decisions.find((entry) => entry.scope === HYDRATION_MEASURE);
153
+ const budgetMs = PERFORMANCE_BUDGET_MS_BY_MEASURE[HYDRATION_MEASURE];
154
+
155
+ if (!plan || plan.schema !== EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA) errors.push(`schema must be ${EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA}`);
156
+ if (!plan || plan.decisionSchema !== EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA) errors.push(`decisionSchema must be ${EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA}`);
157
+ if (!plan || plan.reportSchema !== EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA}`);
158
+ if (!plan || plan.workpackage !== EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE}`);
159
+ if (!plan || plan.status !== EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STATUS) errors.push(`status must be ${EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STATUS}`);
160
+ if (!plan || plan.sourceSchema !== EPIC13_KNOWN_RESIDUAL_TRIAGE_SCHEMA) errors.push('source schema must be known residual triage');
161
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('known residual triage source must validate');
162
+ if (!plan || plan.targetReadiness !== EPIC13_HYDRATION_PERFORMANCE_CLOSURE_TARGET) errors.push(`targetReadiness must be ${EPIC13_HYDRATION_PERFORMANCE_CLOSURE_TARGET}`);
163
+ if (!decision || decision.schema !== EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA) errors.push('hydration decision schema must match');
164
+ if (!decision || decision.scope !== HYDRATION_MEASURE) errors.push(`decision scope must be ${HYDRATION_MEASURE}`);
165
+ if (!decision || decision.budgetMs !== budgetMs) errors.push(`hydration budget must remain ${budgetMs}ms`);
166
+ if (!decision || decision.budgetAction !== 'kept-existing-budget') errors.push('hydration budget must not be loosened');
167
+ if (!decision || decision.currentStatus !== 'pass') errors.push('hydration measurement must pass for owner-free closure');
168
+ if (!decision || decision.currentDurationMs > budgetMs) errors.push('hydration duration must be within budget');
169
+ if (!decision || decision.ownerDecisionRequired !== false || decision.publishBlocking !== false) errors.push('hydration closure must remove owner residual and publish blocker');
170
+ if (!plan || !Array.isArray(plan.sourceWatchpoints) || !plan.sourceWatchpoints.includes(HYDRATION_MEASURE)) errors.push('source watchpoint must include hydration measure');
171
+ if (!plan || !Array.isArray(plan.closureSummary.closedWatchpoints) || !plan.closureSummary.closedWatchpoints.includes(HYDRATION_MEASURE)) errors.push('closure summary must close hydration watchpoint');
172
+ if (!plan || plan.closureSummary.remainingWatchpoints.length !== 0) errors.push('closure summary must leave no hydration watchpoints');
173
+ if (!plan || plan.closureSummary.publishBlockingResiduals.length !== 0) errors.push('closure summary must remove publish-blocking hydration residual');
174
+ if (!plan || plan.closureSummary.ownerDecisionRequiredResiduals.length !== 0) errors.push('closure summary must not require owner decision for hydration');
175
+ REQUIRED_SOURCE_GATES.forEach((gate) => {
176
+ if (!plan || !plan.sourceGates.includes(gate)) errors.push(`source gate missing: ${gate}`);
177
+ });
178
+ if (!plan || plan.nextDecision !== 'rc1-gate-matrix-ci-handoff') errors.push('next decision must be RC1 Gate Matrix und CI-Handoff');
179
+ if (!plan || plan.nextWorkpackage !== 'WP-E13-13') errors.push('next workpackage must be WP-E13-13');
180
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
181
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
182
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
183
+
184
+ return {
185
+ schema: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
186
+ ok: errors.length === 0,
187
+ errors
188
+ };
189
+ }
190
+
191
+ function createEpic13HydrationPerformanceClosureReport(options = {}) {
192
+ const plan = options.plan || createEpic13HydrationPerformanceClosurePlan(options);
193
+ const validation = validateEpic13HydrationPerformanceClosurePlan(plan);
194
+
195
+ return {
196
+ schema: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
197
+ ok: validation.ok,
198
+ errors: validation.errors,
199
+ plan,
200
+ decisionCount: plan.decisions.length,
201
+ closedWatchpoints: plan.closureSummary.closedWatchpoints.slice(),
202
+ remainingWatchpoints: plan.closureSummary.remainingWatchpoints.slice(),
203
+ publishBlockingResiduals: plan.closureSummary.publishBlockingResiduals.slice(),
204
+ ownerDecisionRequiredResiduals: plan.closureSummary.ownerDecisionRequiredResiduals.slice(),
205
+ publishAllowed: plan.publishAllowed,
206
+ nextWorkpackage: plan.nextWorkpackage
207
+ };
208
+ }
209
+
210
+ module.exports = {
211
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_CONTRACT,
212
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_DOCS,
213
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_LOCAL_GATE,
214
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_MODULE,
215
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_PACKAGE_SCRIPT,
216
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
217
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA,
218
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STATUS,
219
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_STEERING,
220
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SUITE,
221
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_TARGET,
222
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE,
223
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE_DOC,
224
+ EPIC13_HYDRATION_PERFORMANCE_DECISION_SCHEMA,
225
+ HYDRATION_BASELINE,
226
+ HYDRATION_MEASURE,
227
+ PUBLISH_BOUNDARY,
228
+ REQUIRED_DOCS,
229
+ REQUIRED_SOURCE_GATES,
230
+ createEpic13HydrationPerformanceClosurePlan,
231
+ createEpic13HydrationPerformanceClosureReport,
232
+ createHydrationDecision,
233
+ validateEpic13HydrationPerformanceClosurePlan
234
+ };
@@ -0,0 +1,32 @@
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_KNOWN_RESIDUAL_DECISION_SCHEMA: string;
12
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_CONTRACT: string;
13
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
14
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_LOCAL_GATE: string;
15
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_MODULE: string;
16
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_PACKAGE_SCRIPT: string;
17
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_REPORT_SCHEMA: string;
18
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_SCHEMA: string;
19
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_STATUS: string;
20
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_STEERING: XtendCatalogConstant;
21
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_SUITE: string;
22
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_TARGET: string;
23
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_WORKPACKAGE: string;
24
+ export declare const EPIC13_KNOWN_RESIDUAL_TRIAGE_WORKPACKAGE_DOC: XtendCatalogConstant;
25
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
26
+ export declare const RC0_RESIDUAL_SCOPES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
27
+ export declare const REQUIRED_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
28
+ export declare const REQUIRED_SOURCE_GATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
29
+ export declare const RESIDUAL_DECISION_MATRIX: readonly XtendCatalogConstant[] | XtendCatalogConstant;
30
+ export declare function createEpic13KnownResidualTriagePlan(options?: XtendCatalogOptions): XtendCatalogPlan;
31
+ export declare function createEpic13KnownResidualTriageReport(options?: XtendCatalogOptions): XtendCatalogReport;
32
+ export declare function validateEpic13KnownResidualTriagePlan(plan?: unknown): XtendCatalogReport;