@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,354 @@
1
+ const {
2
+ KERNEL_BOUNDARY,
3
+ createEpic12Rc0HandoffReport
4
+ } = require('./epic12-rc0-handoff');
5
+ const {
6
+ EPIC13_RC1_READINESS_REPORT_SCHEMA,
7
+ EPIC13_RC1_READINESS_SCHEMA,
8
+ createEpic13Rc1ReadinessModel,
9
+ createEpic13Rc1ReadinessReport,
10
+ validateEpic13Rc1ReadinessModel
11
+ } = require('./epic13-rc1-readiness');
12
+
13
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_SCHEMA = 'xtend.epic13.release-owner-acceptance.v1';
14
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA = 'xtend.epic13.release-owner-acceptance-report.v1';
15
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE = 'WP-E13-02';
16
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_STATUS = 'accepted-release-owner-acceptance-contract';
17
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_TARGET = 'release-owner-acceptance-contract-ready';
18
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_MODULE = 'catalog/epic13-release-owner-acceptance.js';
19
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_SUITE = 'tests/platform/epic13_release_owner_acceptance_suite.js';
20
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
21
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_CONTRACT = 'development/XTend-Epic13-Release-Owner-Acceptance-Contract.md';
22
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE_DOC = 'development/WP-E13-02-Release-Owner-Acceptance-Contract-definieren.md';
23
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_DOCS = 'docs/release-owner-acceptance.md';
24
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-release-owner-acceptance --json';
25
+ const EPIC13_RELEASE_OWNER_ACCEPTANCE_PACKAGE_SCRIPT = 'npm run test:epic13-release-owner-acceptance';
26
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
27
+
28
+ const OWNER_DECISION_STATES = Object.freeze([
29
+ 'accepted',
30
+ 'deferred',
31
+ 'blocked'
32
+ ]);
33
+
34
+ const REQUIRED_OWNER_INPUTS = Object.freeze([
35
+ 'xtend-release-gate-report',
36
+ 'xtend-release-report',
37
+ 'xtend-rc0-gate-matrix-report',
38
+ 'xtend-epic12-rc0-handoff-report',
39
+ 'xtend-epic13-rc1-readiness-report',
40
+ 'package-dry-run-output',
41
+ 'conditional-network-gate-status',
42
+ 'known-residual-policy',
43
+ 'migration-notes',
44
+ 'publish-boundary-decision'
45
+ ]);
46
+
47
+ const REQUIRED_LOCAL_GATES = Object.freeze([
48
+ 'epic12-rc0-handoff',
49
+ 'epic13-rc1-readiness',
50
+ 'release:report',
51
+ 'references'
52
+ ]);
53
+
54
+ const REQUIRED_SOURCE_SCHEMAS = Object.freeze([
55
+ 'xtend.epic12.rc0-handoff.v1',
56
+ EPIC13_RC1_READINESS_SCHEMA,
57
+ EPIC13_RC1_READINESS_REPORT_SCHEMA,
58
+ 'xtend.release.checklist-semver-policy.v1',
59
+ 'xtend.ci.gate-matrix.v1'
60
+ ]);
61
+
62
+ const REQUIRED_DOCS = Object.freeze([
63
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_STEERING,
64
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_CONTRACT,
65
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE_DOC,
66
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_DOCS,
67
+ 'development/XTend-Epic13-RC1-Readiness-Modell.md',
68
+ 'development/XTend-Epic12-Abschluss-und-RC0-Handoff.md',
69
+ 'development/XTend-Release-Checklist-und-SemVer-Policy.md',
70
+ 'development/XTend-CI-Gate-Matrix.md',
71
+ 'docs/rc1-readiness.md',
72
+ 'docs/enterprise-adoption.md'
73
+ ]);
74
+
75
+ const OWNER_REVIEW_CHECKLIST = Object.freeze([
76
+ {
77
+ id: 'rc1-readiness-model',
78
+ status: 'accepted',
79
+ artifact: 'xtend.epic13.rc1-production-readiness.v1',
80
+ ownerQuestion: 'Ist der RC0-zu-RC1-Schnitt formal nachvollziehbar?',
81
+ evidence: 'catalog/epic13-rc1-readiness.js'
82
+ },
83
+ {
84
+ id: 'rc0-owner-handoff',
85
+ status: 'accepted',
86
+ artifact: 'xtend.epic12.rc0-handoff.v1',
87
+ ownerQuestion: 'Ist RC0 als Review-Basis akzeptiert?',
88
+ evidence: 'development/XTend-Epic12-Abschluss-und-RC0-Handoff.md'
89
+ },
90
+ {
91
+ id: 'release-report-required',
92
+ status: 'accepted',
93
+ artifact: 'npm run release:report',
94
+ ownerQuestion: 'Bleibt der lokale Release Report ein Pflichtartefakt?',
95
+ evidence: '.xtend-test-results/xtend-release-report.json'
96
+ },
97
+ {
98
+ id: 'package-private-boundary',
99
+ status: 'accepted',
100
+ artifact: PUBLISH_BOUNDARY,
101
+ ownerQuestion: 'Bleibt `private: true` bis zur Owner-Freigabe aktiv?',
102
+ evidence: 'package.json'
103
+ },
104
+ {
105
+ id: 'rmt-kernel-neutrality',
106
+ status: 'accepted',
107
+ artifact: KERNEL_BOUNDARY,
108
+ ownerQuestion: 'Bleibt XTendRMT framework-agnostisch?',
109
+ evidence: 'xtendrmt/rmt-core.esm.js'
110
+ },
111
+ {
112
+ id: 'conditional-network-evidence',
113
+ status: 'accepted',
114
+ targetWorkpackages: [],
115
+ ownerQuestion: 'Wurden Audit und SBOM ausgefuehrt oder begruendet deferred?',
116
+ evidence: 'xtend.epic13.conditional-network-evidence.v1'
117
+ },
118
+ {
119
+ id: 'package-dry-run-export-lock',
120
+ status: 'accepted',
121
+ targetWorkpackages: [],
122
+ ownerQuestion: 'Ist der Paketinhalt maschinenlesbar gelockt?',
123
+ evidence: 'xtend.epic13.package-export-lock.v1'
124
+ },
125
+ {
126
+ id: 'known-residual-renewal',
127
+ status: 'accepted',
128
+ targetWorkpackages: [],
129
+ ownerQuestion: 'Sind RC0-Residuals fuer RC1 geschlossen oder neu akzeptiert?',
130
+ evidence: 'xtend.epic13.known-residual-triage.v1, xtend.epic13.hydration-performance-closure.v1'
131
+ },
132
+ {
133
+ id: 'prod-browser-csp-smoke',
134
+ status: 'accepted',
135
+ targetWorkpackages: [],
136
+ ownerQuestion: 'Sind PROD-nahe Browser-, Server- und Trusted-DOM-Pfade geprueft?',
137
+ evidence: 'npm run test:browser, npm run test:manifest-policy'
138
+ },
139
+ {
140
+ id: 'trusted-dom-boundary',
141
+ status: 'accepted',
142
+ targetWorkpackages: [],
143
+ ownerQuestion: 'Ist die Trusted-DOM-Boundary fuer Parsedown und RMT HTML browsernah belegt?',
144
+ evidence: 'xtend.epic13.trusted-dom-boundary.v1'
145
+ },
146
+ {
147
+ id: 'visual-owner-artifact',
148
+ status: 'accepted',
149
+ targetWorkpackages: [],
150
+ ownerQuestion: 'Gibt es ein fuer Owner reviewbares UI-Artefakt?',
151
+ evidence: 'xtend.epic13.visual-owner-artifact.v1'
152
+ },
153
+ {
154
+ id: 'rmt-production-readiness',
155
+ status: 'accepted',
156
+ targetWorkpackages: [],
157
+ ownerQuestion: 'Ist die RMT-first App Shell als PROD-Pfad gebuendelt?',
158
+ evidence: 'xtend.epic13.rmt-production-readiness.v1'
159
+ },
160
+ {
161
+ id: 'docs-rmt-production-hardening',
162
+ status: 'accepted',
163
+ targetWorkpackages: [],
164
+ ownerQuestion: 'Ist die Docs-App RMT Parsedown Shell fuer PROD-nahe Erweiterungen gehaertet?',
165
+ evidence: 'xtend.epic13.docs-rmt-production-hardening.v1'
166
+ },
167
+ {
168
+ id: 'rc1-migration-notes',
169
+ status: 'accepted',
170
+ targetWorkpackages: [],
171
+ ownerQuestion: 'Sind Migration Notes und SemVer-Entscheid konsumierbar?',
172
+ evidence: 'xtend.epic13.rc1-migration-notes-semver.v1'
173
+ },
174
+ {
175
+ id: 'rc1-gate-matrix',
176
+ status: 'deferred',
177
+ targetWorkpackages: ['WP-E13-13'],
178
+ ownerQuestion: 'Sind alle RC1-Gates in einer finalen Matrix verbunden?',
179
+ evidence: 'development/XTend-CI-Gate-Matrix.md'
180
+ },
181
+ {
182
+ id: 'automatic-publish-approval',
183
+ status: 'blocked',
184
+ targetWorkpackages: ['WP-E13-14'],
185
+ ownerQuestion: 'Darf ein gruener Gate automatisch publishen?',
186
+ evidence: 'package.json private=true'
187
+ }
188
+ ]).map((entry) => ({
189
+ targetWorkpackages: [],
190
+ ...entry
191
+ }));
192
+
193
+ function summarizeChecklist(checklist) {
194
+ return checklist.reduce((summary, item) => {
195
+ summary[item.status] = (summary[item.status] || 0) + 1;
196
+ summary.total += 1;
197
+ summary.byStatus[item.status].push(item.id);
198
+ return summary;
199
+ }, {
200
+ total: 0,
201
+ accepted: 0,
202
+ deferred: 0,
203
+ blocked: 0,
204
+ byStatus: {
205
+ accepted: [],
206
+ deferred: [],
207
+ blocked: []
208
+ }
209
+ });
210
+ }
211
+
212
+ function createEpic13ReleaseOwnerAcceptanceContract(options = {}) {
213
+ const rc1ReadinessModel = options.rc1ReadinessModel || createEpic13Rc1ReadinessModel(options);
214
+ const rc1ReadinessValidation = options.rc1ReadinessValidation || validateEpic13Rc1ReadinessModel(rc1ReadinessModel);
215
+ const rc1ReadinessReport = options.rc1ReadinessReport || createEpic13Rc1ReadinessReport({ ...options, model: rc1ReadinessModel });
216
+ const rc0HandoffReport = options.rc0HandoffReport || createEpic12Rc0HandoffReport(options);
217
+ const reviewChecklist = OWNER_REVIEW_CHECKLIST.map((entry) => ({
218
+ ...entry,
219
+ targetWorkpackages: entry.targetWorkpackages.slice()
220
+ }));
221
+ const decisionSummary = summarizeChecklist(reviewChecklist);
222
+
223
+ return {
224
+ schema: EPIC13_RELEASE_OWNER_ACCEPTANCE_SCHEMA,
225
+ reportSchema: EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA,
226
+ workpackage: EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE,
227
+ status: EPIC13_RELEASE_OWNER_ACCEPTANCE_STATUS,
228
+ generatedAt: options.generatedAt || 'static-local',
229
+ module: EPIC13_RELEASE_OWNER_ACCEPTANCE_MODULE,
230
+ suite: EPIC13_RELEASE_OWNER_ACCEPTANCE_SUITE,
231
+ steeringDocument: EPIC13_RELEASE_OWNER_ACCEPTANCE_STEERING,
232
+ contract: EPIC13_RELEASE_OWNER_ACCEPTANCE_CONTRACT,
233
+ workpackageDocument: EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE_DOC,
234
+ docs: EPIC13_RELEASE_OWNER_ACCEPTANCE_DOCS,
235
+ localGate: EPIC13_RELEASE_OWNER_ACCEPTANCE_LOCAL_GATE,
236
+ packageScript: EPIC13_RELEASE_OWNER_ACCEPTANCE_PACKAGE_SCRIPT,
237
+ sourceSchema: EPIC13_RC1_READINESS_SCHEMA,
238
+ sourceReportSchema: EPIC13_RC1_READINESS_REPORT_SCHEMA,
239
+ sourceStatus: rc1ReadinessModel.status,
240
+ sourceTargetReadiness: rc1ReadinessModel.targetReadiness,
241
+ sourceReportOk: rc1ReadinessReport.ok,
242
+ sourceValidationOk: rc1ReadinessValidation.ok,
243
+ rc0HandoffOk: rc0HandoffReport.ok,
244
+ releaseCandidate: 'RC1',
245
+ targetReadiness: EPIC13_RELEASE_OWNER_ACCEPTANCE_TARGET,
246
+ ownerDecisionStates: OWNER_DECISION_STATES.slice(),
247
+ reviewChecklist,
248
+ decisionSummary,
249
+ requiredOwnerInputs: REQUIRED_OWNER_INPUTS.slice(),
250
+ requiredLocalGates: REQUIRED_LOCAL_GATES.slice(),
251
+ requiredSourceSchemas: REQUIRED_SOURCE_SCHEMAS.slice(),
252
+ requiredDocs: REQUIRED_DOCS.slice(),
253
+ deferralPolicy: {
254
+ allowed: true,
255
+ ownerReasonRequired: true,
256
+ targetWorkpackageRequired: true,
257
+ publishAllowedForDeferredItems: false
258
+ },
259
+ nextDecision: 'rc1-gate-matrix-ci-handoff',
260
+ nextWorkpackage: 'WP-E13-13',
261
+ kernelBoundary: KERNEL_BOUNDARY,
262
+ publishBoundary: PUBLISH_BOUNDARY,
263
+ publishAllowed: false,
264
+ automaticPublishApproval: false,
265
+ packagePrivateRequired: true
266
+ };
267
+ }
268
+
269
+ function validateEpic13ReleaseOwnerAcceptanceContract(contract = createEpic13ReleaseOwnerAcceptanceContract()) {
270
+ const errors = [];
271
+ const checklist = contract && Array.isArray(contract.reviewChecklist) ? contract.reviewChecklist : [];
272
+ const invalidStatuses = checklist.filter((entry) => !OWNER_DECISION_STATES.includes(entry.status));
273
+ const deferredWithoutTargets = checklist.filter((entry) => entry.status === 'deferred' && (!Array.isArray(entry.targetWorkpackages) || entry.targetWorkpackages.length === 0));
274
+ const blockedPublish = checklist.find((entry) => entry.id === 'automatic-publish-approval' && entry.status === 'blocked');
275
+
276
+ if (!contract || contract.schema !== EPIC13_RELEASE_OWNER_ACCEPTANCE_SCHEMA) errors.push(`schema must be ${EPIC13_RELEASE_OWNER_ACCEPTANCE_SCHEMA}`);
277
+ if (!contract || contract.reportSchema !== EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA}`);
278
+ if (!contract || contract.workpackage !== EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE}`);
279
+ if (!contract || contract.status !== EPIC13_RELEASE_OWNER_ACCEPTANCE_STATUS) errors.push(`status must be ${EPIC13_RELEASE_OWNER_ACCEPTANCE_STATUS}`);
280
+ if (!contract || contract.sourceSchema !== EPIC13_RC1_READINESS_SCHEMA) errors.push('source schema must be Epic 13 RC1 readiness');
281
+ if (!contract || contract.sourceValidationOk !== true || contract.sourceReportOk !== true || contract.rc0HandoffOk !== true) errors.push('source readiness and RC0 handoff must validate');
282
+ if (!contract || contract.targetReadiness !== EPIC13_RELEASE_OWNER_ACCEPTANCE_TARGET) errors.push(`targetReadiness must be ${EPIC13_RELEASE_OWNER_ACCEPTANCE_TARGET}`);
283
+ if (!contract || contract.nextDecision !== 'rc1-gate-matrix-ci-handoff') errors.push('next decision must be RC1 Gate Matrix und CI-Handoff');
284
+ if (!contract || contract.nextWorkpackage !== 'WP-E13-13') errors.push('next workpackage must be WP-E13-13');
285
+ if (!contract || contract.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
286
+ if (!contract || contract.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
287
+ if (!contract || contract.publishAllowed !== false || contract.automaticPublishApproval !== false || contract.packagePrivateRequired !== true) errors.push('publish must remain blocked and private');
288
+ if (!contract || !Array.isArray(contract.ownerDecisionStates) || contract.ownerDecisionStates.join('|') !== OWNER_DECISION_STATES.join('|')) errors.push('owner decision states must be accepted/deferred/blocked');
289
+ if (invalidStatuses.length > 0) errors.push(`invalid owner decision states: ${invalidStatuses.map((entry) => entry.id).join(', ')}`);
290
+ if (deferredWithoutTargets.length > 0) errors.push(`deferred items must name target workpackages: ${deferredWithoutTargets.map((entry) => entry.id).join(', ')}`);
291
+ if (!blockedPublish) errors.push('automatic publish approval must be blocked');
292
+ if (!contract || contract.decisionSummary.accepted < 5) errors.push('owner checklist must accept RC1 baseline items');
293
+ if (!contract || contract.decisionSummary.deferred < 1) errors.push('owner checklist must defer remaining RC1 hardening items');
294
+ if (!contract || contract.decisionSummary.blocked < 1) errors.push('owner checklist must block automatic publish');
295
+ REQUIRED_OWNER_INPUTS.forEach((input) => {
296
+ if (!contract || !contract.requiredOwnerInputs.includes(input)) errors.push(`owner input missing: ${input}`);
297
+ });
298
+ REQUIRED_LOCAL_GATES.forEach((gate) => {
299
+ if (!contract || !contract.requiredLocalGates.includes(gate)) errors.push(`local gate missing: ${gate}`);
300
+ });
301
+ REQUIRED_SOURCE_SCHEMAS.forEach((schema) => {
302
+ if (!contract || !contract.requiredSourceSchemas.includes(schema)) errors.push(`source schema missing: ${schema}`);
303
+ });
304
+
305
+ return {
306
+ schema: EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA,
307
+ ok: errors.length === 0,
308
+ errors
309
+ };
310
+ }
311
+
312
+ function createEpic13ReleaseOwnerAcceptanceReport(options = {}) {
313
+ const contract = options.contract || createEpic13ReleaseOwnerAcceptanceContract(options);
314
+ const validation = validateEpic13ReleaseOwnerAcceptanceContract(contract);
315
+
316
+ return {
317
+ schema: EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA,
318
+ ok: validation.ok,
319
+ errors: validation.errors,
320
+ contract,
321
+ decisionSummary: contract.decisionSummary,
322
+ checklistCount: contract.reviewChecklist.length,
323
+ requiredOwnerInputCount: contract.requiredOwnerInputs.length,
324
+ publishAllowed: contract.publishAllowed,
325
+ automaticPublishApproval: contract.automaticPublishApproval,
326
+ nextWorkpackage: contract.nextWorkpackage
327
+ };
328
+ }
329
+
330
+ module.exports = {
331
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_CONTRACT,
332
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_DOCS,
333
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_LOCAL_GATE,
334
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_MODULE,
335
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_PACKAGE_SCRIPT,
336
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_REPORT_SCHEMA,
337
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_SCHEMA,
338
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_STATUS,
339
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_STEERING,
340
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_SUITE,
341
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_TARGET,
342
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE,
343
+ EPIC13_RELEASE_OWNER_ACCEPTANCE_WORKPACKAGE_DOC,
344
+ OWNER_DECISION_STATES,
345
+ OWNER_REVIEW_CHECKLIST,
346
+ PUBLISH_BOUNDARY,
347
+ REQUIRED_DOCS,
348
+ REQUIRED_LOCAL_GATES,
349
+ REQUIRED_OWNER_INPUTS,
350
+ REQUIRED_SOURCE_SCHEMAS,
351
+ createEpic13ReleaseOwnerAcceptanceContract,
352
+ createEpic13ReleaseOwnerAcceptanceReport,
353
+ validateEpic13ReleaseOwnerAcceptanceContract
354
+ };
@@ -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 EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_CONTRACT: string;
11
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
12
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_LOCAL_GATE: string;
13
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_MODULE: string;
14
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_EXPORT: string;
15
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_SCRIPT: string;
16
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_ARTIFACT: string;
17
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA: string;
18
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SCHEMA: string;
19
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_STATUS: string;
20
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SUITE: string;
21
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_TARGET: string;
22
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE: string;
23
+ export declare const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE_DOC: XtendCatalogConstant;
24
+ export declare const NEXT_DECISION: XtendCatalogConstant;
25
+ export declare const NEXT_WORKPACKAGE: string;
26
+ export declare const PACK_DRY_RUN_COMMAND: string;
27
+ export declare const PACK_DRY_RUN_RAW_COMMAND: string;
28
+ export declare const PACK_DRY_RUN_REPORT_COMMAND: string;
29
+ export declare const PUBLISH_BOUNDARY: XtendCatalogConstant;
30
+ export declare const RELEASE_REPORT_ARTIFACT: string;
31
+ export declare const RELEASE_REPORT_COMMAND: string;
32
+ export declare const REQUIRED_OWNER_EVIDENCE: readonly XtendCatalogRecord[] | XtendCatalogRecord;
33
+ export declare const REQUIRED_REFERENCE_PATHS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
34
+ export declare function createEpic13ReleaseReportPackDryRunEvidencePlan(options?: XtendCatalogOptions): XtendCatalogPlan;
35
+ export declare function createEpic13ReleaseReportPackDryRunEvidenceReport(options?: XtendCatalogOptions): XtendCatalogReport;
36
+ export declare function validateEpic13ReleaseReportPackDryRunEvidencePlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,253 @@
1
+ const {
2
+ createEpic13Rc1GateMatrixCiHandoffPlan,
3
+ createEpic13Rc1GateMatrixCiHandoffReport,
4
+ validateEpic13Rc1GateMatrixCiHandoffPlan
5
+ } = require('./epic13-rc1-gate-matrix-ci-handoff');
6
+ const {
7
+ PACKAGE_DRY_RUN_ARTIFACT,
8
+ PACKAGE_EXPORT_LOCK_REPORT_ARTIFACT,
9
+ PACKAGE_EXPORT_SURFACE_ARTIFACT
10
+ } = require('./epic13-package-export-lock');
11
+
12
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SCHEMA = 'xtend.epic13.release-report-pack-dry-run-evidence.v1';
13
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA = 'xtend.epic13.release-report-pack-dry-run-evidence-report.v1';
14
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE = 'DPF-WP-02-release-report-pack-dry-run';
15
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_STATUS = 'accepted-release-report-pack-dry-run-evidence';
16
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_TARGET = 'release-owner-artifacts-reproducible';
17
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_MODULE = 'catalog/epic13-release-report-pack-dry-run-evidence.js';
18
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SUITE = 'tests/platform/epic13_release_report_pack_dry_run_evidence_suite.js';
19
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_CONTRACT = 'development/XTend-Epic13-Release-Report-und-Pack-Dry-Run-Evidence.md';
20
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE_DOC = 'development/DPF-WP-02-Release-Report-und-Pack-Dry-Run-Evidence.md';
21
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_DOCS = 'docs/release-report-pack-dry-run-evidence.md';
22
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-release-report-pack-dry-run-evidence --json';
23
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_SCRIPT = 'npm run test:epic13-release-report-pack-dry-run-evidence';
24
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_ARTIFACT = '.xtend-test-results/xtend-epic13-release-report-pack-dry-run-evidence-report.json';
25
+ const EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_EXPORT = './catalog/epic13-release-report-pack-dry-run-evidence';
26
+ const RELEASE_REPORT_COMMAND = 'npm run release:report';
27
+ const RELEASE_REPORT_ARTIFACT = '.xtend-test-results/xtend-release-report.json';
28
+ const PACK_DRY_RUN_COMMAND = 'npm run pack:dry-run';
29
+ const PACK_DRY_RUN_REPORT_COMMAND = 'npm run pack:dry-run:report';
30
+ const PACK_DRY_RUN_RAW_COMMAND = 'npm run pack:dry-run:raw';
31
+ const NEXT_WORKPACKAGE = 'DPF-WP-03-conditional-network-evidence-ci';
32
+ const NEXT_DECISION = 'conditional-network-evidence-ci';
33
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
34
+
35
+ const REQUIRED_OWNER_EVIDENCE = Object.freeze([
36
+ {
37
+ id: 'release-report',
38
+ command: RELEASE_REPORT_COMMAND,
39
+ artifact: RELEASE_REPORT_ARTIFACT,
40
+ schema: 'xtend.test.report.v1',
41
+ reproducible: true,
42
+ ownerVisible: true,
43
+ networkRequired: false
44
+ },
45
+ {
46
+ id: 'pack-dry-run',
47
+ command: PACK_DRY_RUN_COMMAND,
48
+ artifact: PACKAGE_DRY_RUN_ARTIFACT,
49
+ schema: 'npm-pack-dry-run-json-array',
50
+ reproducible: true,
51
+ ownerVisible: true,
52
+ networkRequired: false
53
+ },
54
+ {
55
+ id: 'package-export-surface-lock',
56
+ command: PACK_DRY_RUN_COMMAND,
57
+ artifact: PACKAGE_EXPORT_SURFACE_ARTIFACT,
58
+ schema: 'xtend.epic13.package-export-surface.v1',
59
+ reproducible: true,
60
+ ownerVisible: true,
61
+ networkRequired: false
62
+ },
63
+ {
64
+ id: 'package-export-lock-report',
65
+ command: PACK_DRY_RUN_COMMAND,
66
+ artifact: PACKAGE_EXPORT_LOCK_REPORT_ARTIFACT,
67
+ schema: 'xtend.epic13.package-export-lock-report.v1',
68
+ reproducible: true,
69
+ ownerVisible: true,
70
+ networkRequired: false
71
+ }
72
+ ]);
73
+
74
+ const REQUIRED_REFERENCE_PATHS = Object.freeze([
75
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_MODULE,
76
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SUITE,
77
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_CONTRACT,
78
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE_DOC,
79
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_DOCS,
80
+ 'scripts/capture_pack_dry_run.js',
81
+ 'development/XTend-Epic13-RC1-Gate-Matrix-und-CI-Handoff.md',
82
+ 'docs/rc1-gate-matrix-ci-handoff.md',
83
+ 'development/XTend-Release-Checklist-und-SemVer-Policy.md',
84
+ 'development/XTend-CI-Gate-Matrix.md',
85
+ 'development/XTend-Dokumentations-und-Demo-Referenzpfade.md',
86
+ 'docs/README.md',
87
+ 'docs/menu.json',
88
+ 'README.md',
89
+ 'CHANGELOG.md',
90
+ 'tests/README.md',
91
+ 'package.json',
92
+ 'xtend-builder/scaffold.config.js'
93
+ ]);
94
+
95
+ function getDefaultPackageManifest() {
96
+ return require('../package.json');
97
+ }
98
+
99
+ function createEpic13ReleaseReportPackDryRunEvidencePlan(options = {}) {
100
+ const packageManifest = options.packageManifest || getDefaultPackageManifest();
101
+ const rc1Handoff = options.rc1Handoff || createEpic13Rc1GateMatrixCiHandoffPlan(options);
102
+ const rc1HandoffValidation = options.rc1HandoffValidation || validateEpic13Rc1GateMatrixCiHandoffPlan(rc1Handoff);
103
+ const rc1HandoffReport = options.rc1HandoffReport || createEpic13Rc1GateMatrixCiHandoffReport({ ...options, plan: rc1Handoff });
104
+ const scripts = packageManifest.scripts || {};
105
+
106
+ return {
107
+ schema: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SCHEMA,
108
+ reportSchema: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA,
109
+ workpackage: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE,
110
+ status: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_STATUS,
111
+ generatedAt: options.generatedAt || 'static-local',
112
+ module: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_MODULE,
113
+ suite: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SUITE,
114
+ contract: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_CONTRACT,
115
+ workpackageDocument: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE_DOC,
116
+ docs: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_DOCS,
117
+ localGate: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_LOCAL_GATE,
118
+ packageScript: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_SCRIPT,
119
+ packageExport: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_EXPORT,
120
+ reportArtifact: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_ARTIFACT,
121
+ targetReadiness: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_TARGET,
122
+ sourceSchema: rc1Handoff.schema,
123
+ sourceReportSchema: rc1Handoff.reportSchema,
124
+ sourceValidationOk: rc1HandoffValidation.ok,
125
+ sourceReportOk: rc1HandoffReport.ok,
126
+ releaseReportCommand: RELEASE_REPORT_COMMAND,
127
+ releaseReportArtifact: RELEASE_REPORT_ARTIFACT,
128
+ packDryRunCommand: PACK_DRY_RUN_COMMAND,
129
+ packDryRunReportCommand: PACK_DRY_RUN_REPORT_COMMAND,
130
+ packDryRunRawCommand: PACK_DRY_RUN_RAW_COMMAND,
131
+ packDryRunArtifact: PACKAGE_DRY_RUN_ARTIFACT,
132
+ packageExportSurfaceArtifact: PACKAGE_EXPORT_SURFACE_ARTIFACT,
133
+ packageExportLockReportArtifact: PACKAGE_EXPORT_LOCK_REPORT_ARTIFACT,
134
+ packageScripts: {
135
+ releaseReport: scripts['release:report'],
136
+ packDryRun: scripts['pack:dry-run'],
137
+ packDryRunReport: scripts['pack:dry-run:report'],
138
+ packDryRunRaw: scripts['pack:dry-run:raw']
139
+ },
140
+ ownerEvidence: REQUIRED_OWNER_EVIDENCE.map((entry) => ({ ...entry })),
141
+ referencePaths: REQUIRED_REFERENCE_PATHS.slice(),
142
+ rc1HandoffReferences: [
143
+ RELEASE_REPORT_ARTIFACT,
144
+ PACKAGE_DRY_RUN_ARTIFACT,
145
+ PACKAGE_EXPORT_SURFACE_ARTIFACT,
146
+ PACKAGE_EXPORT_LOCK_REPORT_ARTIFACT,
147
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_ARTIFACT
148
+ ],
149
+ auditSbomIncluded: false,
150
+ publicPublishDecisionIncluded: false,
151
+ licenseDecisionIncluded: false,
152
+ docsMenuSlug: 'release-report-pack-dry-run-evidence',
153
+ nextDecision: NEXT_DECISION,
154
+ nextWorkpackage: NEXT_WORKPACKAGE,
155
+ publishBoundary: PUBLISH_BOUNDARY,
156
+ publishAllowed: false,
157
+ packagePrivateRequired: true
158
+ };
159
+ }
160
+
161
+ function validateEpic13ReleaseReportPackDryRunEvidencePlan(plan = createEpic13ReleaseReportPackDryRunEvidencePlan()) {
162
+ const errors = [];
163
+ const evidence = plan && Array.isArray(plan.ownerEvidence) ? plan.ownerEvidence : [];
164
+ const references = plan && Array.isArray(plan.referencePaths) ? plan.referencePaths : [];
165
+
166
+ if (!plan || plan.schema !== EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SCHEMA) errors.push(`schema must be ${EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SCHEMA}`);
167
+ if (!plan || plan.reportSchema !== EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA}`);
168
+ if (!plan || plan.workpackage !== EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE}`);
169
+ if (!plan || plan.status !== EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_STATUS) errors.push(`status must be ${EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_STATUS}`);
170
+ if (!plan || plan.targetReadiness !== EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_TARGET) errors.push(`targetReadiness must be ${EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_TARGET}`);
171
+ if (!plan || plan.sourceSchema !== 'xtend.epic13.rc1-gate-matrix-ci-handoff.v1') errors.push('source schema must be RC1 gate matrix CI handoff');
172
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('RC1 gate matrix source must validate');
173
+ if (!plan || plan.packageExport !== EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_EXPORT) errors.push('package export must be registered');
174
+ if (!plan || plan.packageScripts.releaseReport !== 'node scripts/run_xtend_tests.js --report .xtend-test-results/xtend-release-report.json') errors.push('release:report must write xtend-release-report.json');
175
+ if (!plan || plan.packageScripts.packDryRun !== 'node scripts/capture_pack_dry_run.js') errors.push('pack:dry-run must write reproducible pack artifacts');
176
+ if (!plan || plan.packageScripts.packDryRunReport !== 'node scripts/capture_pack_dry_run.js') errors.push('pack:dry-run:report must stay as compatibility alias');
177
+ if (!plan || plan.packageScripts.packDryRunRaw !== 'npm pack --dry-run') errors.push('pack:dry-run:raw must expose raw npm dry-run output');
178
+
179
+ REQUIRED_OWNER_EVIDENCE.forEach((required) => {
180
+ const entry = evidence.find((candidate) => candidate.id === required.id);
181
+ if (!entry) errors.push(`owner evidence missing: ${required.id}`);
182
+ if (entry && entry.artifact !== required.artifact) errors.push(`owner evidence artifact mismatch: ${required.id}`);
183
+ if (entry && entry.reproducible !== true) errors.push(`owner evidence must be reproducible: ${required.id}`);
184
+ if (entry && entry.ownerVisible !== true) errors.push(`owner evidence must be owner-visible: ${required.id}`);
185
+ if (entry && entry.networkRequired !== false) errors.push(`owner evidence must stay network-free: ${required.id}`);
186
+ });
187
+ REQUIRED_REFERENCE_PATHS.forEach((referencePath) => {
188
+ if (!references.includes(referencePath)) errors.push(`reference path missing: ${referencePath}`);
189
+ });
190
+ [RELEASE_REPORT_ARTIFACT, PACKAGE_DRY_RUN_ARTIFACT, PACKAGE_EXPORT_SURFACE_ARTIFACT, PACKAGE_EXPORT_LOCK_REPORT_ARTIFACT].forEach((artifact) => {
191
+ if (!plan || !plan.rc1HandoffReferences.includes(artifact)) errors.push(`RC1 handoff reference missing: ${artifact}`);
192
+ });
193
+ if (!plan || plan.auditSbomIncluded !== false || plan.publicPublishDecisionIncluded !== false || plan.licenseDecisionIncluded !== false) errors.push('audit/SBOM, public publish and license decisions must remain outside DPF-WP-02');
194
+ if (!plan || plan.docsMenuSlug !== 'release-report-pack-dry-run-evidence') errors.push('docs menu slug must be release-report-pack-dry-run-evidence');
195
+ if (!plan || plan.nextDecision !== NEXT_DECISION) errors.push(`next decision must be ${NEXT_DECISION}`);
196
+ if (!plan || plan.nextWorkpackage !== NEXT_WORKPACKAGE) errors.push(`next workpackage must be ${NEXT_WORKPACKAGE}`);
197
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
198
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
199
+
200
+ return {
201
+ schema: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA,
202
+ ok: errors.length === 0,
203
+ errors
204
+ };
205
+ }
206
+
207
+ function createEpic13ReleaseReportPackDryRunEvidenceReport(options = {}) {
208
+ const plan = options.plan || createEpic13ReleaseReportPackDryRunEvidencePlan(options);
209
+ const validation = validateEpic13ReleaseReportPackDryRunEvidencePlan(plan);
210
+
211
+ return {
212
+ schema: EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA,
213
+ ok: validation.ok,
214
+ errors: validation.errors,
215
+ plan,
216
+ ownerEvidenceCount: plan.ownerEvidence.length,
217
+ referencePathCount: plan.referencePaths.length,
218
+ releaseReportArtifact: plan.releaseReportArtifact,
219
+ packDryRunArtifact: plan.packDryRunArtifact,
220
+ publishAllowed: plan.publishAllowed,
221
+ nextWorkpackage: plan.nextWorkpackage
222
+ };
223
+ }
224
+
225
+ module.exports = {
226
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_CONTRACT,
227
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_DOCS,
228
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_LOCAL_GATE,
229
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_MODULE,
230
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_EXPORT,
231
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_PACKAGE_SCRIPT,
232
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_ARTIFACT,
233
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_REPORT_SCHEMA,
234
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SCHEMA,
235
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_STATUS,
236
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_SUITE,
237
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_TARGET,
238
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE,
239
+ EPIC13_RELEASE_REPORT_PACK_DRY_RUN_EVIDENCE_WORKPACKAGE_DOC,
240
+ NEXT_DECISION,
241
+ NEXT_WORKPACKAGE,
242
+ PACK_DRY_RUN_COMMAND,
243
+ PACK_DRY_RUN_RAW_COMMAND,
244
+ PACK_DRY_RUN_REPORT_COMMAND,
245
+ PUBLISH_BOUNDARY,
246
+ RELEASE_REPORT_ARTIFACT,
247
+ RELEASE_REPORT_COMMAND,
248
+ REQUIRED_OWNER_EVIDENCE,
249
+ REQUIRED_REFERENCE_PATHS,
250
+ createEpic13ReleaseReportPackDryRunEvidencePlan,
251
+ createEpic13ReleaseReportPackDryRunEvidenceReport,
252
+ validateEpic13ReleaseReportPackDryRunEvidencePlan
253
+ };