@agile-team/mach-report 2.14.0 → 2.16.0

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 (282) hide show
  1. package/README.md +26 -16
  2. package/THIRD_PARTY_NOTICES.md +3 -1
  3. package/dist/{ExcelBindingWizard-CLT2p7P3.cjs → ExcelBindingWizard-CP6h2x1f.cjs} +1 -1
  4. package/dist/{ExcelBindingWizard-CvsWR8Ga.js → ExcelBindingWizard-HhB3hAJE.js} +3 -3
  5. package/dist/ParamEditor-CUQLgoxa.cjs +1 -0
  6. package/dist/ParamEditor-OKesP_nO.js +594 -0
  7. package/dist/{ReportBatchPanel-DkxTzBkD.cjs → ReportBatchPanel-cZCAMAwH.cjs} +1 -1
  8. package/dist/{ReportBatchPanel-LqVgiqp7.js → ReportBatchPanel-ruxcbfY6.js} +39 -39
  9. package/dist/ReportPreview-BcDKCLiK.js +4834 -0
  10. package/dist/ReportPreview-Bk9nLfO9.cjs +6 -0
  11. package/dist/{ReportTemplateLibrary-cQ1sqNYo.cjs → ReportTemplateLibrary-BDlNT8JN.cjs} +1 -1
  12. package/dist/{ReportTemplateLibrary-MjWEtc7X.js → ReportTemplateLibrary-DcwrH-63.js} +1 -1
  13. package/dist/{RuleEditor-BaR6xUiI.cjs → RuleEditor-BX5S8RSF.cjs} +1 -1
  14. package/dist/{RuleEditor-ChuXMlei.js → RuleEditor-CGl9XY2s.js} +5 -5
  15. package/dist/{TemplateOutlinePanel-BHKP89Xz.cjs → TemplateOutlinePanel-CGrT5DFN.cjs} +1 -1
  16. package/dist/{TemplateOutlinePanel-Dci6aRn1.js → TemplateOutlinePanel-SXCjaPKR.js} +2 -2
  17. package/dist/{TemplateReusePanel-CY5eO2Sh.cjs → TemplateReusePanel-6Z3wRFz8.cjs} +1 -1
  18. package/dist/{TemplateReusePanel-B7Gmyc1z.js → TemplateReusePanel-lHLOS9Wn.js} +2 -2
  19. package/dist/{TemplateReviewPanel-DjlX3xpt.js → TemplateReviewPanel-CJ9PLc48.js} +2 -2
  20. package/dist/{TemplateReviewPanel-JvZe9_4G.cjs → TemplateReviewPanel-Dpk7sLcF.cjs} +1 -1
  21. package/dist/analytics.cjs +1 -1
  22. package/dist/analytics.d.cts +5 -1
  23. package/dist/analytics.d.ts +5 -1
  24. package/dist/analytics.js +154 -60
  25. package/dist/artifact-integrity.json +143 -0
  26. package/dist/assets-CqIbfbTr.js +126 -0
  27. package/dist/assets-e4YSke8n.cjs +1 -0
  28. package/dist/auto-YR7a4BtF.js +240 -0
  29. package/dist/auto-uVBjX1j5.cjs +1 -0
  30. package/dist/batch-WzDIXJAt.js +220 -0
  31. package/dist/batch-z6Aw5GEY.cjs +1 -0
  32. package/dist/capabilities-DDwXr_cA.js +103 -0
  33. package/dist/capabilities-DNLyZdNw.cjs +1 -0
  34. package/dist/codes.d.cts +4 -0
  35. package/dist/codes.d.ts +4 -0
  36. package/dist/component-tree-Ca6YYfHq.js +61 -0
  37. package/dist/component-tree-DkGLEfZC.cjs +1 -0
  38. package/dist/{computed-Bvk0W15F.js → computed-C-4C2S5h.js} +3 -3
  39. package/dist/config-Dg_o8e7m.cjs +1 -0
  40. package/dist/config-XQ4qrQ7Q.js +844 -0
  41. package/dist/designer-BfQSahxq.js +5163 -0
  42. package/dist/designer-CPPdeM5_.cjs +2 -0
  43. package/dist/designer.cjs +1 -1
  44. package/dist/designer.d.cts +197 -16
  45. package/dist/designer.d.ts +197 -16
  46. package/dist/designer.js +1 -1
  47. package/dist/diagnostic-notification-B9K9We3h.cjs +1 -0
  48. package/dist/diagnostic-notification-qGAYZdkB.js +7 -0
  49. package/dist/drill-CsdjgkRM.cjs +1 -0
  50. package/dist/drill-DIGsZfyB.js +145 -0
  51. package/dist/encoding-BOGq4qYL.js +21 -0
  52. package/dist/encoding-BYF9ZTl9.cjs +1 -0
  53. package/dist/{font-loader-DHto6Lra.js → font-loader-CzI1GuBc.js} +1 -1
  54. package/dist/{font-loader-vhCT8znW.cjs → font-loader-EKLzOJxf.cjs} +1 -1
  55. package/dist/index.cjs +8 -9
  56. package/dist/index.d.cts +84 -4
  57. package/dist/index.d.ts +84 -4
  58. package/dist/index.js +829 -833
  59. package/dist/json-snapshot-D6ioHth9.js +1702 -0
  60. package/dist/json-snapshot-DknkjvxP.cjs +2 -0
  61. package/dist/licenses/_bwip-js_generic-4.11.4.txt +24 -0
  62. package/dist/licenses/_fast-csv_format-4.3.5.txt +22 -0
  63. package/dist/licenses/_fast-csv_parse-4.3.6.txt +22 -0
  64. package/dist/licenses/_pdf-lib_fontkit-1.1.1.txt +326 -0
  65. package/dist/licenses/_pdf-lib_standard-fonts-1.0.0.txt +22 -0
  66. package/dist/licenses/_pdf-lib_upng-1.0.1.txt +22 -0
  67. package/dist/licenses/_types_node-14.18.63.txt +22 -0
  68. package/dist/licenses/_types_pako-2.0.3.txt +22 -0
  69. package/dist/licenses/_types_pegjs-0.10.6.txt +22 -0
  70. package/dist/licenses/archiver-5.3.2.txt +23 -0
  71. package/dist/licenses/archiver-utils-2.1.0.txt +23 -0
  72. package/dist/licenses/archiver-utils-3.0.4.txt +23 -0
  73. package/dist/licenses/async-3.2.6.txt +20 -0
  74. package/dist/licenses/balanced-match-1.0.2.txt +22 -0
  75. package/dist/licenses/base64-js-1.5.1.txt +22 -0
  76. package/dist/licenses/big-integer-1.6.52.txt +25 -0
  77. package/dist/licenses/binary-0.3.0.txt +178 -0
  78. package/dist/licenses/bl-4.1.0.txt +14 -0
  79. package/dist/licenses/bluebird-3.4.7.txt +22 -0
  80. package/dist/licenses/brace-expansion-1.1.21.txt +22 -0
  81. package/dist/licenses/brace-expansion-2.1.7.txt +22 -0
  82. package/dist/licenses/buffer-5.7.1.txt +22 -0
  83. package/dist/licenses/buffer-crc32-0.2.13.txt +20 -0
  84. package/dist/licenses/buffer-indexof-polyfill-1.0.2.txt +23 -0
  85. package/dist/licenses/buffers-0.1.1.txt +140 -0
  86. package/dist/licenses/chainsaw-0.1.0.txt +184 -0
  87. package/dist/licenses/compress-commons-4.1.2.txt +23 -0
  88. package/dist/licenses/concat-map-0.0.1.txt +19 -0
  89. package/dist/licenses/core-util-is-1.0.3.txt +20 -0
  90. package/dist/licenses/crc-32-1.2.2.txt +202 -0
  91. package/dist/licenses/crc32-stream-4.0.3.txt +23 -0
  92. package/dist/licenses/dayjs-1.11.23.txt +22 -0
  93. package/dist/licenses/duplexer2-0.1.4.txt +27 -0
  94. package/dist/licenses/end-of-stream-1.4.5.txt +22 -0
  95. package/dist/licenses/exceljs-4.4.0.txt +23 -0
  96. package/dist/licenses/fast-csv-4.3.6.txt +22 -0
  97. package/dist/licenses/fast-png-6.4.0.txt +22 -0
  98. package/dist/licenses/fs-constants-1.0.0.txt +22 -0
  99. package/dist/licenses/fs.realpath-1.0.0.txt +44 -0
  100. package/dist/licenses/fstream-1.0.12.txt +16 -0
  101. package/dist/licenses/glob-7.2.3.txt +22 -0
  102. package/dist/licenses/graceful-fs-4.2.11.txt +16 -0
  103. package/dist/licenses/ieee754-1.2.1.txt +12 -0
  104. package/dist/licenses/immediate-3.0.6.txt +21 -0
  105. package/dist/licenses/inflight-1.0.6.txt +16 -0
  106. package/dist/licenses/inherits-2.0.4.txt +17 -0
  107. package/dist/licenses/iobuffer-5.4.0.txt +23 -0
  108. package/dist/licenses/isarray-1.0.0.txt +61 -0
  109. package/dist/licenses/jszip-3.10.2.txt +652 -0
  110. package/dist/licenses/lazystream-1.0.1.txt +24 -0
  111. package/dist/licenses/lie-3.3.0.txt +8 -0
  112. package/dist/licenses/listenercount-1.0.1.txt +6 -0
  113. package/dist/licenses/lodash.defaults-4.2.0.txt +48 -0
  114. package/dist/licenses/lodash.difference-4.5.0.txt +48 -0
  115. package/dist/licenses/lodash.escaperegexp-4.1.2.txt +48 -0
  116. package/dist/licenses/lodash.flatten-4.4.0.txt +48 -0
  117. package/dist/licenses/lodash.groupby-4.6.0.txt +48 -0
  118. package/dist/licenses/lodash.isboolean-3.0.3.txt +23 -0
  119. package/dist/licenses/lodash.isequal-4.5.0.txt +48 -0
  120. package/dist/licenses/lodash.isfunction-3.0.9.txt +48 -0
  121. package/dist/licenses/lodash.isnil-4.0.0.txt +23 -0
  122. package/dist/licenses/lodash.isplainobject-4.0.6.txt +48 -0
  123. package/dist/licenses/lodash.isundefined-3.0.1.txt +23 -0
  124. package/dist/licenses/lodash.union-4.6.0.txt +48 -0
  125. package/dist/licenses/lodash.uniq-4.5.0.txt +48 -0
  126. package/dist/licenses/minimatch-3.1.5.txt +16 -0
  127. package/dist/licenses/minimatch-5.1.9.txt +16 -0
  128. package/dist/licenses/minimist-1.2.8.txt +19 -0
  129. package/dist/licenses/mkdirp-0.5.6.txt +22 -0
  130. package/dist/licenses/node-sql-parser-5.4.0.txt +202 -0
  131. package/dist/licenses/normalize-path-3.0.0.txt +22 -0
  132. package/dist/licenses/once-1.4.0.txt +16 -0
  133. package/dist/licenses/pako-1.0.11.txt +22 -0
  134. package/dist/licenses/pako-2.2.0.txt +22 -0
  135. package/dist/licenses/path-is-absolute-1.0.1.txt +22 -0
  136. package/dist/licenses/pdf-lib-1.17.1.txt +22 -0
  137. package/dist/licenses/process-nextick-args-2.0.1.txt +20 -0
  138. package/dist/licenses/readable-stream-2.3.8.txt +48 -0
  139. package/dist/licenses/readable-stream-3.6.2.txt +48 -0
  140. package/dist/licenses/readdir-glob-1.1.3.txt +202 -0
  141. package/dist/licenses/rimraf-2.7.1.txt +16 -0
  142. package/dist/licenses/safe-buffer-5.1.2.txt +22 -0
  143. package/dist/licenses/safe-buffer-5.2.1.txt +22 -0
  144. package/dist/licenses/saxes-5.0.1.txt +397 -0
  145. package/dist/licenses/setimmediate-1.0.5.txt +21 -0
  146. package/dist/licenses/string_decoder-1.1.1.txt +49 -0
  147. package/dist/licenses/string_decoder-1.3.0.txt +49 -0
  148. package/dist/licenses/tar-stream-2.2.0.txt +22 -0
  149. package/dist/licenses/tmp-0.2.7.txt +22 -0
  150. package/dist/licenses/traverse-0.3.9.txt +25 -0
  151. package/dist/licenses/tslib-1.14.1.txt +13 -0
  152. package/dist/licenses/unzipper-0.10.14.txt +26 -0
  153. package/dist/licenses/util-deprecate-1.0.2.txt +25 -0
  154. package/dist/licenses/uuid-11.1.1.txt +10 -0
  155. package/dist/licenses/wrappy-1.0.2.txt +16 -0
  156. package/dist/licenses/xmlchars-2.2.0.txt +19 -0
  157. package/dist/licenses/zip-stream-4.1.1.txt +23 -0
  158. package/dist/matrix-CGRGkn5s.js +112 -0
  159. package/dist/matrix-gEO7ZM_u.cjs +1 -0
  160. package/dist/media-B7vnpD8k.cjs +1 -0
  161. package/dist/media-Y90dHK9z.js +70 -0
  162. package/dist/param-validation-C3HlcLLO.cjs +1 -0
  163. package/dist/param-validation-Do7Eg8Zv.js +181 -0
  164. package/dist/{pdf-AyJGb22z.cjs → pdf-ByVCb1i6.cjs} +49 -49
  165. package/dist/{pdf-8UPQebOE.js → pdf-DJ5S6ukC.js} +4924 -4872
  166. package/dist/pdf.cjs +1 -1
  167. package/dist/pdf.d.cts +20 -3
  168. package/dist/pdf.d.ts +20 -3
  169. package/dist/pdf.js +2 -2
  170. package/dist/{plugin-BGKf-Tqg.js → plugin-C2j5_mhx.js} +2 -2
  171. package/dist/{plugin-CktLH_Iy.cjs → plugin-Dr39GBRG.cjs} +1 -1
  172. package/dist/prepared-DdrjLC7L.cjs +1 -0
  173. package/dist/prepared-DqtpvRTn.js +87 -0
  174. package/dist/progress-B0ctFpKf.cjs +1 -0
  175. package/dist/progress-BXzlVbIp.js +29 -0
  176. package/dist/progress-DJBd9Rb9.cjs +1 -0
  177. package/dist/progress-Hc2vxoCs.js +52 -0
  178. package/dist/protocol-BzwMP4Vw.cjs +1 -0
  179. package/dist/protocol-kt4Iy6-3.js +90 -0
  180. package/dist/record-bindings-CZWBJ1fU.js +195 -0
  181. package/dist/record-bindings-DUX1VMlR.cjs +1 -0
  182. package/dist/{region-binding-workflow-DEJbhpCv.js → region-binding-workflow-CWNvIjkV.js} +1 -1
  183. package/dist/{region-binding-workflow-BzfbxRiR.cjs → region-binding-workflow-CqSMxQ4p.cjs} +1 -1
  184. package/dist/report-encoding-worker.cjs +1 -0
  185. package/dist/report-encoding-worker.d.ts +1 -0
  186. package/dist/report-encoding-worker.js +2 -0
  187. package/dist/{report-params-B44imUd4.js → report-params-B1RzkhJj.js} +1 -1
  188. package/dist/{report-params-SJfhKgaX.cjs → report-params-WDGrA4oP.cjs} +1 -1
  189. package/dist/rich-text-layout-ALlMoYOG.cjs +3 -0
  190. package/dist/rich-text-layout-Ct5WrY1g.js +102 -0
  191. package/dist/runtime-BjKBI530.js +168 -0
  192. package/dist/runtime-CBFEPKEs.cjs +1 -0
  193. package/dist/sbom.cdx.json +3982 -0
  194. package/dist/server/node.d.cts +106 -2
  195. package/dist/server/node.d.ts +106 -2
  196. package/dist/server-node.cjs +5 -1
  197. package/dist/server-node.js +4634 -539
  198. package/dist/server.cjs +1 -1
  199. package/dist/server.d.cts +780 -5
  200. package/dist/server.d.ts +780 -5
  201. package/dist/server.js +773 -691
  202. package/dist/sha256-BshdOkCC.cjs +1 -0
  203. package/dist/sha256-DTG-Gq8i.js +157 -0
  204. package/dist/style-67OqfNed.js +73 -0
  205. package/dist/style-C22Pbv3T.cjs +1 -0
  206. package/dist/style.css +1 -1
  207. package/dist/template-bindings-C2SpvsMU.js +58 -0
  208. package/dist/template-bindings-CEtWyiLX.cjs +1 -0
  209. package/dist/template-catalog-BtR2JmCL.js +414 -0
  210. package/dist/template-catalog-C2NLdrwB.cjs +1 -0
  211. package/dist/{template-fragments-DFUpq5QM.cjs → template-fragments-BVsbxs4a.cjs} +1 -1
  212. package/dist/{template-fragments-CLkGo6To.js → template-fragments-By0aZC1D.js} +21 -21
  213. package/dist/{template-outline-B3xVkzSv.cjs → template-outline-BwRV_eRo.cjs} +1 -1
  214. package/dist/{template-outline-CFenM1PV.js → template-outline-cnWfT_LK.js} +3 -3
  215. package/dist/template-registry-C62vpv4a.cjs +1 -0
  216. package/dist/template-registry-Cw3vRTX2.js +801 -0
  217. package/dist/textwrap-BEIg2w8y.js +110 -0
  218. package/dist/textwrap-BI-yJ6Wt.cjs +4 -0
  219. package/dist/{tree-CqcQ99NM.js → tree-CjVZLRw7.js} +1 -1
  220. package/dist/vue/async.d.cts +189 -14
  221. package/dist/vue/async.d.ts +189 -14
  222. package/dist/vue/index.d.cts +246 -22
  223. package/dist/vue/index.d.ts +246 -22
  224. package/dist/vue-async.cjs +1 -1
  225. package/dist/vue-async.js +3 -3
  226. package/dist/vue.cjs +1 -1
  227. package/dist/vue.js +80 -78
  228. package/dist/{workbook-session-BfK1yHOO.js → workbook-session-BeSO8PFB.js} +5460 -5295
  229. package/dist/{workbook-session-DNa2RHNG.cjs → workbook-session-Cbts-22R.cjs} +19 -19
  230. package/dist/worker.cjs +1 -1
  231. package/dist/worker.d.cts +104 -2
  232. package/dist/worker.d.ts +104 -2
  233. package/dist/worker.js +12 -156
  234. package/dist/xlsx-node.cjs +35 -35
  235. package/dist/xlsx-node.js +2138 -2137
  236. package/dist/xlsx.cjs +4 -4
  237. package/dist/xlsx.d.cts +24 -10
  238. package/dist/xlsx.d.ts +24 -10
  239. package/dist/xlsx.js +303 -277
  240. package/package.json +7 -4
  241. package/dist/ParamEditor-CflQV3eQ.js +0 -526
  242. package/dist/ParamEditor-vIDzvpPV.cjs +0 -1
  243. package/dist/ReportPreview-CvbqLUzM.cjs +0 -6
  244. package/dist/ReportPreview-D_ywJ_-H.js +0 -4533
  245. package/dist/assets-C2U-e-Sz.cjs +0 -4
  246. package/dist/assets-Q0wUwNrV.js +0 -217
  247. package/dist/batch-DzaTNLWI.js +0 -371
  248. package/dist/batch-xMkqYiTr.cjs +0 -1
  249. package/dist/capabilities-CK_7hizc.js +0 -63
  250. package/dist/capabilities-CsZ-pNHR.cjs +0 -1
  251. package/dist/config-0UIohTS7.cjs +0 -1
  252. package/dist/config-Dt9NtCPl.js +0 -566
  253. package/dist/data-explanation-BktvER5B.cjs +0 -1
  254. package/dist/data-explanation-C_J6jYNi.js +0 -16
  255. package/dist/defaults-DXhiM1ZD.js +0 -10
  256. package/dist/defaults-xhmcLLrf.cjs +0 -1
  257. package/dist/designer-Ci1LizA9.js +0 -5020
  258. package/dist/designer-rtmVIIdN.cjs +0 -2
  259. package/dist/grid-strokes-Cr7DwUux.cjs +0 -1
  260. package/dist/grid-strokes-DyyG1q_o.js +0 -53
  261. package/dist/json-snapshot-BeFT3Tso.js +0 -1952
  262. package/dist/json-snapshot-D1NTP2oI.cjs +0 -2
  263. package/dist/matrix-DVyWiYsd.cjs +0 -1
  264. package/dist/matrix-yZsGnldA.js +0 -227
  265. package/dist/page-window-index-CIuT4BAv.js +0 -43
  266. package/dist/page-window-index-DEjnM6IB.cjs +0 -1
  267. package/dist/param-validation-BlHHXs6u.js +0 -153
  268. package/dist/param-validation-DCK039V1.cjs +0 -1
  269. package/dist/progress-7OSZbFok.js +0 -39
  270. package/dist/progress-BnLiS5eH.cjs +0 -1
  271. package/dist/render-plan-7xpGrCEl.cjs +0 -1
  272. package/dist/render-plan-Ck6koX9L.js +0 -13
  273. package/dist/style-CQ1PK8ZB.js +0 -67
  274. package/dist/style-UgIJSA1F.cjs +0 -1
  275. package/dist/task-events-DQ276fn2.cjs +0 -1
  276. package/dist/task-events-Dpsvf_t2.js +0 -47
  277. package/dist/template-bindings-BJR4k7qZ.cjs +0 -1
  278. package/dist/template-bindings-Daui7hLF.js +0 -252
  279. package/dist/template-registry-COXDEJEM.js +0 -570
  280. package/dist/template-registry-D3SjENi6.cjs +0 -1
  281. package/dist/validate-BJ5HIWY8.cjs +0 -1
  282. package/dist/validate-CkQBWCeg.js +0 -163
@@ -0,0 +1,168 @@
1
+ import { H as R, I as W, R as y, J as C, E as O, m as X, G as z, K as H, b as K, P as Q, n as Y } from "./json-snapshot-D6ioHth9.js";
2
+ import { g as M } from "./report-params-B1RzkhJj.js";
3
+ import { d as $, r as Z, R as ee } from "./param-validation-Do7Eg8Zv.js";
4
+ import { t as P, b as x, D as te, v as se, c as T, R as D } from "./sha256-DTG-Gq8i.js";
5
+ import { a as ae } from "./template-registry-Cw3vRTX2.js";
6
+ import { T as re } from "./tree-CjVZLRw7.js";
7
+ import { r as j } from "./assets-CqIbfbTr.js";
8
+ import { s as S, a as J, d as oe, e as ne, r as ce } from "./prepared-DqtpvRTn.js";
9
+ function I(e = []) {
10
+ return e.map(({ code: s, message: r, severity: i, pageIndex: t, componentIndex: a }) => ({ code: s, message: r, severity: i, path: a < 0 ? `$.pages.${t}` : `$.pages.${t}.components.${a}` }));
11
+ }
12
+ async function _(e, s, r = Date.now()) {
13
+ const i = e.prepared, t = e.format === "pdf" ? await import("@agile-team/mach-report/pdf") : void 0;
14
+ P(e.signal);
15
+ const a = e.pdf?.customFontFaces ?? (e.pdf?.customFontBytes ? { regular: e.pdf.customFontBytes } : void 0), p = t && a ? t.createFontBytesMeasurer(a) : void 0, m = R(e), c = await m.run("encode", async () => {
16
+ let u;
17
+ if (e.format === "pdf") {
18
+ P(e.signal);
19
+ const n = await t.renderPlanToPdf(i.plan, { ...e.pdf, ...p ? { measurer: p } : {}, fidelity: e.fidelity, signal: e.signal, onProgress: (f, d) => m.progress("encode", f, d) });
20
+ u = n.bytes, i.diagnostics.push(...I(n.diagnostics)), i.diagnostics.push(...n.fidelityWarnings.map((f) => ({ code: "pdf-fidelity", message: f, severity: "warning" })), ...n.pageErrors.map((f) => ({ code: "pdf-page", message: f, severity: "error" }))), n.unsupportedTextCount && i.diagnostics.push({ code: "pdf-font", message: `${n.unsupportedTextCount} 段文本包含当前字体不支持的字符`, severity: "warning" });
21
+ } else {
22
+ const { renderPlanToXlsx: n } = await import("@agile-team/mach-report/xlsx");
23
+ P(e.signal);
24
+ const f = await n(i.plan, { ...e.xlsx, fidelity: e.fidelity, signal: e.signal, onProgress: (d, v) => m.progress("encode", d, v) });
25
+ u = new Uint8Array(f.buffer), i.diagnostics.push(...I(f.diagnostics)), i.diagnostics.push(...f.warnings.map((d) => ({ code: "xlsx-fidelity", message: d, severity: "warning" })));
26
+ }
27
+ return P(e.signal), u;
28
+ });
29
+ x(s, "maxOutputBytes", c.byteLength);
30
+ const { plan: o, ...w } = i;
31
+ return { ...w, bytes: c, format: e.format, contentType: e.format === "pdf" ? "application/pdf" : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", stats: { ...w.stats, durationMs: Date.now() - r, outputBytes: c.byteLength } };
32
+ }
33
+ function N(e) {
34
+ return { ...e, reportIds: [...e.reportIds], ...e.params ? { params: { ...e.params } } : {} };
35
+ }
36
+ function A(e, s) {
37
+ if (s.length === 0) throw new y("config", "缺少报表 ID");
38
+ return s.map((r) => {
39
+ if (!Object.prototype.hasOwnProperty.call(e, r)) throw new y("config", `未注册报表 ${r}`);
40
+ return e[r];
41
+ });
42
+ }
43
+ function k(e) {
44
+ return e.grid?.cells.reduce((s, r) => s + r.reduce((i, t) => i + (t ? 1 + (t.children?.reduce((a, p) => a + k(p), 0) ?? 0) : 0), 0), 0) ?? 0;
45
+ }
46
+ function ie(e, s, r) {
47
+ return e.pages.reduce((i, t) => i + t.components.reduce((a, p) => p.kind !== "list" ? a + k(p) : a + Y(p, s, r), 0), 0);
48
+ }
49
+ function de(e, s = Object.keys(e)) {
50
+ return A(e, s).map((r, i) => {
51
+ const t = s[i], a = M(e, [t]);
52
+ return {
53
+ id: t,
54
+ params: JSON.parse(JSON.stringify(a)),
55
+ paramsSchema: Z(a),
56
+ datasetsSchema: Object.fromEntries(Object.entries(r.dataSchema ?? {}).map(([p, m]) => [p, W(typeof r.template == "function" ? void 0 : r.template, p, m)])),
57
+ capabilities: {
58
+ save: !!r.provider?.save,
59
+ export: !!r.provider?.export,
60
+ templates: !!r.provider?.templates
61
+ }
62
+ };
63
+ });
64
+ }
65
+ function U(e, s) {
66
+ A(e, s.reportIds);
67
+ const r = $(M(e, s.reportIds), s.params), i = s.reportIds.flatMap((a) => $(M(e, [a]), s.params).issues), t = new Map(i.map((a) => [JSON.stringify(a), a]));
68
+ return { ...r, ok: t.size === 0, issues: [...t.values()] };
69
+ }
70
+ function V(e, s) {
71
+ const r = ae(e.plan);
72
+ if (!r.ok) throw new y("validate", `执行器返回无效计划:${r.errors[0]?.path}`);
73
+ const i = e.plan.pages.length, t = e.plan.pages.reduce((a, p) => a + p.components.reduce((m, c) => m + k(c), 0), 0);
74
+ return x(s, "maxRows", e.stats.rows), x(s, "maxPages", i), x(s, "maxCells", t), { ...e, stats: { ...e.stats, pages: i, cells: t } };
75
+ }
76
+ function q(e, s) {
77
+ const r = U(e.reports, s);
78
+ if (!r.ok) throw new ee(r.issues);
79
+ }
80
+ function ye(e) {
81
+ const s = { ...te, ...e.budget };
82
+ se(s);
83
+ const r = async (t, a) => {
84
+ const p = Date.now();
85
+ let m = 0, c = 0;
86
+ const o = [], w = {}, u = [], n = Object.fromEntries(Object.entries(e.reports).map(([l, g]) => [l, {
87
+ ...g,
88
+ pagination: { ...e.pagination, ...g.pagination, ...a ? { measurer: a } : {} },
89
+ dataValidation: {
90
+ ...g.dataValidation,
91
+ maxRows: Math.min(s.maxRows ?? 1e5, g.dataValidation?.maxRows ?? 1 / 0),
92
+ maxCells: Math.min(s.maxCells ?? 2e6, g.dataValidation?.maxCells ?? 1 / 0)
93
+ }
94
+ }])), d = await X(n, { maxPages: s.maxPages, maxCells: s.maxCells, onDatasets: (l, g, h) => {
95
+ try {
96
+ m += z(h, g, { maxRows: s.maxRows, signal: t.signal });
97
+ } catch (b) {
98
+ throw b instanceof re ? new D("budget", b.message, "$.budget.maxRows") : b;
99
+ }
100
+ x(s, "maxRows", m), c += ie(h, g, n[l]?.pagination), x(s, "maxCells", c);
101
+ } })({ ...t, params: t.params ?? {}, onWarning: (l) => o.push({ code: "layout", message: l, severity: "warning" }), onQueryResult: (l, g, h = 0) => {
102
+ const b = H(h, l);
103
+ Object.defineProperty(w, l, { value: { revision: g.revision, sourceToken: g.sourceToken }, enumerable: !0, writable: !0 }), u.push({ reportId: l, reportIndex: h, reportScope: b, ...g.revision === void 0 ? {} : { revision: g.revision }, ...g.sourceToken === void 0 ? {} : { sourceToken: g.sourceToken } }), o.push(...(g.diagnostics ?? []).map((E) => ({ ...E, ...E.target ? { target: {
104
+ ...E.target,
105
+ reportScope: b,
106
+ ...E.target.tableId ? { tableId: JSON.stringify([h, l, E.target.tableId]) } : {}
107
+ } } : {} })));
108
+ } }).catch((l) => {
109
+ throw l instanceof y && l.cause instanceof K ? new D("budget", l.cause.message, "$.budget.maxPages") : l instanceof y && l.cause instanceof Q ? new D("budget", l.cause.message, "$.budget.maxCells") : l;
110
+ });
111
+ P(t.signal);
112
+ const v = e.assets ? await R(t).run("assets", () => j(d, { ...e.assets, signal: t.signal })) : { plan: d, diagnostics: [] }, F = v.plan;
113
+ o.push(...I(v.diagnostics));
114
+ const L = F.pages.reduce((l, g) => l + g.components.reduce((h, b) => h + k(b), 0), 0);
115
+ x(s, "maxPages", F.pages.length), x(s, "maxCells", L);
116
+ const B = ce(t.pdf), G = e.pagination?.measurer || Object.values(e.reports).some((l) => l.pagination?.measurer);
117
+ return { plan: F, diagnostics: o, revisions: w, sources: u, layout: { textMetrics: B ? "font-bytes" : G ? "provided" : "heuristic", ...B ? { fontFingerprint: B } : {} }, stats: { rows: m, pages: F.pages.length, cells: L, durationMs: Date.now() - p } };
118
+ }, i = async (t) => {
119
+ const a = Date.now();
120
+ if (t.format !== "pdf" && t.format !== "xlsx") throw new y("config", "不支持的报表导出格式");
121
+ const p = t.format === "pdf" ? await import("@agile-team/mach-report/pdf") : void 0;
122
+ P(t.signal);
123
+ const m = t.pdf?.customFontFaces ?? (t.pdf?.customFontBytes ? { regular: t.pdf.customFontBytes } : void 0), c = p && m ? p.createFontBytesMeasurer(m) : void 0, o = await r(t, c);
124
+ return P(t.signal), _({ ...t, prepared: o }, s, a);
125
+ };
126
+ return {
127
+ describe: (t) => de(e.reports, t),
128
+ validate: (t) => U(e.reports, t),
129
+ prepare: (t) => T(t.signal, s.maxDurationMs, async (a) => {
130
+ const { signal: p, onEvent: m, ...c } = N(t), o = { ...c, ...c.pdf ? { pdf: S(c.pdf) } : {}, taskId: c.taskId ?? C() }, w = m ? (v) => O(m, v, a) : void 0, u = { ...o, signal: a, onEvent: w };
131
+ R(u).runSync("validate", () => q(e, o));
132
+ let n;
133
+ const f = o.pdf?.customFontFaces ?? (o.pdf?.customFontBytes ? { regular: o.pdf.customFontBytes } : void 0);
134
+ if (!e.executor && f) {
135
+ const v = await import("@agile-team/mach-report/pdf");
136
+ P(a), n = v.createFontBytesMeasurer(f);
137
+ }
138
+ const d = e.executor ? await e.executor.prepare(o, a, w) : await r(u, n);
139
+ return V(d, s);
140
+ }),
141
+ exportPrepared: (t) => T(t.signal, s.maxDurationMs, async (a) => {
142
+ const p = Date.now(), { signal: m, onEvent: c, ...o } = t, w = V(oe(t.prepared, s.maxPreparedBytes ?? 64e6, a), s), u = { ...o, xlsx: J(o.xlsx), prepared: w, ...o.pdf ? { pdf: S(o.pdf) } : {}, taskId: o.taskId ?? C() };
143
+ if (u.format !== "pdf" && u.format !== "xlsx") throw new y("config", "不支持的报表导出格式");
144
+ const n = c ? (d) => O(c, d, a) : void 0;
145
+ if (e.executor) {
146
+ if (!e.executor.exportPrepared) throw new y("config", "执行器未实现 exportPrepared;请升级执行器或显式使用本地运行时");
147
+ const d = await e.executor.exportPrepared(u, a, n);
148
+ return x(s, "maxRows", d.stats.rows), x(s, "maxPages", d.stats.pages), x(s, "maxCells", d.stats.cells), x(s, "maxOutputBytes", d.bytes.byteLength), { ...d, stats: { ...d.stats, outputBytes: d.bytes.byteLength } };
149
+ }
150
+ const f = { ...u, signal: a, onEvent: n };
151
+ if (R(f).runSync("validate", () => ne(f)), e.assets) {
152
+ const d = await R(f).run("assets", () => j(w.plan, { ...e.assets, signal: a }));
153
+ w.plan = d.plan, w.diagnostics.push(...I(d.diagnostics));
154
+ }
155
+ return _(f, s, p);
156
+ }),
157
+ export: (t) => T(t.signal, s.maxDurationMs, async (a) => {
158
+ const { signal: p, onEvent: m, ...c } = N(t), o = { ...c, xlsx: J(c.xlsx), ...c.pdf ? { pdf: S(c.pdf) } : {}, taskId: c.taskId ?? C() }, w = m ? (f) => O(m, f, a) : void 0, u = { ...o, signal: a, onEvent: w };
159
+ if (R(u).runSync("validate", () => q(e, o)), o.format !== "pdf" && o.format !== "xlsx") throw new y("config", "不支持的报表导出格式");
160
+ const n = e.executor ? await e.executor.export(o, a, w) : await i(u);
161
+ return x(s, "maxRows", n.stats.rows), x(s, "maxPages", n.stats.pages), x(s, "maxCells", n.stats.cells), x(s, "maxOutputBytes", n.bytes.byteLength), { ...n, stats: { ...n.stats, outputBytes: n.bytes.byteLength } };
162
+ })
163
+ };
164
+ }
165
+ export {
166
+ ye as c,
167
+ V as e
168
+ };
@@ -0,0 +1 @@
1
+ "use strict";var J=Object.create;var D=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var W=(e,t,a,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of N(t))!X.call(e,s)&&s!==a&&D(e,s,{get:()=>t[s],enumerable:!(c=V(t,s))||c.enumerable});return e};var E=(e,t,a)=>(a=e!=null?J(U(e)):{},W(t||!e||!e.__esModule?D(a,"default",{value:e,enumerable:!0}):a,e));const n=require("./json-snapshot-DknkjvxP.cjs"),F=require("./report-params-WDGrA4oP.cjs"),k=require("./param-validation-C3HlcLLO.cjs"),o=require("./sha256-BshdOkCC.cjs"),z=require("./template-registry-C62vpv4a.cjs"),G=require("./tree-BX380Rr7.cjs"),M=require("./assets-e4YSke8n.cjs"),b=require("./prepared-DdrjLC7L.cjs");function I(e=[]){return e.map(({code:t,message:a,severity:c,pageIndex:s,componentIndex:r})=>({code:t,message:a,severity:c,path:r<0?`$.pages.${s}`:`$.pages.${s}.components.${r}`}))}async function q(e,t,a=Date.now()){const c=e.prepared,s=e.format==="pdf"?await import("@agile-team/mach-report/pdf"):void 0;o.throwIfAborted(e.signal);const r=e.pdf?.customFontFaces??(e.pdf?.customFontBytes?{regular:e.pdf.customFontBytes}:void 0),u=s&&r?s.createFontBytesMeasurer(r):void 0,m=n.createReportTaskReporter(e),p=await m.run("encode",async()=>{let x;if(e.format==="pdf"){o.throwIfAborted(e.signal);const d=await s.renderPlanToPdf(c.plan,{...e.pdf,...u?{measurer:u}:{},fidelity:e.fidelity,signal:e.signal,onProgress:(f,l)=>m.progress("encode",f,l)});x=d.bytes,c.diagnostics.push(...I(d.diagnostics)),c.diagnostics.push(...d.fidelityWarnings.map(f=>({code:"pdf-fidelity",message:f,severity:"warning"})),...d.pageErrors.map(f=>({code:"pdf-page",message:f,severity:"error"}))),d.unsupportedTextCount&&c.diagnostics.push({code:"pdf-font",message:`${d.unsupportedTextCount} 段文本包含当前字体不支持的字符`,severity:"warning"})}else{const{renderPlanToXlsx:d}=await import("@agile-team/mach-report/xlsx");o.throwIfAborted(e.signal);const f=await d(c.plan,{...e.xlsx,fidelity:e.fidelity,signal:e.signal,onProgress:(l,h)=>m.progress("encode",l,h)});x=new Uint8Array(f.buffer),c.diagnostics.push(...I(f.diagnostics)),c.diagnostics.push(...f.warnings.map(l=>({code:"xlsx-fidelity",message:l,severity:"warning"})))}return o.throwIfAborted(e.signal),x});o.assertBudget(t,"maxOutputBytes",p.byteLength);const{plan:i,...y}=c;return{...y,bytes:p,format:e.format,contentType:e.format==="pdf"?"application/pdf":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",stats:{...y.stats,durationMs:Date.now()-a,outputBytes:p.byteLength}}}function A(e){return{...e,reportIds:[...e.reportIds],...e.params?{params:{...e.params}}:{}}}function $(e,t){if(t.length===0)throw new n.ReportSourceError("config","缺少报表 ID");return t.map(a=>{if(!Object.prototype.hasOwnProperty.call(e,a))throw new n.ReportSourceError("config",`未注册报表 ${a}`);return e[a]})}function T(e){return e.grid?.cells.reduce((t,a)=>t+a.reduce((c,s)=>c+(s?1+(s.children?.reduce((r,u)=>r+T(u),0)??0):0),0),0)??0}function Q(e,t,a){return e.pages.reduce((c,s)=>c+s.components.reduce((r,u)=>u.kind!=="list"?r+T(u):r+n.estimateListLayoutCells(u,t,a),0),0)}function H(e,t=Object.keys(e)){return $(e,t).map((a,c)=>{const s=t[c],r=F.getReportParamDefs(e,[s]);return{id:s,params:JSON.parse(JSON.stringify(r)),paramsSchema:k.reportParamsJsonSchema(r),datasetsSchema:Object.fromEntries(Object.entries(a.dataSchema??{}).map(([u,m])=>[u,n.templateDatasetJsonSchema(typeof a.template=="function"?void 0:a.template,u,m)])),capabilities:{save:!!a.provider?.save,export:!!a.provider?.export,templates:!!a.provider?.templates}}})}function j(e,t){$(e,t.reportIds);const a=k.validateReportParams(F.getReportParamDefs(e,t.reportIds),t.params),c=t.reportIds.flatMap(r=>k.validateReportParams(F.getReportParamDefs(e,[r]),t.params).issues),s=new Map(c.map(r=>[JSON.stringify(r),r]));return{...a,ok:s.size===0,issues:[...s.values()]}}function O(e,t){const a=z.validateRenderPlan(e.plan);if(!a.ok)throw new n.ReportSourceError("validate",`执行器返回无效计划:${a.errors[0]?.path}`);const c=e.plan.pages.length,s=e.plan.pages.reduce((r,u)=>r+u.components.reduce((m,p)=>m+T(p),0),0);return o.assertBudget(t,"maxRows",e.stats.rows),o.assertBudget(t,"maxPages",c),o.assertBudget(t,"maxCells",s),{...e,stats:{...e.stats,pages:c,cells:s}}}function L(e,t){const a=j(e.reports,t);if(!a.ok)throw new k.ReportParamValidationError(a.issues)}function K(e){const t={...o.DEFAULT_REPORT_RUNTIME_BUDGET,...e.budget};o.validateBudget(t);const a=async(s,r)=>{const u=Date.now();let m=0,p=0;const i=[],y={},x=[],d=Object.fromEntries(Object.entries(e.reports).map(([g,w])=>[g,{...w,pagination:{...e.pagination,...w.pagination,...r?{measurer:r}:{}},dataValidation:{...w.dataValidation,maxRows:Math.min(t.maxRows??1e5,w.dataValidation?.maxRows??1/0),maxCells:Math.min(t.maxCells??2e6,w.dataValidation?.maxCells??1/0)}}])),l=await n.createReportSource(d,{maxPages:t.maxPages,maxCells:t.maxCells,onDatasets:(g,w,v)=>{try{m+=n.templateDatasetRowCount(v,w,{maxRows:t.maxRows,signal:s.signal})}catch(R){throw R instanceof G.TreeRowLimitError?new o.ReportRuntimeError("budget",R.message,"$.budget.maxRows"):R}o.assertBudget(t,"maxRows",m),p+=Q(v,w,d[g]?.pagination),o.assertBudget(t,"maxCells",p)}})({...s,params:s.params??{},onWarning:g=>i.push({code:"layout",message:g,severity:"warning"}),onQueryResult:(g,w,v=0)=>{const R=n.reportOccurrenceScope(v,g);Object.defineProperty(y,g,{value:{revision:w.revision,sourceToken:w.sourceToken},enumerable:!0,writable:!0}),x.push({reportId:g,reportIndex:v,reportScope:R,...w.revision===void 0?{}:{revision:w.revision},...w.sourceToken===void 0?{}:{sourceToken:w.sourceToken}}),i.push(...(w.diagnostics??[]).map(P=>({...P,...P.target?{target:{...P.target,reportScope:R,...P.target.tableId?{tableId:JSON.stringify([v,g,P.target.tableId])}:{}}}:{}})))}}).catch(g=>{throw g instanceof n.ReportSourceError&&g.cause instanceof n.PaginatePageLimitError?new o.ReportRuntimeError("budget",g.cause.message,"$.budget.maxPages"):g instanceof n.ReportSourceError&&g.cause instanceof n.PaginateCellLimitError?new o.ReportRuntimeError("budget",g.cause.message,"$.budget.maxCells"):g});o.throwIfAborted(s.signal);const h=e.assets?await n.createReportTaskReporter(s).run("assets",()=>M.resolvePlanAssets(l,{...e.assets,signal:s.signal})):{plan:l,diagnostics:[]},B=h.plan;i.push(...I(h.diagnostics));const C=B.pages.reduce((g,w)=>g+w.components.reduce((v,R)=>v+T(R),0),0);o.assertBudget(t,"maxPages",B.pages.length),o.assertBudget(t,"maxCells",C);const S=b.reportFontFingerprint(s.pdf),_=e.pagination?.measurer||Object.values(e.reports).some(g=>g.pagination?.measurer);return{plan:B,diagnostics:i,revisions:y,sources:x,layout:{textMetrics:S?"font-bytes":_?"provided":"heuristic",...S?{fontFingerprint:S}:{}},stats:{rows:m,pages:B.pages.length,cells:C,durationMs:Date.now()-u}}},c=async s=>{const r=Date.now();if(s.format!=="pdf"&&s.format!=="xlsx")throw new n.ReportSourceError("config","不支持的报表导出格式");const u=s.format==="pdf"?await import("@agile-team/mach-report/pdf"):void 0;o.throwIfAborted(s.signal);const m=s.pdf?.customFontFaces??(s.pdf?.customFontBytes?{regular:s.pdf.customFontBytes}:void 0),p=u&&m?u.createFontBytesMeasurer(m):void 0,i=await a(s,p);return o.throwIfAborted(s.signal),q({...s,prepared:i},t,r)};return{describe:s=>H(e.reports,s),validate:s=>j(e.reports,s),prepare:s=>o.controlled(s.signal,t.maxDurationMs,async r=>{const{signal:u,onEvent:m,...p}=A(s),i={...p,...p.pdf?{pdf:b.snapshotPdfFonts(p.pdf)}:{},taskId:p.taskId??n.reportTaskId()},y=m?h=>n.notifyReportTaskEvent(m,h,r):void 0,x={...i,signal:r,onEvent:y};n.createReportTaskReporter(x).runSync("validate",()=>L(e,i));let d;const f=i.pdf?.customFontFaces??(i.pdf?.customFontBytes?{regular:i.pdf.customFontBytes}:void 0);if(!e.executor&&f){const h=await import("@agile-team/mach-report/pdf");o.throwIfAborted(r),d=h.createFontBytesMeasurer(f)}const l=e.executor?await e.executor.prepare(i,r,y):await a(x,d);return O(l,t)}),exportPrepared:s=>o.controlled(s.signal,t.maxDurationMs,async r=>{const u=Date.now(),{signal:m,onEvent:p,...i}=s,y=O(b.snapshotPreparedReport(s.prepared,t.maxPreparedBytes??64e6,r),t),x={...i,xlsx:b.snapshotXlsxOptions(i.xlsx),prepared:y,...i.pdf?{pdf:b.snapshotPdfFonts(i.pdf)}:{},taskId:i.taskId??n.reportTaskId()};if(x.format!=="pdf"&&x.format!=="xlsx")throw new n.ReportSourceError("config","不支持的报表导出格式");const d=p?l=>n.notifyReportTaskEvent(p,l,r):void 0;if(e.executor){if(!e.executor.exportPrepared)throw new n.ReportSourceError("config","执行器未实现 exportPrepared;请升级执行器或显式使用本地运行时");const l=await e.executor.exportPrepared(x,r,d);return o.assertBudget(t,"maxRows",l.stats.rows),o.assertBudget(t,"maxPages",l.stats.pages),o.assertBudget(t,"maxCells",l.stats.cells),o.assertBudget(t,"maxOutputBytes",l.bytes.byteLength),{...l,stats:{...l.stats,outputBytes:l.bytes.byteLength}}}const f={...x,signal:r,onEvent:d};if(n.createReportTaskReporter(f).runSync("validate",()=>b.checkPreparedFont(f)),e.assets){const l=await n.createReportTaskReporter(f).run("assets",()=>M.resolvePlanAssets(y.plan,{...e.assets,signal:r}));y.plan=l.plan,y.diagnostics.push(...I(l.diagnostics))}return q(f,t,u)}),export:s=>o.controlled(s.signal,t.maxDurationMs,async r=>{const{signal:u,onEvent:m,...p}=A(s),i={...p,xlsx:b.snapshotXlsxOptions(p.xlsx),...p.pdf?{pdf:b.snapshotPdfFonts(p.pdf)}:{},taskId:p.taskId??n.reportTaskId()},y=m?f=>n.notifyReportTaskEvent(m,f,r):void 0,x={...i,signal:r,onEvent:y};if(n.createReportTaskReporter(x).runSync("validate",()=>L(e,i)),i.format!=="pdf"&&i.format!=="xlsx")throw new n.ReportSourceError("config","不支持的报表导出格式");const d=e.executor?await e.executor.export(i,r,y):await c(x);return o.assertBudget(t,"maxRows",d.stats.rows),o.assertBudget(t,"maxPages",d.stats.pages),o.assertBudget(t,"maxCells",d.stats.cells),o.assertBudget(t,"maxOutputBytes",d.bytes.byteLength),{...d,stats:{...d.stats,outputBytes:d.bytes.byteLength}}})}}exports.createReportRuntime=K;exports.enforcePrepared=O;