@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,218 @@
1
+ const {
2
+ PROD_LIKE_CSP_POLICY,
3
+ SERVER_CONTRACT
4
+ } = require('../scripts/serve_xtend_dev');
5
+ const {
6
+ KERNEL_BOUNDARY
7
+ } = require('./epic12-rc0-gate-matrix');
8
+ const {
9
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
10
+ EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA,
11
+ createEpic13HydrationPerformanceClosurePlan,
12
+ createEpic13HydrationPerformanceClosureReport,
13
+ validateEpic13HydrationPerformanceClosurePlan
14
+ } = require('./epic13-hydration-performance-closure');
15
+
16
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA = 'xtend.epic13.prod-browser-csp-smoke.v1';
17
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_FIXTURE_SCHEMA = 'xtend.epic13.prod-browser-csp-smoke-fixture.v1';
18
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA = 'xtend.epic13.prod-browser-csp-smoke-report.v1';
19
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE = 'WP-E13-07';
20
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_STATUS = 'accepted-prod-browser-csp-smoke-preparation';
21
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_TARGET = 'prod-browser-csp-smoke-prepared';
22
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_MODULE = 'catalog/epic13-prod-browser-csp-smoke.js';
23
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_SUITE = 'tests/platform/epic13_prod_browser_csp_smoke_suite.js';
24
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
25
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_CONTRACT = 'development/XTend-Epic13-PROD-Browser-CSP-Smoke-Contract.md';
26
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE_DOC = 'development/WP-E13-07-PROD-nahe-Browser-Local-Server-und-CSP-Smokes-vorbereiten.md';
27
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_DOCS = 'docs/prod-browser-csp-smokes.md';
28
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-prod-browser-csp-smoke --json';
29
+ const EPIC13_PROD_BROWSER_CSP_SMOKE_PACKAGE_SCRIPT = 'npm run test:epic13-prod-browser-csp-smoke';
30
+ const PROD_CSP_FIXTURE = 'tests/browser/fixtures/epic13-prod-csp-smoke.html';
31
+ const PROD_CSP_RESULT_KEY = '__xtendEpic13ProdCspSmokeResult';
32
+ const PROD_CSP_NONCE = 'xtend-e13-prod-csp-smoke';
33
+ const PROD_CSP_MANIFEST = '/tests/browser/fixtures/components/manifest.json';
34
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
35
+
36
+ const REQUIRED_SOURCE_GATES = Object.freeze([
37
+ 'npm run test:browser',
38
+ 'npm run test:manifest-policy',
39
+ 'npm run dev:local',
40
+ 'npm run test:epic13-hydration-performance-closure'
41
+ ]);
42
+
43
+ const REQUIRED_PROD_SMOKE_ASSERTIONS = Object.freeze([
44
+ 'same-origin-loader',
45
+ 'same-origin-manifest',
46
+ 'nonce-script-execution',
47
+ 'loader-boot-promise',
48
+ 'manifest-import-policy',
49
+ 'local-server-csp-header',
50
+ 'no-cdn-or-importmap',
51
+ 'router-hydration-under-csp'
52
+ ]);
53
+
54
+ const REQUIRED_DOCS = Object.freeze([
55
+ EPIC13_PROD_BROWSER_CSP_SMOKE_STEERING,
56
+ EPIC13_PROD_BROWSER_CSP_SMOKE_CONTRACT,
57
+ EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE_DOC,
58
+ EPIC13_PROD_BROWSER_CSP_SMOKE_DOCS,
59
+ 'development/XTend-Epic13-Hydration-Performance-Closure-Contract.md',
60
+ 'development/XTend-Epic13-Conditional-Network-Evidence-Contract.md',
61
+ 'development/XTend-Epic13-Package-Export-Lock-Contract.md',
62
+ 'development/ADR-XTend-Loader-und-Lokale-Entwicklung.md',
63
+ 'development/ADR-XTend-Security-Trust-Boundaries.md',
64
+ 'docs/xtend-loader.md',
65
+ 'docs/manifest-import-policy.md',
66
+ 'docs/hydration-performance-closure.md',
67
+ 'docs/enterprise-adoption.md'
68
+ ]);
69
+
70
+ function clone(value) {
71
+ return JSON.parse(JSON.stringify(value));
72
+ }
73
+
74
+ function createEpic13ProdBrowserCspSmokePlan(options = {}) {
75
+ const sourcePlan = options.sourcePlan || createEpic13HydrationPerformanceClosurePlan(options);
76
+ const sourceValidation = options.sourceValidation || validateEpic13HydrationPerformanceClosurePlan(sourcePlan);
77
+ const sourceReport = options.sourceReport || createEpic13HydrationPerformanceClosureReport({ ...options, plan: sourcePlan });
78
+
79
+ return {
80
+ schema: EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA,
81
+ fixtureSchema: EPIC13_PROD_BROWSER_CSP_SMOKE_FIXTURE_SCHEMA,
82
+ reportSchema: EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
83
+ workpackage: EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE,
84
+ status: EPIC13_PROD_BROWSER_CSP_SMOKE_STATUS,
85
+ generatedAt: options.generatedAt || 'static-local',
86
+ module: EPIC13_PROD_BROWSER_CSP_SMOKE_MODULE,
87
+ suite: EPIC13_PROD_BROWSER_CSP_SMOKE_SUITE,
88
+ steeringDocument: EPIC13_PROD_BROWSER_CSP_SMOKE_STEERING,
89
+ contract: EPIC13_PROD_BROWSER_CSP_SMOKE_CONTRACT,
90
+ workpackageDocument: EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE_DOC,
91
+ docs: EPIC13_PROD_BROWSER_CSP_SMOKE_DOCS,
92
+ localGate: EPIC13_PROD_BROWSER_CSP_SMOKE_LOCAL_GATE,
93
+ packageScript: EPIC13_PROD_BROWSER_CSP_SMOKE_PACKAGE_SCRIPT,
94
+ sourceSchema: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA,
95
+ sourceReportSchema: EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
96
+ sourceStatus: sourcePlan.status,
97
+ sourceValidationOk: sourceValidation.ok,
98
+ sourceReportOk: sourceReport.ok,
99
+ releaseCandidate: 'RC1',
100
+ targetReadiness: EPIC13_PROD_BROWSER_CSP_SMOKE_TARGET,
101
+ fixture: PROD_CSP_FIXTURE,
102
+ resultKey: PROD_CSP_RESULT_KEY,
103
+ nonce: PROD_CSP_NONCE,
104
+ manifestUrl: PROD_CSP_MANIFEST,
105
+ loaderUrl: '/xtend-loader.js',
106
+ localServerContract: SERVER_CONTRACT,
107
+ cspPolicy: PROD_LIKE_CSP_POLICY,
108
+ requiredAssertions: REQUIRED_PROD_SMOKE_ASSERTIONS.slice(),
109
+ sourceGates: REQUIRED_SOURCE_GATES.slice(),
110
+ requiredDocs: REQUIRED_DOCS.slice(),
111
+ localGateMode: 'static-fixture-plus-local-server-header-probe',
112
+ externalBrowserRequiredInLocalGate: false,
113
+ externalNetworkAllowedInLocalGate: false,
114
+ browserExecutionMode: 'optional-driver-or-owner-artifact',
115
+ cspHeaderPrepared: true,
116
+ cspMetaPrepared: true,
117
+ sameOriginOnly: true,
118
+ cdnAllowed: false,
119
+ importMapAllowed: false,
120
+ nextDecision: 'rc1-gate-matrix-ci-handoff',
121
+ nextWorkpackage: 'WP-E13-13',
122
+ kernelBoundary: KERNEL_BOUNDARY,
123
+ publishBoundary: PUBLISH_BOUNDARY,
124
+ publishAllowed: false,
125
+ packagePrivateRequired: true
126
+ };
127
+ }
128
+
129
+ function validateEpic13ProdBrowserCspSmokePlan(plan = createEpic13ProdBrowserCspSmokePlan()) {
130
+ const errors = [];
131
+
132
+ if (!plan || plan.schema !== EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA) errors.push(`schema must be ${EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA}`);
133
+ if (!plan || plan.fixtureSchema !== EPIC13_PROD_BROWSER_CSP_SMOKE_FIXTURE_SCHEMA) errors.push(`fixtureSchema must be ${EPIC13_PROD_BROWSER_CSP_SMOKE_FIXTURE_SCHEMA}`);
134
+ if (!plan || plan.reportSchema !== EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA}`);
135
+ if (!plan || plan.workpackage !== EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE}`);
136
+ if (!plan || plan.status !== EPIC13_PROD_BROWSER_CSP_SMOKE_STATUS) errors.push(`status must be ${EPIC13_PROD_BROWSER_CSP_SMOKE_STATUS}`);
137
+ if (!plan || plan.sourceSchema !== EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA) errors.push('source schema must be hydration performance closure');
138
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('hydration performance closure source must validate');
139
+ if (!plan || plan.targetReadiness !== EPIC13_PROD_BROWSER_CSP_SMOKE_TARGET) errors.push(`targetReadiness must be ${EPIC13_PROD_BROWSER_CSP_SMOKE_TARGET}`);
140
+ if (!plan || plan.fixture !== PROD_CSP_FIXTURE) errors.push(`fixture must be ${PROD_CSP_FIXTURE}`);
141
+ if (!plan || plan.resultKey !== PROD_CSP_RESULT_KEY) errors.push(`resultKey must be ${PROD_CSP_RESULT_KEY}`);
142
+ if (!plan || plan.nonce !== PROD_CSP_NONCE) errors.push(`nonce must be ${PROD_CSP_NONCE}`);
143
+ if (!plan || plan.manifestUrl !== PROD_CSP_MANIFEST) errors.push(`manifestUrl must be ${PROD_CSP_MANIFEST}`);
144
+ if (!plan || plan.loaderUrl !== '/xtend-loader.js') errors.push('loaderUrl must be root-local xtend-loader.js');
145
+ if (!plan || plan.localServerContract !== SERVER_CONTRACT) errors.push(`local server contract must be ${SERVER_CONTRACT}`);
146
+ if (!plan || !plan.cspPolicy.includes("script-src 'self' 'nonce-xtend-e13-prod-csp-smoke'")) errors.push('CSP policy must require same-origin scripts plus nonce');
147
+ if (!plan || !plan.cspPolicy.includes("object-src 'none'")) errors.push('CSP policy must block object-src');
148
+ REQUIRED_PROD_SMOKE_ASSERTIONS.forEach((assertion) => {
149
+ if (!plan || !plan.requiredAssertions.includes(assertion)) errors.push(`required assertion missing: ${assertion}`);
150
+ });
151
+ REQUIRED_SOURCE_GATES.forEach((gate) => {
152
+ if (!plan || !plan.sourceGates.includes(gate)) errors.push(`source gate missing: ${gate}`);
153
+ });
154
+ if (!plan || plan.localGateMode !== 'static-fixture-plus-local-server-header-probe') errors.push('local gate mode must stay static plus local server header probe');
155
+ if (!plan || plan.externalBrowserRequiredInLocalGate !== false) errors.push('local gate must not require an external browser');
156
+ if (!plan || plan.externalNetworkAllowedInLocalGate !== false) errors.push('local gate must not require external network');
157
+ if (!plan || plan.cspHeaderPrepared !== true || plan.cspMetaPrepared !== true) errors.push('CSP header and meta policy must be prepared');
158
+ if (!plan || plan.sameOriginOnly !== true || plan.cdnAllowed !== false || plan.importMapAllowed !== false) errors.push('PROD smoke must remain same-origin only without CDN/importmap');
159
+ if (!plan || plan.nextDecision !== 'rc1-gate-matrix-ci-handoff') errors.push('next decision must be RC1 Gate Matrix und CI-Handoff');
160
+ if (!plan || plan.nextWorkpackage !== 'WP-E13-13') errors.push('next workpackage must be WP-E13-13');
161
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
162
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
163
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
164
+
165
+ return {
166
+ schema: EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
167
+ ok: errors.length === 0,
168
+ errors
169
+ };
170
+ }
171
+
172
+ function createEpic13ProdBrowserCspSmokeReport(options = {}) {
173
+ const plan = options.plan || createEpic13ProdBrowserCspSmokePlan(options);
174
+ const validation = validateEpic13ProdBrowserCspSmokePlan(plan);
175
+
176
+ return {
177
+ schema: EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
178
+ ok: validation.ok,
179
+ errors: validation.errors,
180
+ plan,
181
+ assertionCount: plan.requiredAssertions.length,
182
+ fixture: plan.fixture,
183
+ localServerContract: plan.localServerContract,
184
+ cspHeaderPrepared: plan.cspHeaderPrepared,
185
+ cspMetaPrepared: plan.cspMetaPrepared,
186
+ sameOriginOnly: plan.sameOriginOnly,
187
+ publishAllowed: plan.publishAllowed,
188
+ nextWorkpackage: plan.nextWorkpackage
189
+ };
190
+ }
191
+
192
+ module.exports = {
193
+ EPIC13_PROD_BROWSER_CSP_SMOKE_CONTRACT,
194
+ EPIC13_PROD_BROWSER_CSP_SMOKE_DOCS,
195
+ EPIC13_PROD_BROWSER_CSP_SMOKE_FIXTURE_SCHEMA,
196
+ EPIC13_PROD_BROWSER_CSP_SMOKE_LOCAL_GATE,
197
+ EPIC13_PROD_BROWSER_CSP_SMOKE_MODULE,
198
+ EPIC13_PROD_BROWSER_CSP_SMOKE_PACKAGE_SCRIPT,
199
+ EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
200
+ EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA,
201
+ EPIC13_PROD_BROWSER_CSP_SMOKE_STATUS,
202
+ EPIC13_PROD_BROWSER_CSP_SMOKE_STEERING,
203
+ EPIC13_PROD_BROWSER_CSP_SMOKE_SUITE,
204
+ EPIC13_PROD_BROWSER_CSP_SMOKE_TARGET,
205
+ EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE,
206
+ EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE_DOC,
207
+ PROD_CSP_FIXTURE,
208
+ PROD_CSP_MANIFEST,
209
+ PROD_CSP_NONCE,
210
+ PROD_CSP_RESULT_KEY,
211
+ PUBLISH_BOUNDARY,
212
+ REQUIRED_DOCS,
213
+ REQUIRED_PROD_SMOKE_ASSERTIONS,
214
+ REQUIRED_SOURCE_GATES,
215
+ createEpic13ProdBrowserCspSmokePlan,
216
+ createEpic13ProdBrowserCspSmokeReport,
217
+ validateEpic13ProdBrowserCspSmokePlan
218
+ };
@@ -0,0 +1,36 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogOptions,
4
+ XtendCatalogPlan,
5
+ XtendCatalogRecord,
6
+ XtendCatalogReport
7
+ } from './catalog-public-types';
8
+
9
+
10
+ export declare const CI_LANES: readonly XtendCatalogRecord[] | XtendCatalogRecord;
11
+ export declare const DPF_WORKPACKAGE: string;
12
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_CONTRACT: string;
13
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
14
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_LOCAL_GATE: string;
15
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_MODULE: string;
16
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_EXPORT: string;
17
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_SCRIPT: string;
18
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_ARTIFACT: string;
19
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA: string;
20
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SCHEMA: string;
21
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STATUS: string;
22
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STEERING: XtendCatalogConstant;
23
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SUITE: string;
24
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_TARGET: string;
25
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE: string;
26
+ export declare const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE_DOC: XtendCatalogConstant;
27
+ export declare const NEXT_DECISION: XtendCatalogConstant;
28
+ export declare const NEXT_WORKPACKAGE: string;
29
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
30
+ export declare const REQUIRED_REFERENCE_PATHS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
31
+ export declare const REQUIRED_REPORT_ARTIFACTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
32
+ export declare const REQUIRED_SOURCE_GATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
33
+ export declare const SOURCE_GATE_DEFINITIONS: readonly XtendCatalogRecord[] | XtendCatalogRecord;
34
+ export declare function createEpic13Rc1GateMatrixCiHandoffPlan(options?: XtendCatalogOptions): XtendCatalogPlan;
35
+ export declare function createEpic13Rc1GateMatrixCiHandoffReport(options?: XtendCatalogOptions): XtendCatalogReport;
36
+ export declare function validateEpic13Rc1GateMatrixCiHandoffPlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,418 @@
1
+ const {
2
+ KERNEL_BOUNDARY
3
+ } = require('./epic12-rc0-gate-matrix');
4
+ const rc1Readiness = require('./epic13-rc1-readiness');
5
+ const releaseOwner = require('./epic13-release-owner-acceptance');
6
+ const conditionalNetwork = require('./epic13-conditional-network-evidence');
7
+ const packageExportLock = require('./epic13-package-export-lock');
8
+ const knownResidual = require('./epic13-known-residual-triage');
9
+ const hydrationClosure = require('./epic13-hydration-performance-closure');
10
+ const prodBrowserCsp = require('./epic13-prod-browser-csp-smoke');
11
+ const visualOwner = require('./epic13-visual-owner-artifact');
12
+ const rmtProduction = require('./epic13-rmt-production-readiness');
13
+ const docsRmtHardening = require('./epic13-docs-rmt-production-hardening');
14
+ const trustedDom = require('./epic13-trusted-dom-boundary');
15
+ const rc1MigrationNotes = require('./epic13-rc1-migration-notes');
16
+
17
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SCHEMA = 'xtend.epic13.rc1-gate-matrix-ci-handoff.v1';
18
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA = 'xtend.epic13.rc1-gate-matrix-ci-handoff-report.v1';
19
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE = 'WP-E13-13';
20
+ const DPF_WORKPACKAGE = 'DPF-WP-01-rc1-gate-matrix-ci-handoff';
21
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STATUS = 'accepted-rc1-gate-matrix-ci-handoff';
22
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_TARGET = 'rc1-ci-handoff-ready';
23
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_MODULE = 'catalog/epic13-rc1-gate-matrix-ci-handoff.js';
24
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SUITE = 'tests/platform/epic13_rc1_gate_matrix_ci_handoff_suite.js';
25
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
26
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_CONTRACT = 'development/XTend-Epic13-RC1-Gate-Matrix-und-CI-Handoff.md';
27
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE_DOC = 'development/WP-E13-13-RC1-Gate-Matrix-und-CI-Handoff-erstellen.md';
28
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_DOCS = 'docs/rc1-gate-matrix-ci-handoff.md';
29
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-rc1-gate-matrix-ci-handoff --json';
30
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_SCRIPT = 'npm run test:epic13-rc1-gate-matrix-ci-handoff';
31
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_ARTIFACT = '.xtend-test-results/xtend-epic13-rc1-gate-matrix-ci-handoff-report.json';
32
+ const EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_EXPORT = './catalog/epic13-rc1-gate-matrix-ci-handoff';
33
+ const NEXT_DECISION = 'epic13-final-rc1-handoff';
34
+ const NEXT_WORKPACKAGE = 'WP-E13-14';
35
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
36
+
37
+ const SOURCE_GATE_DEFINITIONS = Object.freeze([
38
+ {
39
+ id: 'epic13-rc1-readiness',
40
+ label: 'RC1 Readiness',
41
+ workpackage: rc1Readiness.EPIC13_RC1_READINESS_WORKPACKAGE,
42
+ schema: rc1Readiness.EPIC13_RC1_READINESS_SCHEMA,
43
+ reportSchema: rc1Readiness.EPIC13_RC1_READINESS_REPORT_SCHEMA,
44
+ packageScript: rc1Readiness.EPIC13_RC1_READINESS_PACKAGE_SCRIPT,
45
+ create: rc1Readiness.createEpic13Rc1ReadinessModel,
46
+ validate: rc1Readiness.validateEpic13Rc1ReadinessModel,
47
+ report: rc1Readiness.createEpic13Rc1ReadinessReport
48
+ },
49
+ {
50
+ id: 'epic13-release-owner-acceptance',
51
+ label: 'Release Owner Acceptance',
52
+ workpackage: releaseOwner.EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE,
53
+ schema: releaseOwner.EPIC13_RELEASE_OWNER_ACCEPTANCE_SCHEMA,
54
+ reportSchema: releaseOwner.EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA,
55
+ packageScript: releaseOwner.EPIC13_RELEASE_OWNER_ACCEPTANCE_PACKAGE_SCRIPT,
56
+ create: releaseOwner.createEpic13ReleaseOwnerAcceptanceContract,
57
+ validate: releaseOwner.validateEpic13ReleaseOwnerAcceptanceContract,
58
+ report: releaseOwner.createEpic13ReleaseOwnerAcceptanceReport
59
+ },
60
+ {
61
+ id: 'epic13-conditional-network-evidence',
62
+ label: 'Conditional Network Evidence',
63
+ workpackage: conditionalNetwork.EPIC13_CONDITIONAL_NETWORK_EVIDENCE_WORKPACKAGE,
64
+ schema: conditionalNetwork.EPIC13_CONDITIONAL_NETWORK_EVIDENCE_SCHEMA,
65
+ reportSchema: conditionalNetwork.EPIC13_CONDITIONAL_NETWORK_EVIDENCE_REPORT_SCHEMA,
66
+ packageScript: conditionalNetwork.EPIC13_CONDITIONAL_NETWORK_EVIDENCE_PACKAGE_SCRIPT,
67
+ create: conditionalNetwork.createEpic13ConditionalNetworkEvidencePlan,
68
+ validate: conditionalNetwork.validateEpic13ConditionalNetworkEvidencePlan,
69
+ report: conditionalNetwork.createEpic13ConditionalNetworkEvidenceReport
70
+ },
71
+ {
72
+ id: 'epic13-package-export-lock',
73
+ label: 'Package Export Lock',
74
+ workpackage: packageExportLock.EPIC13_PACKAGE_EXPORT_LOCK_WORKPACKAGE,
75
+ schema: packageExportLock.EPIC13_PACKAGE_EXPORT_LOCK_SCHEMA,
76
+ reportSchema: packageExportLock.EPIC13_PACKAGE_EXPORT_LOCK_REPORT_SCHEMA,
77
+ packageScript: packageExportLock.EPIC13_PACKAGE_EXPORT_LOCK_PACKAGE_SCRIPT,
78
+ create: packageExportLock.createEpic13PackageExportLockPlan,
79
+ validate: packageExportLock.validateEpic13PackageExportLockPlan,
80
+ report: packageExportLock.createEpic13PackageExportLockReport
81
+ },
82
+ {
83
+ id: 'epic13-known-residual-triage',
84
+ label: 'Known Residual Triage',
85
+ workpackage: knownResidual.EPIC13_KNOWN_RESIDUAL_TRIAGE_WORKPACKAGE,
86
+ schema: knownResidual.EPIC13_KNOWN_RESIDUAL_TRIAGE_SCHEMA,
87
+ reportSchema: knownResidual.EPIC13_KNOWN_RESIDUAL_TRIAGE_REPORT_SCHEMA,
88
+ packageScript: knownResidual.EPIC13_KNOWN_RESIDUAL_TRIAGE_PACKAGE_SCRIPT,
89
+ create: knownResidual.createEpic13KnownResidualTriagePlan,
90
+ validate: knownResidual.validateEpic13KnownResidualTriagePlan,
91
+ report: knownResidual.createEpic13KnownResidualTriageReport
92
+ },
93
+ {
94
+ id: 'epic13-hydration-performance-closure',
95
+ label: 'Hydration Performance Closure',
96
+ workpackage: hydrationClosure.EPIC13_HYDRATION_PERFORMANCE_CLOSURE_WORKPACKAGE,
97
+ schema: hydrationClosure.EPIC13_HYDRATION_PERFORMANCE_CLOSURE_SCHEMA,
98
+ reportSchema: hydrationClosure.EPIC13_HYDRATION_PERFORMANCE_CLOSURE_REPORT_SCHEMA,
99
+ packageScript: hydrationClosure.EPIC13_HYDRATION_PERFORMANCE_CLOSURE_PACKAGE_SCRIPT,
100
+ create: hydrationClosure.createEpic13HydrationPerformanceClosurePlan,
101
+ validate: hydrationClosure.validateEpic13HydrationPerformanceClosurePlan,
102
+ report: hydrationClosure.createEpic13HydrationPerformanceClosureReport
103
+ },
104
+ {
105
+ id: 'epic13-prod-browser-csp-smoke',
106
+ label: 'PROD Browser CSP Smoke',
107
+ workpackage: prodBrowserCsp.EPIC13_PROD_BROWSER_CSP_SMOKE_WORKPACKAGE,
108
+ schema: prodBrowserCsp.EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA,
109
+ reportSchema: prodBrowserCsp.EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
110
+ packageScript: prodBrowserCsp.EPIC13_PROD_BROWSER_CSP_SMOKE_PACKAGE_SCRIPT,
111
+ create: prodBrowserCsp.createEpic13ProdBrowserCspSmokePlan,
112
+ validate: prodBrowserCsp.validateEpic13ProdBrowserCspSmokePlan,
113
+ report: prodBrowserCsp.createEpic13ProdBrowserCspSmokeReport
114
+ },
115
+ {
116
+ id: 'epic13-visual-owner-artifact',
117
+ label: 'Visual Owner Artifact',
118
+ workpackage: visualOwner.EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE,
119
+ schema: visualOwner.EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA,
120
+ reportSchema: visualOwner.EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
121
+ packageScript: visualOwner.EPIC13_VISUAL_OWNER_ARTIFACT_PACKAGE_SCRIPT,
122
+ create: visualOwner.createEpic13VisualOwnerArtifactPlan,
123
+ validate: visualOwner.validateEpic13VisualOwnerArtifactPlan,
124
+ report: visualOwner.createEpic13VisualOwnerArtifactReport
125
+ },
126
+ {
127
+ id: 'epic13-rmt-production-readiness',
128
+ label: 'RMT Production Readiness',
129
+ workpackage: rmtProduction.EPIC13_RMT_PRODUCTION_READINESS_WORKPACKAGE,
130
+ schema: rmtProduction.EPIC13_RMT_PRODUCTION_READINESS_SCHEMA,
131
+ reportSchema: rmtProduction.EPIC13_RMT_PRODUCTION_READINESS_REPORT_SCHEMA,
132
+ packageScript: rmtProduction.EPIC13_RMT_PRODUCTION_READINESS_PACKAGE_SCRIPT,
133
+ create: rmtProduction.createEpic13RmtProductionReadinessPlan,
134
+ validate: rmtProduction.validateEpic13RmtProductionReadinessPlan,
135
+ report: rmtProduction.createEpic13RmtProductionReadinessReport
136
+ },
137
+ {
138
+ id: 'epic13-docs-rmt-production-hardening',
139
+ label: 'Docs RMT Production Hardening',
140
+ workpackage: docsRmtHardening.EPIC13_DOCS_RMT_PRODUCTION_HARDENING_WORKPACKAGE,
141
+ schema: docsRmtHardening.EPIC13_DOCS_RMT_PRODUCTION_HARDENING_SCHEMA,
142
+ reportSchema: docsRmtHardening.EPIC13_DOCS_RMT_PRODUCTION_HARDENING_REPORT_SCHEMA,
143
+ packageScript: docsRmtHardening.EPIC13_DOCS_RMT_PRODUCTION_HARDENING_PACKAGE_SCRIPT,
144
+ create: docsRmtHardening.createEpic13DocsRmtProductionHardeningPlan,
145
+ validate: docsRmtHardening.validateEpic13DocsRmtProductionHardeningPlan,
146
+ report: docsRmtHardening.createEpic13DocsRmtProductionHardeningReport
147
+ },
148
+ {
149
+ id: 'epic13-trusted-dom-boundary',
150
+ label: 'Trusted DOM Boundary',
151
+ workpackage: trustedDom.EPIC13_TRUSTED_DOM_BOUNDARY_WORKPACKAGE,
152
+ schema: trustedDom.EPIC13_TRUSTED_DOM_BOUNDARY_SCHEMA,
153
+ reportSchema: trustedDom.EPIC13_TRUSTED_DOM_BOUNDARY_REPORT_SCHEMA,
154
+ packageScript: trustedDom.EPIC13_TRUSTED_DOM_BOUNDARY_PACKAGE_SCRIPT,
155
+ create: trustedDom.createEpic13TrustedDomBoundaryPlan,
156
+ validate: trustedDom.validateEpic13TrustedDomBoundaryPlan,
157
+ report: trustedDom.createEpic13TrustedDomBoundaryReport
158
+ },
159
+ {
160
+ id: 'epic13-rc1-migration-notes',
161
+ label: 'RC1 Migration Notes',
162
+ workpackage: rc1MigrationNotes.EPIC13_RC1_MIGRATION_NOTES_WORKPACKAGE,
163
+ schema: rc1MigrationNotes.EPIC13_RC1_MIGRATION_NOTES_SCHEMA,
164
+ reportSchema: rc1MigrationNotes.EPIC13_RC1_MIGRATION_NOTES_REPORT_SCHEMA,
165
+ packageScript: rc1MigrationNotes.EPIC13_RC1_MIGRATION_NOTES_PACKAGE_SCRIPT,
166
+ create: rc1MigrationNotes.createEpic13Rc1MigrationNotesPlan,
167
+ validate: rc1MigrationNotes.validateEpic13Rc1MigrationNotesPlan,
168
+ report: rc1MigrationNotes.createEpic13Rc1MigrationNotesReport
169
+ }
170
+ ]);
171
+
172
+ const REQUIRED_SOURCE_GATES = Object.freeze(SOURCE_GATE_DEFINITIONS.map((entry) => entry.packageScript));
173
+
174
+ const REQUIRED_REPORT_ARTIFACTS = Object.freeze([
175
+ '.xtend-test-results/xtend-pr-gate-report.json',
176
+ '.xtend-test-results/xtend-release-gate-report.json',
177
+ '.xtend-test-results/xtend-release-report.json',
178
+ '.xtend-test-results/xtend-conditional-network-evidence-report.json',
179
+ '.xtend-test-results/xtend-npm-audit-report.json',
180
+ '.xtend-test-results/xtend-npm-sbom.json',
181
+ '.xtend-test-results/xtend-pack-dry-run.json',
182
+ '.xtend-test-results/xtend-package-export-surface-lock.json',
183
+ '.xtend-test-results/xtend-package-export-lock-report.json',
184
+ '.xtend-test-results/xtend-type-exports-report.json',
185
+ '.xtend-test-results/xtend-known-residual-triage-report.json',
186
+ '.xtend-test-results/xtend-hydration-performance-closure-report.json',
187
+ '.xtend-test-results/visual-snapshots/rc1/visual-owner-artifact-report.json',
188
+ '.xtend-test-results/xtend-epic13-rmt-production-readiness-report.json',
189
+ '.xtend-test-results/xtend-epic13-docs-rmt-production-hardening-report.json',
190
+ '.xtend-test-results/xtend-epic13-trusted-dom-boundary-report.json',
191
+ '.xtend-test-results/xtend-epic13-rc1-migration-notes-report.json',
192
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_ARTIFACT
193
+ ]);
194
+
195
+ const REQUIRED_REFERENCE_PATHS = Object.freeze([
196
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_MODULE,
197
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SUITE,
198
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STEERING,
199
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_CONTRACT,
200
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE_DOC,
201
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_DOCS,
202
+ 'development/XTend-Dokumentations-und-Demo-Referenzpfade.md',
203
+ 'development/XTend-CI-Gate-Matrix.md',
204
+ 'development/XTend-Release-Checklist-und-SemVer-Policy.md',
205
+ 'docs/README.md',
206
+ 'docs/menu.json',
207
+ 'README.md',
208
+ 'CHANGELOG.md',
209
+ 'tests/README.md',
210
+ 'package.json',
211
+ 'xtend-builder/scaffold.config.js'
212
+ ]);
213
+
214
+ const CI_LANES = Object.freeze([
215
+ {
216
+ id: 'pr-fast',
217
+ trigger: 'pull-request',
218
+ reportArtifact: '.xtend-test-results/xtend-pr-gate-report.json',
219
+ requiredGates: ['npm run test:pr:report', 'npm run test:type-exports:release']
220
+ },
221
+ {
222
+ id: 'rc1-full-release',
223
+ trigger: 'release-candidate',
224
+ reportArtifact: '.xtend-test-results/xtend-release-gate-report.json',
225
+ requiredGates: ['npm run test:release:full:report', EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_SCRIPT]
226
+ },
227
+ {
228
+ id: 'conditional-network-evidence',
229
+ trigger: 'owner-approved-network',
230
+ reportArtifact: '.xtend-test-results/xtend-conditional-network-evidence-report.json',
231
+ requiredGates: ['npm audit --audit-level=moderate', 'npm sbom --sbom-format=cyclonedx --json']
232
+ },
233
+ {
234
+ id: 'owner-handoff',
235
+ trigger: 'release-owner-review',
236
+ reportArtifact: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_ARTIFACT,
237
+ requiredGates: REQUIRED_SOURCE_GATES
238
+ }
239
+ ]);
240
+
241
+ function clone(value) {
242
+ return JSON.parse(JSON.stringify(value));
243
+ }
244
+
245
+ function createSourceGate(definition, options) {
246
+ const plan = definition.create(options);
247
+ const validation = definition.validate(plan);
248
+ const report = definition.report(options);
249
+
250
+ return {
251
+ id: definition.id,
252
+ label: definition.label,
253
+ workpackage: definition.workpackage,
254
+ schema: definition.schema,
255
+ reportSchema: definition.reportSchema,
256
+ status: plan.status,
257
+ packageScript: definition.packageScript,
258
+ localGate: plan.localGate || `node scripts/run_xtend_tests.js ${definition.id} --json`,
259
+ validationOk: validation.ok === true,
260
+ reportOk: report.ok === true,
261
+ nextWorkpackage: plan.nextWorkpackage || null
262
+ };
263
+ }
264
+
265
+ function createEpic13Rc1GateMatrixCiHandoffPlan(options = {}) {
266
+ const sourceGates = SOURCE_GATE_DEFINITIONS.map((definition) => createSourceGate(definition, options));
267
+
268
+ return {
269
+ schema: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SCHEMA,
270
+ reportSchema: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA,
271
+ workpackage: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE,
272
+ dpfWorkpackage: DPF_WORKPACKAGE,
273
+ status: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STATUS,
274
+ generatedAt: options.generatedAt || 'static-local',
275
+ module: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_MODULE,
276
+ suite: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SUITE,
277
+ steeringDocument: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STEERING,
278
+ contract: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_CONTRACT,
279
+ workpackageDocument: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE_DOC,
280
+ docs: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_DOCS,
281
+ localGate: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_LOCAL_GATE,
282
+ packageScript: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_SCRIPT,
283
+ packageExport: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_EXPORT,
284
+ reportArtifact: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_ARTIFACT,
285
+ targetReadiness: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_TARGET,
286
+ sourceGates,
287
+ localGateMatrix: REQUIRED_SOURCE_GATES.map((command) => ({
288
+ command,
289
+ mode: 'local-static-or-fixture',
290
+ requiredForRc1: true
291
+ })),
292
+ ciLanes: clone(CI_LANES),
293
+ reportArtifacts: REQUIRED_REPORT_ARTIFACTS.slice(),
294
+ referencePaths: REQUIRED_REFERENCE_PATHS.slice(),
295
+ handoffContract: {
296
+ releaseOwnerVisible: true,
297
+ ciMaintainerVisible: true,
298
+ localGateRequiresNetwork: false,
299
+ conditionalNetworkMode: 'executed-or-owner-deferral',
300
+ packDryRunReportRequired: true,
301
+ typeExportsReleaseGateRequired: true,
302
+ reportSchema: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA,
303
+ packagePrivateRequired: true,
304
+ publishAllowed: false
305
+ },
306
+ docsMenuSlug: 'rc1-gate-matrix-ci-handoff',
307
+ frameworkAgnostic: true,
308
+ rmtKernelImportsXtendTypes: false,
309
+ kernelBoundary: KERNEL_BOUNDARY,
310
+ nextDecision: NEXT_DECISION,
311
+ nextWorkpackage: NEXT_WORKPACKAGE,
312
+ publishBoundary: PUBLISH_BOUNDARY,
313
+ publishAllowed: false,
314
+ packagePrivateRequired: true
315
+ };
316
+ }
317
+
318
+ function validateEpic13Rc1GateMatrixCiHandoffPlan(plan = createEpic13Rc1GateMatrixCiHandoffPlan()) {
319
+ const errors = [];
320
+ const sourceGates = plan && Array.isArray(plan.sourceGates) ? plan.sourceGates : [];
321
+ const localGateCommands = plan && Array.isArray(plan.localGateMatrix) ? plan.localGateMatrix.map((entry) => entry.command) : [];
322
+ const ciLaneIds = plan && Array.isArray(plan.ciLanes) ? plan.ciLanes.map((entry) => entry.id) : [];
323
+
324
+ if (!plan || plan.schema !== EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SCHEMA) errors.push(`schema must be ${EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SCHEMA}`);
325
+ if (!plan || plan.reportSchema !== EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA}`);
326
+ if (!plan || plan.workpackage !== EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE}`);
327
+ if (!plan || plan.dpfWorkpackage !== DPF_WORKPACKAGE) errors.push(`dpfWorkpackage must be ${DPF_WORKPACKAGE}`);
328
+ if (!plan || plan.status !== EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STATUS) errors.push(`status must be ${EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STATUS}`);
329
+ if (!plan || plan.targetReadiness !== EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_TARGET) errors.push(`targetReadiness must be ${EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_TARGET}`);
330
+ if (!plan || plan.packageExport !== EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_EXPORT) errors.push('package export must be registered');
331
+ if (!plan || !plan.handoffContract || plan.handoffContract.releaseOwnerVisible !== true || plan.handoffContract.ciMaintainerVisible !== true) errors.push('handoff contract must be visible to release owner and CI maintainers');
332
+ if (!plan || !plan.handoffContract || plan.handoffContract.localGateRequiresNetwork !== false) errors.push('local gate must stay network-free');
333
+ if (!plan || !plan.handoffContract || plan.handoffContract.conditionalNetworkMode !== 'executed-or-owner-deferral') errors.push('conditional network mode must require execution or owner deferral');
334
+ if (!plan || !plan.handoffContract || plan.handoffContract.packDryRunReportRequired !== true || plan.handoffContract.typeExportsReleaseGateRequired !== true) errors.push('handoff contract must require pack dry-run and TypeExports release evidence');
335
+
336
+ SOURCE_GATE_DEFINITIONS.forEach((definition) => {
337
+ const source = sourceGates.find((entry) => entry.id === definition.id);
338
+ if (!source) errors.push(`source gate missing: ${definition.id}`);
339
+ if (source && source.schema !== definition.schema) errors.push(`source gate schema mismatch: ${definition.id}`);
340
+ if (source && source.workpackage !== definition.workpackage) errors.push(`source gate workpackage mismatch: ${definition.id}`);
341
+ if (source && source.validationOk !== true) errors.push(`source gate validation failed: ${definition.id}`);
342
+ if (source && source.reportOk !== true) errors.push(`source gate report failed: ${definition.id}`);
343
+ });
344
+
345
+ REQUIRED_SOURCE_GATES.forEach((command) => {
346
+ if (!localGateCommands.includes(command)) errors.push(`local gate matrix missing: ${command}`);
347
+ });
348
+ REQUIRED_REPORT_ARTIFACTS.forEach((artifact) => {
349
+ if (!plan || !plan.reportArtifacts.includes(artifact)) errors.push(`report artifact missing: ${artifact}`);
350
+ });
351
+ REQUIRED_REFERENCE_PATHS.forEach((referencePath) => {
352
+ if (!plan || !plan.referencePaths.includes(referencePath)) errors.push(`reference path missing: ${referencePath}`);
353
+ });
354
+ ['pr-fast', 'rc1-full-release', 'conditional-network-evidence', 'owner-handoff'].forEach((lane) => {
355
+ if (!ciLaneIds.includes(lane)) errors.push(`CI lane missing: ${lane}`);
356
+ });
357
+ if (!plan || plan.docsMenuSlug !== 'rc1-gate-matrix-ci-handoff') errors.push('docs menu slug must be rc1-gate-matrix-ci-handoff');
358
+ if (!plan || plan.frameworkAgnostic !== true || plan.rmtKernelImportsXtendTypes !== false) errors.push('gate matrix must preserve RMT framework agnosticism');
359
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
360
+ if (!plan || plan.nextDecision !== NEXT_DECISION) errors.push(`next decision must be ${NEXT_DECISION}`);
361
+ if (!plan || plan.nextWorkpackage !== NEXT_WORKPACKAGE) errors.push(`next workpackage must be ${NEXT_WORKPACKAGE}`);
362
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
363
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
364
+
365
+ return {
366
+ schema: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA,
367
+ ok: errors.length === 0,
368
+ errors
369
+ };
370
+ }
371
+
372
+ function createEpic13Rc1GateMatrixCiHandoffReport(options = {}) {
373
+ const plan = options.plan || createEpic13Rc1GateMatrixCiHandoffPlan(options);
374
+ const validation = validateEpic13Rc1GateMatrixCiHandoffPlan(plan);
375
+
376
+ return {
377
+ schema: EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA,
378
+ ok: validation.ok,
379
+ errors: validation.errors,
380
+ plan,
381
+ sourceGateCount: plan.sourceGates.length,
382
+ localGateCount: plan.localGateMatrix.length,
383
+ reportArtifactCount: plan.reportArtifacts.length,
384
+ ciLaneCount: plan.ciLanes.length,
385
+ publishAllowed: plan.publishAllowed,
386
+ nextWorkpackage: plan.nextWorkpackage
387
+ };
388
+ }
389
+
390
+ module.exports = {
391
+ CI_LANES,
392
+ DPF_WORKPACKAGE,
393
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_CONTRACT,
394
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_DOCS,
395
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_LOCAL_GATE,
396
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_MODULE,
397
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_EXPORT,
398
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_PACKAGE_SCRIPT,
399
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_ARTIFACT,
400
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_REPORT_SCHEMA,
401
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SCHEMA,
402
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STATUS,
403
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_STEERING,
404
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_SUITE,
405
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_TARGET,
406
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE,
407
+ EPIC13_RC1_GATE_MATRIX_CI_HANDOFF_WORKPACKAGE_DOC,
408
+ NEXT_DECISION,
409
+ NEXT_WORKPACKAGE,
410
+ PUBLISH_BOUNDARY,
411
+ REQUIRED_REFERENCE_PATHS,
412
+ REQUIRED_REPORT_ARTIFACTS,
413
+ REQUIRED_SOURCE_GATES,
414
+ SOURCE_GATE_DEFINITIONS,
415
+ createEpic13Rc1GateMatrixCiHandoffPlan,
416
+ createEpic13Rc1GateMatrixCiHandoffReport,
417
+ validateEpic13Rc1GateMatrixCiHandoffPlan
418
+ };