drizzle-cube 0.10.1 → 0.11.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 (319) hide show
  1. package/dist/adapters/ActivityGridChart.config-XMtoteb6.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-h1AXPvn0.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-DYf9wufo.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-We6b53aT.js +2 -0
  5. package/dist/adapters/BarChart.config-4SX44IYv.cjs +1 -0
  6. package/dist/adapters/BarChart.config-CwBnyptL.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-BzNe-FlW.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-mfAHqmcp.js +2 -0
  9. package/dist/adapters/BubbleChart.config-CBT5jMdc.cjs +1 -0
  10. package/dist/adapters/BubbleChart.config-DxG_Umal.js +2 -0
  11. package/dist/adapters/CandlestickChart.config-Cqw3XP1h.js +2 -0
  12. package/dist/adapters/CandlestickChart.config-DPSSlzUD.cjs +1 -0
  13. package/dist/adapters/DataTable.config-DS1bvaDu.js +2 -0
  14. package/dist/adapters/DataTable.config-D_NsMeyz.cjs +1 -0
  15. package/dist/adapters/DotStripChart.config-BApWn6QV.cjs +1 -0
  16. package/dist/adapters/DotStripChart.config-Bdk5-YfB.js +2 -0
  17. package/dist/adapters/FunnelChart.config-BT5up_Bg.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-ISZiz9fn.js +2 -0
  19. package/dist/adapters/GaugeChart.config-Biaq1cKc.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-BjGfB84t.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-Bmca8KiH.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-uWvR0B-N.js +2 -0
  23. package/dist/adapters/KpiDelta.config-CJeDdj_1.js +2 -0
  24. package/dist/adapters/KpiDelta.config-CKr9pAxL.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-6YLEF2fy.cjs +1 -0
  26. package/dist/adapters/KpiNumber.config-C00M46GA.js +2 -0
  27. package/dist/adapters/KpiText.config-C8Av_D2W.cjs +1 -0
  28. package/dist/adapters/KpiText.config-bKTHob0C.js +2 -0
  29. package/dist/adapters/LineChart.config-DH68HT_B.js +2 -0
  30. package/dist/adapters/LineChart.config-DPq7GvL9.cjs +1 -0
  31. package/dist/adapters/MarkdownChart.config-CaaJPO3c.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-ca_UyhWJ.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-C1Il0IqL.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-DMOnkmb6.js +2 -0
  35. package/dist/adapters/PieChart.config-Bg-8cxWK.js +2 -0
  36. package/dist/adapters/PieChart.config-joJcF--K.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-B2sltKsI.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-BlCedy1v.js +2 -0
  39. package/dist/adapters/RadarChart.config-DD1pX6FZ.js +2 -0
  40. package/dist/adapters/RadarChart.config-DVCCLSVw.cjs +1 -0
  41. package/dist/adapters/RadialBarChart.config--VIE2jMM.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-BZwyWhTg.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-CTBQc-2r.js +2 -0
  44. package/dist/adapters/RecordsTable.config-DPdO0DL5.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-PGVxnkRL.js +2 -0
  46. package/dist/adapters/RetentionCombinedChart.config-mX5PMh82.cjs +1 -0
  47. package/dist/adapters/RetentionHeatmap.config-Co-JMzBm.js +2 -0
  48. package/dist/adapters/RetentionHeatmap.config-Cub3-ksy.cjs +1 -0
  49. package/dist/adapters/SankeyChart.config-BkIyUcAE.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-DGTnRmYg.js +2 -0
  51. package/dist/adapters/ScatterChart.config-CdZrBorg.js +2 -0
  52. package/dist/adapters/ScatterChart.config-CwN9niUL.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-D0ZkRSJv.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-RF3uu5Sa.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-B2Yn_V7p.cjs +1 -0
  56. package/dist/adapters/TreeMapChart.config-diJtcs4D.js +2 -0
  57. package/dist/adapters/WaterfallChart.config-B10PxftT.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-BImlkLmR.js +2 -0
  59. package/dist/adapters/chartConfigHelpers-BhME7ow_.cjs +1 -0
  60. package/dist/adapters/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
  61. package/dist/adapters/{compiler-Dw5tYox7.cjs → compiler-B-yljK02.cjs} +6 -6
  62. package/dist/adapters/{compiler-C8fOs43d.js → compiler-BhityGUO.js} +197 -186
  63. package/dist/adapters/core/index.cjs +1 -1
  64. package/dist/adapters/core/index.js +1 -1
  65. package/dist/adapters/{core-BP6GiYzO.cjs → core-CQOrzBNh.cjs} +1 -1
  66. package/dist/adapters/{core-z6vXJ8nF.js → core-xZE0miIu.js} +2 -2
  67. package/dist/adapters/express/index.cjs +1 -1
  68. package/dist/adapters/express/index.js +5 -5
  69. package/dist/adapters/fastify/index.cjs +1 -1
  70. package/dist/adapters/fastify/index.js +5 -5
  71. package/dist/adapters/{handler-CI3Rt-Zt.js → handler-ByeQ0-1r.js} +237 -234
  72. package/dist/adapters/handler-DSNmfv1R.cjs +16 -0
  73. package/dist/adapters/hono/index.cjs +1 -1
  74. package/dist/adapters/hono/index.js +4 -4
  75. package/dist/adapters/mcp-app-html-CNp0VqS_.cjs +1 -0
  76. package/dist/adapters/mcp-app-html-CvWoYMO3.js +5 -0
  77. package/dist/adapters/mcp-app-html.cjs +1 -1
  78. package/dist/adapters/mcp-app-html.js +1 -1
  79. package/dist/adapters/mcp-tools.cjs +1 -1
  80. package/dist/adapters/mcp-tools.js +3 -3
  81. package/dist/adapters/{mcp-transport-DpS_e0gL.js → mcp-transport-Cy6n4uj1.js} +1 -1
  82. package/dist/adapters/{mcp-transport-Bc7-KSG_.cjs → mcp-transport-DnLP5FPL.cjs} +1 -1
  83. package/dist/adapters/nextjs/index.cjs +1 -1
  84. package/dist/adapters/nextjs/index.js +5 -5
  85. package/dist/adapters/{openai-7064EJ1j.cjs → openai-BQl0yJCS.cjs} +1 -1
  86. package/dist/adapters/{openai-CnUBYFyY.js → openai-C4HrjyJj.js} +1 -1
  87. package/dist/adapters/{openai-DpGdZL3m.js → openai-D3Nt6Bj7.js} +1 -1
  88. package/dist/adapters/{openai-B0mByiYQ.cjs → openai-z1ai-G4Q.cjs} +1 -1
  89. package/dist/adapters/{utils-CN_bxSiq.js → utils-BaxFceDq.js} +6 -1
  90. package/dist/adapters/{utils-CvC1czqb.cjs → utils-a2p2B6x8.cjs} +2 -2
  91. package/dist/adapters/utils.cjs +1 -1
  92. package/dist/adapters/utils.js +1 -1
  93. package/dist/cjs/client/charts/chartConfigHelpers.d.ts +5 -0
  94. package/dist/cjs/client/components/AnalysisBuilder/types.d.ts +4 -0
  95. package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +6 -1
  96. package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
  97. package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
  98. package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
  99. package/dist/cjs/client/hooks/useAnalysisQuery.d.ts +6 -1
  100. package/dist/cjs/client/index.d.ts +2 -0
  101. package/dist/cjs/client/types.d.ts +5 -0
  102. package/dist/cjs/client/utils/gapFilling.d.ts +52 -0
  103. package/dist/cjs/client/utils/index.d.ts +1 -0
  104. package/dist/cjs/server/ai/query-schema.d.ts +1 -1
  105. package/dist/cjs/server/execution/result-post-processor.d.ts +4 -2
  106. package/dist/cjs/server/executor.d.ts +2 -0
  107. package/dist/cjs/server/gap-filler.d.ts +8 -43
  108. package/dist/cjs/server/types/core.d.ts +2 -0
  109. package/dist/cjs/server/types/cube.d.ts +12 -0
  110. package/dist/cjs/server/types/metadata.d.ts +5 -0
  111. package/dist/cjs/server/types/query.d.ts +2 -1
  112. package/dist/client/charts/chartConfigHelpers.d.ts +5 -0
  113. package/dist/client/charts.js +12 -12
  114. package/dist/client/chunks/{DashboardEditModal-5ZSP--FQ.js → DashboardEditModal-DifODH4h.js} +2360 -2548
  115. package/dist/client/chunks/DashboardEditModal-DifODH4h.js.map +1 -0
  116. package/dist/client/chunks/{DotStripChart-DTukhwG-.js → DotStripChart-B9IVCFPO.js} +3 -3
  117. package/dist/client/chunks/{DotStripChart-DTukhwG-.js.map → DotStripChart-B9IVCFPO.js.map} +1 -1
  118. package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js → ProportionBarChart-DieF9AzP.js} +3 -3
  119. package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js.map → ProportionBarChart-DieF9AzP.js.map} +1 -1
  120. package/dist/client/chunks/{RecordsTable-BC5l67Dc.js → RecordsTable-Mo3ai5_M.js} +4 -4
  121. package/dist/client/chunks/{RecordsTable-BC5l67Dc.js.map → RecordsTable-Mo3ai5_M.js.map} +1 -1
  122. package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js → RetentionCombinedChart-Bie4ADyA.js} +3 -3
  123. package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js.map → RetentionCombinedChart-Bie4ADyA.js.map} +1 -1
  124. package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js → RetentionHeatmap-qstIAx5B.js} +2 -2
  125. package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js.map → RetentionHeatmap-qstIAx5B.js.map} +1 -1
  126. package/dist/client/chunks/{analysis-builder-Db4umQtd.js → analysis-builder-D78aDJoL.js} +41 -41
  127. package/dist/client/chunks/analysis-builder-D78aDJoL.js.map +1 -0
  128. package/dist/client/chunks/{analysis-builder-shared-BEvvX6ln.js → analysis-builder-shared-CsIs4-Xf.js} +538 -523
  129. package/dist/client/chunks/analysis-builder-shared-CsIs4-Xf.js.map +1 -0
  130. package/dist/client/chunks/{chart-activity-grid-Bbc58UJD.js → chart-activity-grid-Ly_-2B-f.js} +7 -2
  131. package/dist/client/chunks/chart-activity-grid-Ly_-2B-f.js.map +1 -0
  132. package/dist/client/chunks/{chart-area-9uCXIvMN.js → chart-area-D3l-71Wy.js} +2 -2
  133. package/dist/client/chunks/{chart-area-9uCXIvMN.js.map → chart-area-D3l-71Wy.js.map} +1 -1
  134. package/dist/client/chunks/{chart-bar-C5a1T9Ce.js → chart-bar-BaTyQOqs.js} +3 -3
  135. package/dist/client/chunks/{chart-bar-C5a1T9Ce.js.map → chart-bar-BaTyQOqs.js.map} +1 -1
  136. package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js → chart-box-plot-Cem6PHjz.js} +2 -2
  137. package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js.map → chart-box-plot-Cem6PHjz.js.map} +1 -1
  138. package/dist/client/chunks/{chart-bubble-dt5ESb7m.js → chart-bubble-DFlfqCDG.js} +2 -2
  139. package/dist/client/chunks/{chart-bubble-dt5ESb7m.js.map → chart-bubble-DFlfqCDG.js.map} +1 -1
  140. package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js → chart-candlestick-BkAFBXtZ.js} +2 -2
  141. package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js.map → chart-candlestick-BkAFBXtZ.js.map} +1 -1
  142. package/dist/client/chunks/{chart-config-area-DsrZCIwF.js → chart-config-area-BnsRQ-MY.js} +35 -14
  143. package/dist/client/chunks/chart-config-area-BnsRQ-MY.js.map +1 -0
  144. package/dist/client/chunks/{chart-config-bar-BixSs43E.js → chart-config-bar-G2HJJBVV.js} +8 -7
  145. package/dist/client/chunks/chart-config-bar-G2HJJBVV.js.map +1 -0
  146. package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js → chart-config-kpi-delta-BIAq1Ftg.js} +2 -2
  147. package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js.map → chart-config-kpi-delta-BIAq1Ftg.js.map} +1 -1
  148. package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js → chart-config-kpi-number-Dgc4gIYu.js} +2 -2
  149. package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js.map → chart-config-kpi-number-Dgc4gIYu.js.map} +1 -1
  150. package/dist/client/chunks/{chart-config-line-CBF9Px9b.js → chart-config-line-DLkRs1Zr.js} +9 -8
  151. package/dist/client/chunks/chart-config-line-DLkRs1Zr.js.map +1 -0
  152. package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js → chart-config-pie-XrHim0C8.js} +2 -2
  153. package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js.map → chart-config-pie-XrHim0C8.js.map} +1 -1
  154. package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js → chart-config-radar-xNS6Juqc.js} +2 -2
  155. package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js.map → chart-config-radar-xNS6Juqc.js.map} +1 -1
  156. package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js → chart-config-radial-bar-ChUChsEe.js} +2 -2
  157. package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js.map → chart-config-radial-bar-ChUChsEe.js.map} +1 -1
  158. package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js → chart-config-tree-map-CnrJ7OC1.js} +2 -2
  159. package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js.map → chart-config-tree-map-CnrJ7OC1.js.map} +1 -1
  160. package/dist/client/chunks/{chart-data-table-zSjYEy0r.js → chart-data-table-Cxd0cdAl.js} +36 -36
  161. package/dist/client/chunks/{chart-data-table-zSjYEy0r.js.map → chart-data-table-Cxd0cdAl.js.map} +1 -1
  162. package/dist/client/chunks/{chart-funnel-CuOSCsbt.js → chart-funnel-71Kn4eeF.js} +2 -2
  163. package/dist/client/chunks/{chart-funnel-CuOSCsbt.js.map → chart-funnel-71Kn4eeF.js.map} +1 -1
  164. package/dist/client/chunks/{chart-gauge-DxKeqCCD.js → chart-gauge-BddS_9oS.js} +3 -3
  165. package/dist/client/chunks/{chart-gauge-DxKeqCCD.js.map → chart-gauge-BddS_9oS.js.map} +1 -1
  166. package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js → chart-heat-map-BQIsrn8m.js} +3 -3
  167. package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js.map → chart-heat-map-BQIsrn8m.js.map} +1 -1
  168. package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js → chart-kpi-delta-DndbqdZT.js} +3 -3
  169. package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js.map → chart-kpi-delta-DndbqdZT.js.map} +1 -1
  170. package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js → chart-kpi-number-DAbfoHMt.js} +5 -5
  171. package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js.map → chart-kpi-number-DAbfoHMt.js.map} +1 -1
  172. package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js → chart-kpi-text-D8oQgpxL.js} +3 -3
  173. package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js.map → chart-kpi-text-D8oQgpxL.js.map} +1 -1
  174. package/dist/client/chunks/{chart-line-CjW9Yo03.js → chart-line-BNqjUowg.js} +3 -3
  175. package/dist/client/chunks/{chart-line-CjW9Yo03.js.map → chart-line-BNqjUowg.js.map} +1 -1
  176. package/dist/client/chunks/{chart-markdown-Cgs62had.js → chart-markdown-DtgpU3xd.js} +2 -2
  177. package/dist/client/chunks/{chart-markdown-Cgs62had.js.map → chart-markdown-DtgpU3xd.js.map} +1 -1
  178. package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js → chart-measure-profile-D5nZMWlI.js} +3 -3
  179. package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js.map → chart-measure-profile-D5nZMWlI.js.map} +1 -1
  180. package/dist/client/chunks/{chart-pie-BTb5nKd7.js → chart-pie-D8r9HCZ4.js} +3 -3
  181. package/dist/client/chunks/{chart-pie-BTb5nKd7.js.map → chart-pie-D8r9HCZ4.js.map} +1 -1
  182. package/dist/client/chunks/{chart-radar-8384sPlX.js → chart-radar-R4PuCIWp.js} +3 -3
  183. package/dist/client/chunks/{chart-radar-8384sPlX.js.map → chart-radar-R4PuCIWp.js.map} +1 -1
  184. package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js → chart-radial-bar-hmrSFa6O.js} +3 -3
  185. package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js.map → chart-radial-bar-hmrSFa6O.js.map} +1 -1
  186. package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js → chart-sankey-CFXPybny.js} +2 -2
  187. package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js.map → chart-sankey-CFXPybny.js.map} +1 -1
  188. package/dist/client/chunks/{chart-scatter-Bdj95OeV.js → chart-scatter-CH82md0L.js} +3 -3
  189. package/dist/client/chunks/{chart-scatter-Bdj95OeV.js.map → chart-scatter-CH82md0L.js.map} +1 -1
  190. package/dist/client/chunks/{chart-sunburst-CuG8520_.js → chart-sunburst-CTj95eEC.js} +3 -3
  191. package/dist/client/chunks/{chart-sunburst-CuG8520_.js.map → chart-sunburst-CTj95eEC.js.map} +1 -1
  192. package/dist/client/chunks/{chart-tree-map-CtJADX87.js → chart-tree-map-CmysE4bF.js} +3 -3
  193. package/dist/client/chunks/{chart-tree-map-CtJADX87.js.map → chart-tree-map-CmysE4bF.js.map} +1 -1
  194. package/dist/client/chunks/{chart-waterfall-D430fO48.js → chart-waterfall-Bv1mPvlB.js} +3 -3
  195. package/dist/client/chunks/{chart-waterfall-D430fO48.js.map → chart-waterfall-Bv1mPvlB.js.map} +1 -1
  196. package/dist/client/chunks/{charts-core-BSmlKmf0.js → charts-core-BdEQgbqN.js} +2 -2
  197. package/dist/client/chunks/{charts-core-BSmlKmf0.js.map → charts-core-BdEQgbqN.js.map} +1 -1
  198. package/dist/client/chunks/charts-loader-DoLQqFXg.js +87 -0
  199. package/dist/client/chunks/{charts-loader-Bz9yHkW1.js.map → charts-loader-DoLQqFXg.js.map} +1 -1
  200. package/dist/client/chunks/gapFilling-DKBRHcQL.js +391 -0
  201. package/dist/client/chunks/gapFilling-DKBRHcQL.js.map +1 -0
  202. package/dist/client/chunks/{nl-NL-BrqrWoAj.js → nl-NL-DVZXf8U7.js} +6 -1
  203. package/dist/client/chunks/nl-NL-DVZXf8U7.js.map +1 -0
  204. package/dist/client/chunks/{schema-visualization-D2NvjQny.js → schema-visualization-MlRrcJQH.js} +3 -3
  205. package/dist/client/chunks/{schema-visualization-D2NvjQny.js.map → schema-visualization-MlRrcJQH.js.map} +1 -1
  206. package/dist/client/chunks/{useDirtyStateTracking-DL_AnCWZ.js → useDirtyStateTracking-DUyYwuN_.js} +318 -293
  207. package/dist/client/chunks/useDirtyStateTracking-DUyYwuN_.js.map +1 -0
  208. package/dist/client/chunks/{useExplainAI-CdPWtj7E.js → useExplainAI-BtoS3tb5.js} +4 -4
  209. package/dist/client/chunks/{useExplainAI-CdPWtj7E.js.map → useExplainAI-BtoS3tb5.js.map} +1 -1
  210. package/dist/client/chunks/utils-CToHkuhU.js.map +1 -1
  211. package/dist/client/chunks/{vendor-Bpaolt6h.js → vendor-BfBpNmMa.js} +2 -2
  212. package/dist/client/chunks/{vendor-Bpaolt6h.js.map → vendor-BfBpNmMa.js.map} +1 -1
  213. package/dist/client/components/AnalysisBuilder/types.d.ts +4 -0
  214. package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +6 -1
  215. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
  216. package/dist/client/components.js +2 -2
  217. package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
  218. package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
  219. package/dist/client/hooks/useAnalysisQuery.d.ts +6 -1
  220. package/dist/client/hooks.js +3 -3
  221. package/dist/client/icons.js +1 -1
  222. package/dist/client/index.d.ts +2 -0
  223. package/dist/client/index.js +193 -192
  224. package/dist/client/index.js.map +1 -1
  225. package/dist/client/providers.js +1 -1
  226. package/dist/client/schema.js +1 -1
  227. package/dist/client/types.d.ts +5 -0
  228. package/dist/client/utils/gapFilling.d.ts +52 -0
  229. package/dist/client/utils/index.d.ts +1 -0
  230. package/dist/client/utils.js +9 -8
  231. package/dist/client/utils.js.map +1 -1
  232. package/dist/client-bundle-stats.html +1 -1
  233. package/dist/mcp-app/mcp-app.html +101 -101
  234. package/dist/server/ai/query-schema.d.ts +1 -1
  235. package/dist/server/chartConfigHelpers-BhME7ow_.cjs +1 -0
  236. package/dist/server/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
  237. package/dist/server/execution/result-post-processor.d.ts +4 -2
  238. package/dist/server/executor.d.ts +2 -0
  239. package/dist/server/gap-filler.d.ts +8 -43
  240. package/dist/server/index.cjs +34 -34
  241. package/dist/server/index.js +2049 -2030
  242. package/dist/server/types/core.d.ts +2 -0
  243. package/dist/server/types/cube.d.ts +12 -0
  244. package/dist/server/types/metadata.d.ts +5 -0
  245. package/dist/server/types/query.d.ts +2 -1
  246. package/package.json +1 -1
  247. package/dist/adapters/ActivityGridChart.config-BpGv0FYq.js +0 -2
  248. package/dist/adapters/ActivityGridChart.config-DWs9dRl7.cjs +0 -1
  249. package/dist/adapters/AreaChart.config-Cn8nAQqj.cjs +0 -1
  250. package/dist/adapters/AreaChart.config-NDMkAi9w.js +0 -2
  251. package/dist/adapters/BarChart.config-CuGCupRX.cjs +0 -1
  252. package/dist/adapters/BarChart.config-D4Ct_ZuS.js +0 -2
  253. package/dist/adapters/BoxPlotChart.config-BEHZDgrz.js +0 -2
  254. package/dist/adapters/BoxPlotChart.config-DnC3xk7q.cjs +0 -1
  255. package/dist/adapters/BubbleChart.config-D0ouKOKS.cjs +0 -1
  256. package/dist/adapters/BubbleChart.config-Du8aEfdQ.js +0 -2
  257. package/dist/adapters/CandlestickChart.config-B0B6dKYG.cjs +0 -1
  258. package/dist/adapters/CandlestickChart.config-DBilZaFc.js +0 -2
  259. package/dist/adapters/DataTable.config-BXalzUPO.cjs +0 -1
  260. package/dist/adapters/DataTable.config-CF8BzQHu.js +0 -2
  261. package/dist/adapters/DotStripChart.config-0ggseDij.cjs +0 -1
  262. package/dist/adapters/DotStripChart.config-CfHh0XSW.js +0 -2
  263. package/dist/adapters/FunnelChart.config-AcSpen_Q.js +0 -2
  264. package/dist/adapters/FunnelChart.config-D6k89qDc.cjs +0 -1
  265. package/dist/adapters/GaugeChart.config-B5BcrEvW.cjs +0 -1
  266. package/dist/adapters/GaugeChart.config-BChbha74.js +0 -2
  267. package/dist/adapters/HeatMapChart.config-BgkP8kiW.js +0 -2
  268. package/dist/adapters/HeatMapChart.config-Crq7vBwj.cjs +0 -1
  269. package/dist/adapters/KpiDelta.config-Cqu1WOkV.js +0 -2
  270. package/dist/adapters/KpiDelta.config-edWLG1bM.cjs +0 -1
  271. package/dist/adapters/KpiNumber.config-BLkE67us.cjs +0 -1
  272. package/dist/adapters/KpiNumber.config-DNsH72Rs.js +0 -2
  273. package/dist/adapters/KpiText.config-CAnLZYht.cjs +0 -1
  274. package/dist/adapters/KpiText.config-CQGd10Hj.js +0 -2
  275. package/dist/adapters/LineChart.config-C7l_xff-.js +0 -2
  276. package/dist/adapters/LineChart.config-DOxwtnfG.cjs +0 -1
  277. package/dist/adapters/MarkdownChart.config-BV5j1oJl.cjs +0 -1
  278. package/dist/adapters/MarkdownChart.config-CBkJAEpW.js +0 -2
  279. package/dist/adapters/MeasureProfileChart.config-CyyFz-x_.cjs +0 -1
  280. package/dist/adapters/MeasureProfileChart.config-VIvr7lq6.js +0 -2
  281. package/dist/adapters/PieChart.config-BP8OlSJ4.js +0 -2
  282. package/dist/adapters/PieChart.config-BaMxIlBa.cjs +0 -1
  283. package/dist/adapters/ProportionBarChart.config-CtZaP8Xn.js +0 -2
  284. package/dist/adapters/ProportionBarChart.config-DAyEQ8Pn.cjs +0 -1
  285. package/dist/adapters/RadarChart.config-CG07QZUT.cjs +0 -1
  286. package/dist/adapters/RadarChart.config-DJJuD-Tb.js +0 -2
  287. package/dist/adapters/RadialBarChart.config-BNgzWkot.cjs +0 -1
  288. package/dist/adapters/RadialBarChart.config-DVM_jg9B.js +0 -2
  289. package/dist/adapters/RecordsTable.config-BEQmKQ-S.cjs +0 -1
  290. package/dist/adapters/RecordsTable.config-d4s8HV9m.js +0 -2
  291. package/dist/adapters/RetentionCombinedChart.config-DJ4N-ffd.cjs +0 -1
  292. package/dist/adapters/RetentionCombinedChart.config-DV1h3rW2.js +0 -2
  293. package/dist/adapters/RetentionHeatmap.config-CIJDenRg.cjs +0 -1
  294. package/dist/adapters/RetentionHeatmap.config-P3VVn3QJ.js +0 -2
  295. package/dist/adapters/SankeyChart.config-CQ89DYf7.cjs +0 -1
  296. package/dist/adapters/SankeyChart.config-CfMmdmXJ.js +0 -2
  297. package/dist/adapters/ScatterChart.config-C4zrFpF-.cjs +0 -1
  298. package/dist/adapters/ScatterChart.config-DaJ3LVWH.js +0 -2
  299. package/dist/adapters/SunburstChart.config-1ZRhfGr0.cjs +0 -1
  300. package/dist/adapters/SunburstChart.config-DHgrSIkQ.js +0 -2
  301. package/dist/adapters/TreeMapChart.config-Cy3sAsJP.js +0 -2
  302. package/dist/adapters/TreeMapChart.config-D365WWEK.cjs +0 -1
  303. package/dist/adapters/WaterfallChart.config-DYEf1vQT.js +0 -2
  304. package/dist/adapters/WaterfallChart.config-s8pICbm8.cjs +0 -1
  305. package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +0 -1
  306. package/dist/adapters/handler-B78akmC_.cjs +0 -16
  307. package/dist/adapters/mcp-app-html-C1fEW5oE.js +0 -5
  308. package/dist/adapters/mcp-app-html-CGk4ubE0.cjs +0 -1
  309. package/dist/client/chunks/DashboardEditModal-5ZSP--FQ.js.map +0 -1
  310. package/dist/client/chunks/analysis-builder-Db4umQtd.js.map +0 -1
  311. package/dist/client/chunks/analysis-builder-shared-BEvvX6ln.js.map +0 -1
  312. package/dist/client/chunks/chart-activity-grid-Bbc58UJD.js.map +0 -1
  313. package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +0 -1
  314. package/dist/client/chunks/chart-config-bar-BixSs43E.js.map +0 -1
  315. package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +0 -1
  316. package/dist/client/chunks/charts-loader-Bz9yHkW1.js +0 -87
  317. package/dist/client/chunks/nl-NL-BrqrWoAj.js.map +0 -1
  318. package/dist/client/chunks/useDirtyStateTracking-DL_AnCWZ.js.map +0 -1
  319. package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chart-markdown-Cgs62had.js","names":["pi","t","Ri","hr","dayjs","customParseFormat","isoWeek","weekOfYear","advancedFormat","dayjs2","customParseFormat2","isoWeek2","weekOfYear2","advancedFormat2","dayjs3","durationPlugin","sanitizer","_Fragment","Markdown","__toESM","__exportAll","__commonJSMin","useTranslation","CubeMetaContext","rr","React","Fragment$1","queryHasMembers","query","count","value","e","t","n","r","d","N","k","Er","M","re","Oe","_e","ur","U","lr","Ht","F","Cr","me","ke","he","ae","xt","qe","Ke","ht","Ge","st","pr","$t","Pr","qr","Mt","on","Wn","zn","Zn","gt","jr","ar","ge","Dr","Ir","Or","ye","Lr","Bt","ir","fr","Qn","Vn","Yn","qn","An","ln","Pt","W","z","J","ie","ce","Ct","_r","v","oa","ea","a","i","xi","o","Ii","Oi","Li","fn","Aa","Nr","t$1","jn","dr","Ve","je","xe","gr","ra","nt","Xr","ta","rt","na","yi","Rr","yr","la","Ca","fa","et","_a","da","Xt","ca","Mi","ua","tt","_n","Ra","A","C","_","Bi","aa","dn","u","c","Ha","Jr","ha","Pi","sa","ia","Jt","$a","Di","Dt","cn","ga","un","Ka","Ga","$n","Nt","Xi","Ta","Rn","Sa","Fa","Ea","Ua","Wa","za","Ji","Ki","Gi","Fi","Ui","gn","Na","wr","R","s","T","I","O","f","h","g","S","p","H","w","E","m","y","x","B","cr","Wi","Za","Ft","_t","or","vt","ka","bn","vn","Tn","Ut","Ae","q","St","wa","er","Wr","oe","te","Le","zi","Zi","dt","Qi","Fr","ma","ba","pa","Vi","l","D","Ia","Yi","qi","L","Z","ne","ve","Ur","Qa","Kr","ft","Oa","La","P","Q","Pe","Ee","ue","He","Fe","X","be","j","se","le","K","we","$e","Ce","Re","We","Te","Me","Be","ze","V","Ne","Y","pe","Ze","b","fe","tr","ee","sr","de","Se","Ye","De","Xe","Je","zr","xr","Ie","Zr","mt","br","Qr","Mr","vr","nr","Tr","ot","Vr","$r","zt","kr","Gr","ji","Zt","Sn","Va","eo","Ue","At","Ar","lt","ii","oi","Ai","yn","xn","Vt","Ci","Mn","_i","di","ct","Sr","Bn","Pn","bt","Yt","Dn","qt","Xn","Jn","pt","ui","jt","en","Kn","Gn","It","rn","Qe","Br","tn","Fn","Ot","Yr","ut","yt","Hi","hi","si","$i","gi","vi","Ti","nn","Un","Rt","Ei","an","Ni","ki","wi","mi","ya","xa","ro","to","no","mr","ao","pn","io","oo","Ao","lo","Ma","Ba","Co","fo","Kt","Pa","En","Da","Nn","Xa","kn","Hn","Hr","_o","hn","Wt","Gt","sn","Ja","Ya","Qt","wn","co","uo","Ro","mn","at","Ho","ho","so","Tt","$o","ja","kt","In","it","On","hr$1","ei","ri","vo","To","So","wt","Eo","Fo","parseRegexPattern","match","pattern","unwrapParamList","trimmed","quote","escaped","depth","index","character","unquoteParamToken","decodeStringEscape","decodeParamEscapes","cleanParamToken","unquoteScalarParam","cleanScalarParam","unquoted","splitParamList","tokens","splitParams","normalizeParamList","token","parseTypedParamToken","splitParamPair","number","parseTypedParams","parenDepth","curlyDepth","bracketDepth","parts","current","reportFilterWarning","errorMessage","error","require_dayjs_min","exports","module","$","require_isoWeek","require_weekOfYear","require_customParseFormat","require_advancedFormat","require_duration","import_dayjs_min","import_isoWeek","import_weekOfYear","import_customParseFormat","import_advancedFormat","import_duration","TemplateRuntimeError","message","code2","line","column","TemplateRenderError","errors","defaultRenderLimits","resolveLimits","result","limits","name","limitError","RenderBudget","length2","pending","size","entries","value2","key","property","KEYWORDS","\"if\"","\"elseif\"","\"else\"","\"endif\"","\"for\"","\"in\"","\"endfor\"","\"set\"","\"and\"","\"or\"","\"not\"","\"contains\"","\"true\"","\"false\"","\"null\"","CHAR_OPEN_BRACE","CHAR_PERCENT","CHAR_HASH","tokenize","state","tokenizeText","startPos","startLine","startColumn","input","brace","next","isVariable","isTag","isComment","advanceTo","end","advance","tokenizeVariable","skipWhitespace","lookAhead","nextChar","advanceChar","varStartIndex","actualIndex","varStartToken","tokenizeTag","tagStartIndex","tagStartToken","tokenizeExpression","mode","char","isDigit","isIdentifierStart","tokenizeString","rawValue","tokenizeEscapedArgument","tokenizeNumber","tokenizeIdentifier","isIdentifierChar","tokenizeCssSelector","lowerValue","keywordType","inString","str","target","lastNewline","newlines","isWhitespace","parse","options","parseTokens","parseFailure","ast","parseTemplate","child","withDepth","parse2","nodes","isAtEnd","node","parseNode","peek","parseText","parseVariable","parseTag","advance2","check","startToken","trimLeft","first2","expression","parseExpression","skipToEndOfVariable","trimRight","keywordToken","parseIfStatement","parseForStatement","parseSetStatement","skipToEndOfTag","condition","consequent","parseBody","elseifs","checkTagKeyword","consumeTagStart","elseifCondition","elseifBody","alternate","consumeTagEnd","iterator","iterable","body","variable","parseBodyInner","stopKeywords","trimClosingLine","after","standalone","last2","parseNullishExpression","left","parseFilterExpression","opToken","right","parseFilterArgument","savedPos","idToken","braceDepth","parsePrimaryExpression","formatString","val","combined","isStringPair","numberToken","parseOrExpression","filterToken","args","arg","formatStr","nextArg","parseOrExpressionInner","parseAndExpression","parseNotExpression","parseNotExpressionInner","argument","parseComparisonExpression","parsePostfixExpression","op","\"op_eq\"","\"op_neq\"","\"op_gt\"","\"op_lt\"","\"op_gte\"","\"op_lte\"","\"op_contains\"","dot","property2","part","bracketToken","expr","strToken","numToken","boolToken","nullToken","rest","type","keywords","nextPos","levenshteinDistance","matrix","expressionToString","base","filterArgs","argsToParamString","isLiteralFilterArgument","findSimilarFilter","bestMatch","bestDistance","filterName","filterNames","distance","collectFiltersFromExpression","usages","collectFilters","processNode","elseif","validateFilters","knownFilterNames","registryMetadata","usage","similar","meta","paramString","ownProperty","descriptor","ownPropertyAtPath","path","segment","renderAST","output","context","nodeOutput","renderNode","appendNodeOutput","renderText","renderVariable","renderIf","renderFor","renderSet","text","trimLeadingWhitespace","valueToString","evaluateExpression","toRenderError","isTruthy","renderNodes","iterableValue","iterableArray","parsed","results","outputLength","item","loop","loopContext","trimTrailingWhitespace","evaluateLiteral","evaluateIdentifier","evaluateBinary","evaluateUnary","evaluateFilter","evaluateMember","resolveVariable","object2","left2","evaluateContains","argValue","rawArguments","stringValue","isQuotedString","searchValue","wrappedValue","variables","getNestedValue","keys","obj","arrayKey","indexStr","baseValue","prefix","normalizeParserError","metadataForRegistry","filters2","filter","createEngine","filterMetadata2","parseTemplate2","template2","validate","templateOrAst","render","renderOptions","budget","validationErrors","warnings","warningKeys","resolverContext","rendered","validateResolvedParams","validation","param","templateWarning","warning","warningKey","blockquote","processBlockquote","processArray","arr","parsedInput","finiteNumber","isPlainObject","prototype","inputValue","collectionText","allowLeadingWhitespace","collectionInputValue","arrayInputValue","mapStringValues","formatter","markdownFilter","wrapInline","open","content","start","close","splitBlankLinePadding","leading","withoutLeading","trailing","isMultiline","formatHeading","level","h1","h2","h3","h4","h5","h6","markdownPunctuation","escape_md","hard_break","validateMarkerParam","marker","markers","validateBoldParams","validateItalicParams","bold","italic","strike","highlightColorMarkers","resolveHighlightMarker","color","validateHighlightParams","highlight","appendBlock","block2","prependBlock","validateHrParams","position","hr","longestBacktickRun","formatInlineCode","delimiter","padding","formatCodeBlock","fence","language","validateCodeParams","code","code_block","formatMathBlock","math","math_block","comment","validateCalcParams","operation","validOperators","operator","valueStr","calc","hasRawValue","originalValue","num","callout","title2","foldState","params","calloutHeader","camel","letter","capitalize","capitalizeString","parseAndCapitalize","capitalized","isEmpty","compact","date","inputDate","outputFormat","inputFormat","date2","validUnits","validateDateModifyParams","unit","normalizedUnit","date_modify","amount","numericAmount","decodeValue","decode_uri","encodeValue","encode_uri","first","footnote","data","strip_md","p2","p1","fragment_link","linktext","sourceUrl","extractTextFragmentParts","words","selectedText","createTextFragmentUrl","encodedEnd","escapeMarkdown","markdownDestination","normalized","image","altText","processObject","MAX_INDENT_WIDTH","validateIndentParams","width","numericWidth","indent","join","array","separator","kebab","last","validListTypes","validateListParams","option","list","processListItem","indent2","itemType","determineListType","param2","link","linkText","length","lower","toLowerCase","validateMapParams","mapWithArrow","argName","mappedArray","mappedItem","assignment","cleanKey","cleanValue","evaluateExpression2","propertyPath","map","getNestedProperty","prop","merge","values","singleArgument","processedItems","validateNthParams","positions","basis","nthValues","basisSize","nth","positionInGroup","nthExpression","multiplier","nPlusBMatch","offset","number_format","formatNumber","decimals","thousandsSep","decPoint","processValue","unescapeString","validObjectParams","validateObjectParams","object","pascal","parse_json","reverse","reversedEntries","reversedObject","remove_attr","removeAttributes","html","removeAttributesList","attr","attributeOrSlashRegex","attributeNameExtractorRegex","elementsToKeep","allMatches","attributesString","currentMatch","fullMatchedText","attributePart","slashPart","nameMatch","cleanedAttributes","tag","remove_tags","removeTags","removeTagsList","escapedTags","regex","validateReplaceParams","replacements","allValid","pair","splitReplacementPair","replacement","search","replacementValue","quotedSearch","regexSearch","quotedReplacement","legacyValid","inRegex","replace","legacyPair","acc","replace2","regexInfo","processEscapedCharacters","boundedReplace","named","captures","expandedLength","expanded","cleanTag","replace_tags","transformations","rawSource","rawTarget","source","openingPattern","closingPattern","attributes","validateRoundParams","round","roundNumber","decimalPlaces","result2","factor","encounteredNonFinite","processCollectionValue","cleanParam","validOsParams","validateSafeNameParams","os","safe_name","sanitized","paramParts","validateSliceParams","slice","slicedArray","snake","parseParams","validateSortParams","direction","propertyValue","compareValues","leftText","rightText","sort","leftValue","rightValue","comparison","split","validateSumParams","sum","total","candidate","strip_attr","keepAttributesList","keepAttributes","keepAttrs","escapedAttr","attrMatch","strip_tags","keepTagsList","keepTags","dec","hex","parseHeaders","escapeCell","cell","cellWidth","padCell","widestCell","minimum","row","rows","widestRow","renderTable","columnCount","headers","normalizedHeaders","normalizedRows","pretty","widths","header","formatRow","formatTable","customHeaders","maxColumns","table","table_pretty","validateTemplateParams","template","replaceTemplateVariables","strValue","parseObjectString","getNestedProperty2","lowercaseWords","title","toTitleCase","word","trim","graphemeSegmenter","graphemes","paramParts2","parseParams2","validateParams","example","validateTruncateParams","validateTruncatewordsParams","truncateString","characters","suffix","contentLimit","truncateWordsString","finalWord","truncateValue","truncate","truncatewords","uncamel","unescape","unique","seen","uniqueArray","stringified","reverseEntries","uniqueEntries","upper","toUpperCase","wikiReference","alias","wikilink","embed","duration","matches","seconds2","formatDuration","years","months","days","hours","minutes","seconds","totalSeconds","format","dur","\"HH\"","padZero","\"H\"","\"mm\"","\"m\"","\"ss\"","\"s\"","validateYamlParams","propertyKey","validateYamlPropertyParams","flow","keyText","isBlock","block","containsNonFiniteNumber","collection","scalar","yaml","yaml_property","validateWhereParams","isScalar","where","expected","standardFilterMetadata","metadata","filters","asTemplateFilter","wrapped","standardFilters","snakeSegment","aliasForField","claimUnique","taken","collectKeys","buildTemplateContext","aliasTaken","labelTaken","fields","safeLabel","getFieldLabel","project","projected","field","pick","aliased","CONTEXT_NAMES","ROW_SHAPED","FIELD_MEMBERS","isRecord","isIdentifier","walkNodes","visit","collectLoopSources","sources","rootKind","root","loopSources","findUnknownReferences","aliases","scope","diagnostics","reported","describeReference","addOnce","member","describeMember","unknownField","known","available","RENDER_LIMITS","engine","getEngine","renderMarkdownTemplate","toMessage","HEADER_SIZES","HEADER_MARGINS","BODY_SIZES","ALIGNMENTS","bodySizeClass","fontSize","alignmentClass","alignment","headingProps","accentColor","buildMarkdownOptions","buildAccentBorderStyle","accentBorder","style","transparentBackground","resolveAccentColor","colors","toTemplateRows","useMarkdownTemplate","isTemplate","queryObject","useMemo","useContext","setResult","useState","useEffect","cancelled","MarkdownChart_exports","MarkdownChart","Diagnostics","tone","heading","items","displayConfig","colorPalette","markdownOptions","height","containerStyle"],"sources":["../../../src/shared/query-shape.ts","../../../node_modules/markdown-to-jsx/dist/entities.browser.js","../../../node_modules/markdown-to-jsx/dist/index.js","../../../node_modules/knap/dist/chunk-DOF2LXGV.js","../../../node_modules/dayjs/dayjs.min.js","../../../node_modules/dayjs/plugin/isoWeek.js","../../../node_modules/dayjs/plugin/weekOfYear.js","../../../node_modules/dayjs/plugin/customParseFormat.js","../../../node_modules/dayjs/plugin/advancedFormat.js","../../../node_modules/dayjs/plugin/duration.js","../../../node_modules/knap/dist/chunk-HIM7QCSR.js","../../../src/client/components/charts/markdownTemplate.ts","../../../src/client/components/charts/MarkdownChart.helpers.ts","../../../src/client/components/charts/MarkdownChart.tsx"],"sourcesContent":["/**\n * Shape questions about a query that both the client and the server ask.\n *\n * Kept here rather than duplicated because the answer decides a user-visible\n * behaviour in three places: whether a portlet runs a query at all, whether a\n * markdown portlet renders its content as a data template, and whether the\n * agent writes a query onto a markdown portlet when saving a dashboard.\n */\n\n/** The parts of a query that make it worth running. */\ninterface QueryMembers {\n measures?: unknown\n dimensions?: unknown\n timeDimensions?: unknown\n}\n\n/**\n * Whether a query asks for anything the engine could run.\n *\n * A content-first chart such as markdown does not *require* a query, but it may\n * still carry one. Only the member lists count: an empty object, an object of\n * nothing but filters, and `undefined` all mean \"no query\".\n */\nexport function queryHasMembers(query: QueryMembers | null | undefined): boolean {\n if (!query || typeof query !== 'object') return false\n const count = (value: unknown) => (Array.isArray(value) ? value.length : 0)\n return (\n count(query.measures) > 0\n || count(query.dimensions) > 0\n || count(query.timeDimensions) > 0\n )\n}\n","var e;function t(r){if(!e){if(typeof document>\"u\")return;e=document.createElement(\"textarea\")}var n=`&${r};`;e.innerHTML=n;var d=e.value;return d===n?void 0:d}var i={};export{i as NAMED_CODES_TO_UNICODE,t as decodeEntity};\n","var N=32,k=9,Er=13,M=10,re=96,Oe=126,_e=91,ur=94,U=62,lr=35,Ht=37,F=45,Cr=61,me=92,ke=42,he=95,ae=60,xt=64,qe=93,Ke=33,ht=38,Ge=58,st=70,pr=102,$t=104,Pr=119,qr=116,Mt=112,on=115,Wn=160,zn=12,Zn=44,gt=59,jr=63,ar=46,ge=47,Dr=39,Ir=34,Or=43,ye=124,Lr=123,Bt=125,ir=40,fr=41,Qn=78,Vn=110,Yn=79,qn=111,An=120,ln=88,Pt=30,W=48,z=57,J=65,G=90,ie=97,ce=122,Ct=128,_r=32,bi={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22},v=bi;import{decodeEntity as pi}from\"markdown-to-jsx/entities\";function oa(e){if(!ea(e,\"---\"))return null;let t=3;for(;t<e.length&&(e[t]===\" \"||e[t]===\"\t\");)t++;if(t<e.length&&e[t]===\"\\r\"&&t++,t>=e.length||e[t]!==`\n`)return null;t++;let r=!1;for(;t<e.length;){let n=t;for(;t<e.length&&e[t]!==`\n`&&e[t]!==\"\\r\";)t++;if(t>=e.length)break;let a=t;if(e[t]===\"\\r\"&&t++,t<e.length&&e[t]===`\n`&&t++,ea(e,\"---\",n))return{endPos:t,hasValidYaml:r};if(!r){let i=xi(e,n,a);if(i<a){let o=e.charCodeAt(i);if(o>=ie&&o<=ce||o>=J&&o<=G||o>=W&&o<=z||o===he){for(i++;i<a&&(o=e.charCodeAt(i),o>=ie&&o<=ce||o>=J&&o<=G||o>=W&&o<=z||o===he||o===F||o===ar);)i++;i<a&&e.charCodeAt(i)===Ge&&(i++,i>=a?r=!0:(o=e.charCodeAt(i),(o===N||o===k)&&(r=!0)))}}}}return null}var Ii=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,Oi={class:\"className\",for:\"htmlFor\",allowfullscreen:\"allowFullScreen\",allowtransparency:\"allowTransparency\",autocomplete:\"autoComplete\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",charset:\"charSet\",classid:\"classId\",colspan:\"colSpan\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",crossorigin:\"crossOrigin\",enctype:\"encType\",formaction:\"formAction\",formenctype:\"formEncType\",formmethod:\"formMethod\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",hreflang:\"hrefLang\",inputmode:\"inputMode\",keyparams:\"keyParams\",keytype:\"keyType\",marginheight:\"marginHeight\",marginwidth:\"marginWidth\",maxlength:\"maxLength\",mediagroup:\"mediaGroup\",minlength:\"minLength\",novalidate:\"noValidate\",radiogroup:\"radioGroup\",readonly:\"readOnly\",rowspan:\"rowSpan\",spellcheck:\"spellCheck\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",tabindex:\"tabIndex\",usemap:\"useMap\",viewbox:\"viewBox\"},Li={};function fn(e){if(!e)return Li;var t={};for(var r in e){var n=r.toLowerCase(),a=Oi[n];if(a)t[a]=e[r];else{var i=r.indexOf(\":\");i===-1?t[r]=e[r]:t[r.slice(0,i)+r[i+1].toUpperCase()+r.slice(i+2)]=e[r]}}return t}var Aa=/(\\n|^[-*]\\s|^#|^ {2,}|^-{2,}|^>\\s|^<(div|p|h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|td|th|dl|dt|dd|hr|address|article|aside|details|dialog|figure|figcaption|footer|form|header|main|menu|nav|section|summary|textarea|fieldset|legend|center|dir|hgroup|marquee|search|output|template)\\b)/i;function Nr(e){return e.indexOf(\"&\")===-1?e:e.replace(Ii,(t,r)=>{var n=pi(r);if(n)return n;if(r[0]===\"#\"){var a=r[1]===\"x\"||r[1]===\"X\"?Number.parseInt(r.slice(2),16):Number.parseInt(r.slice(1),10);return a===0||a>=55296&&a<=57343||a>1114111?\"\\uFFFD\":a<=65535?String.fromCharCode(a):String.fromCharCode(55296+(a-65536>>10),56320+(a-65536&1023))}return t})}var jn=/(javascript|vbscript|data(?!:image)):/i;function dr(e){if(jn.test(e))return null;if(e.indexOf(\"%\")===-1)return e;try{let t=decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,\"\");if(jn.test(t))return null}catch{return null}return e}var Ve={},je,xe;for(je=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"a\";for(Ve[231]=Ve[199]=\"c\",Ve[240]=Ve[208]=\"d\",je=[200,201,202,203,233,232,234,235],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"e\";for(je=[207,239,206,238,205,237,204,236],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"i\";for(Ve[209]=Ve[241]=\"n\",je=[248,216,339,338,213,245,212,244,211,243,210,242],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"o\";for(je=[220,252,219,251,218,250,217,249],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"u\";Ve[376]=Ve[255]=Ve[221]=Ve[253]=\"y\";function gr(e){for(var t=\"\",r=-1,n=e.length,a=0;a<n;a++){var i=e.charCodeAt(a);if(i>=ie&&i<=ce||i>=W&&i<=z){r<0&&(r=a);continue}if(i>=J&&i<=G){r>=0&&(t+=e.slice(r,a),r=-1),t+=String.fromCharCode(i+_r);continue}if(i===N||i===F){r>=0&&(t+=e.slice(r,a),r=-1),t+=\"-\";continue}r>=0&&(t+=e.slice(r,a),r=-1);var o=Ve[i];o&&(t+=o)}return r>=0&&(t+=e.slice(r)),t}function ea(e,t,r){return e.startsWith(t,r)}var ra=new Set([\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\",\"circle\",\"ellipse\",\"line\",\"path\",\"polygon\",\"polyline\",\"rect\",\"use\",\"stop\",\"animate\",\"set\"]);function nt(e){let t=e.toLowerCase();if(ra.has(t))return!0;let r=t.indexOf(\":\");return r!==-1?(t=t.slice(r+1),ra.has(t)):!1}var Xr=1,ta=2,rt=4,na=8,yi=16,Rr=32,yr=64,la=(()=>{var e=new Uint8Array(128),t;for(e[k]=Xr,e[M]=Xr|ta,e[zn]=Xr,e[Er]=Xr|ta,e[N]=Xr,t=Ke;t<=ge;t++)e[t]=rt;for(t=Ge;t<=xt;t++)e[t]=rt;for(t=_e;t<=re;t++)e[t]=rt;for(t=Lr;t<=Oe;t++)e[t]=rt;for(t=W;t<=z;t++)e[t]=yi;for(t=J;t<=G;t++)e[t]=na;for(t=ie;t<=ce;t++)e[t]=na;return e})(),Ca=/[\\p{P}\\p{S}]/u,fa=/\\p{Zs}/u,et=[];function _a(e){var t=e.indexOf(\"\\r\"),r=e.indexOf(\"\\0\");if(t===-1&&r===-1)return e;var n=e.length;et.length=0;var a=0,i=0;for(t===-1?i=r:r===-1?i=t:i=t<r?t:r;i<n;i++){var o=e.charCodeAt(i);o===Er?(a<i&&et.push(e.slice(a,i)),i+1<n&&e.charCodeAt(i+1)===M&&i++,et.push(`\n`),a=i+1):o===0&&(a<i&&et.push(e.slice(a,i)),et.push(\"\\uFFFD\"),a=i+1)}return a<n&&et.push(e.slice(a)),et.join(\"\")}function da(e){return e.replace(/>\\s+</g,\"><\").replace(/\\n+/g,\" \").trim()}function xi(e,t,r){let n=r??e.length;for(;t<n&&(e[t]===\" \"||e[t]===\"\t\");)t++;return t}function Xt(e){if(!e)return!1;for(var t in e)return!0;return!1}function ca(e){return{attrs:{},children:[{type:v.text,text:e}],c:!0,type:v.htmlBlock,tag:\"header\"}}var Mi=/^\\n+/;function ua(e){for(var t=e.length;t>0&&(e[t-1]===`\n`||e[t-1]===\"\\r\");)t--;return`${e.slice(0,t).replace(Mi,\"\")}\n\n`}function tt(e){if((e.type===v.htmlSelfClosing||e.type===v.htmlBlock)&&e.a)return[];if(e.type===v.paragraph){var t=e.children;return t?t.flatMap(tt):[]}return e.type===v.text?e.text?.trim()?[e]:[]:e.type===v.htmlBlock&&e.children?[{...e,children:e.children?.flatMap(tt)}]:[e]}function _n(e){for(var t=0;t<e.length;t++){if(e[t].type===v.htmlBlock){var r=e[t],n=!1;if(r.c&&t===e.length-1){var a=r.j===void 0?r.a?r.e||\"\":(r.e||\"\")+(r.h||\"\"):r.j,i=`</${String(r.tag).toLowerCase()}>`,o=a.toLowerCase().indexOf(i);if(o!==-1){var A=a.slice(o+i.length).replace(/<\\/[a-z][a-z0-9-]*\\s*>/gi,\"\");A.trim()&&(n=!0)}}n||(r.c=!1)}\"children\"in e[t]&&e[t].children&&_n(e[t].children)}}function Ra(e,t){for(var r=0;r<e.length;r++){var n=e[r];if(n.type===v.paragraph&&n.children)for(var a=n.children,i=0;i<a.length;i++){var o=a[i];if(o.type===v.htmlSelfClosing&&o.a&&o.tag.toLowerCase()===t){var A=e.slice(0,r);i>0&&A.push({type:v.paragraph,children:a.slice(0,i)});var C=[];if(i+1<a.length){var l=a.slice(i+1).filter(_=>!(_.type===v.htmlSelfClosing&&_.a));l.length>0&&(C=l)}return C=C.concat(e.slice(r+1)),{found:!0,beforeClose:A,afterClose:C}}}if((n.type===v.htmlSelfClosing||n.type===v.htmlBlock)&&n.a&&n.tag.toLowerCase()===t)return{found:!0,beforeClose:e.slice(0,r),afterClose:e.slice(r+1)}}return{found:!1,beforeClose:e,afterClose:[]}}function Bi(e){var t=\"\";for(var r in e){var n=e[r];n===!0?t+=` ${r}`:n!==void 0&&n!=null&&n!==!1&&(t+=` ${r}=\"${String(n)}\"`)}return t}function aa(e,t,r,n){var a;return t===void 0?a=Bi(r):a=t.length>0&&t.charCodeAt(0)>N?` ${t}`:t,`<${e}${a}${n}`}function dn(e){var t=e.tag,r=e.type===v.htmlSelfClosing,n=e,a=n.b,i=`</${t}>`;if(!r&&n.a)return{kind:\"literal\",literal:(n.h||i)+(n.e||\"\")};if(r){var o=e;return o.a?{kind:\"literal\",literal:o.h||i}:o.m?{kind:\"literal\",literal:o.m}:{kind:\"literal\",literal:aa(t,a,e.attrs,\" />\")}}var A=aa(t,a,e.attrs,\">\"),C=n.children,l=C!=null&&C.length>0;if(n.c&&n.j!==void 0)return l?{kind:\"sandwich\",open:A,close:i}:{kind:\"literal\",literal:n.j};if(n.c&&!l)return{kind:\"literal\",literal:A+(n.e||\"\")+(n.h||i)};if(C!=null&&C.length>0){for(var _=\"\",d=0;d<C.length;d++){var u=C[d];if(u.type!==v.text)return{kind:\"sandwich\",open:A,close:i};_+=u.text}return{kind:\"literal\",literal:A+_+i}}var c=n.e||\"\";return c&&c.indexOf(i)!==-1?{kind:\"literal\",literal:A+c}:{kind:\"literal\",literal:A+c+i}}function Ha(e,t,r){var n=[],a=e,i=r;if(a&&n.push(a),Array.isArray(t))for(var o=0;o<t.length;o++)n.push(t[o]);else t!=null&&n.push(t);i&&n.push(i);for(var A=[],C=0;C<n.length;C++){var l=n[C];typeof l==\"string\"&&A.length>0&&typeof A.at(-1)==\"string\"?A[A.length-1]=A.at(-1)+l:A.push(l)}return A}function Jr(e){return e==null||e.tagfilter!==!1}function ha(e,t,r,n){var a=t(e,r,n);return a===null?null:Pi(a)}function sa(e){var t=[];if(!e)return t;for(var r in e)r.charCodeAt(0)===94&&t.push({identifier:r,footnote:e[r].target});return t}function ia(e){for(var t=0,r=e.length;t<r;){var n=e.charCodeAt(t);if(n>=J&&n<=G)return e.toLowerCase();t++}return e}function Jt(e,t,r){if(t.indexOf(\".\")===-1){var n=e?.[t];if(n)return n;if(e){var a=ia(t);if(a!==t){var i=e[a];if(i)return i}}return r}for(var o=e,A=t.split(\".\"),C=0,l=!1;C<A.length;){if(o=o?.[A[C]],o===void 0){l=C===0;break}C++}if(l&&e){var _=ia(A[0]);if(_!==A[0])for(o=e[_],C=1;o!==void 0&&C<A.length;)o=o?.[A[C]],C++}return o||r}function Pi(e){for(var t=!1,r=0;r<e.length;r++){var n=e.charCodeAt(r);if(n<=N||n===Ir||n===Ht||n===ae||n===U||n===_e||n===me||n===qe||n===ur||n===re||n>=123){t=!0;break}}if(!t)return e;for(var a=\"\",r=0;r<e.length;r++){var n=e.charCodeAt(r);if(n===Ht&&r+2<e.length){var i=e.charCodeAt(r+1),o=e.charCodeAt(r+2);if((i>=W&&i<=z||i>=J&&i<=st||i>=ie&&i<=pr)&&(o>=W&&o<=z||o>=J&&o<=st||o>=ie&&o<=pr)){a+=e[r]+e[r+1]+e[r+2],r+=2;continue}}if(n>=55296&&n<=57343){if(n<=56319&&r+1<e.length){var A=e.charCodeAt(r+1);if(A>=56320&&A<=57343){a+=encodeURI(e[r]+e[r+1]),r++;continue}}a+=e[r];continue}a+=encodeURI(e[r])}return a}function $a(...e){return e.filter(Boolean).join(\" \")}var Di=new Set([\"title\",\"textarea\",\"style\",\"xmp\",\"iframe\",\"noembed\",\"noframes\",\"script\",\"plaintext\"]),Dt=/<(\\/?)(title|textarea|style|xmp|iframe|noembed|noframes|script|plaintext)(\\s|>|\\/)/gi;function cn(e){return Di.has(e.toLowerCase())}function ga(e){return Dt.lastIndex=0,Dt.test(e)}function un(e){return Dt.lastIndex=0,e.replace(Dt,(t,r,n,a)=>`&lt;${r}${n}${a}`)}function Et(e,t){var r=e||{},n=r.slugify,a;if(n){var i=n;a=o=>i(o,gr)}else a=gr;return{disableAutoLink:r.disableAutoLink,disableFrontmatter:r.disableFrontmatter,disableParsingRawHTML:r.disableParsingRawHTML,enforceAtxHeadings:r.enforceAtxHeadings,evalUnserializableExpressions:r.evalUnserializableExpressions,forceBlock:r.forceBlock,forceInline:t===void 0?r.forceInline:t,ignoreHTMLBlocks:r.ignoreHTMLBlocks,optimizeForStreaming:r.optimizeForStreaming,preserveFrontmatter:r.preserveFrontmatter,sanitizer:r.sanitizer||dr,slugify:a,tagfilter:Jr(r)}}var Ka=/^<([a-zA-Z][a-zA-Z0-9-]*)\\s[^>]*>/,Ga=/^<[A-Z]/,$n=[\"script\",\"pre\",\"style\",\"textarea\"],Nt=new Set($n),Xi=/<(?:pre|script|style|textarea)\\b/i,Ta=/<(?:pre|script|style|textarea)\\b/iy,Rn=/^(\\s{0,3}#[#\\s]|\\s{0,3}[-*+]\\s|\\s{0,3}\\d+\\.\\s|\\s{0,3}>\\s|\\s{0,3}```)/m,Sa=/^<([a-z][^ >/\\n\\r]*) ?([^>]*?)>/im,Fa=new Uint8Array(128);(()=>{for(var e=[re,ke,he,Oe,Cr,_e,Ke,ae,me,ht,M,$t,Pr,pr],t=0;t<e.length;t++)Fa[e[t]]=1})();var Ea=/([a-zA-Z_][a-zA-Z0-9_-]*)=(?:\"([^\"]*)\"|'([^']*)')/g;function Ua(e){return Nt.has(e)}function Wa(e){return Xi.test(e)}function za(e,t,r){for(var n=t,a=r;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;if(n>=a)return!1;e.charCodeAt(n)===ye&&n++;for(var i=0;n<a;){for(;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;if(n>=a)break;if(e.charCodeAt(n)===ye&&i>0){for(var o=n+1;o<a&&(e.charCodeAt(o)===N||e.charCodeAt(o)===k);)o++;if(o>=a)return!0}if(e.charCodeAt(n)===Ge&&n++,n>=a||e.charCodeAt(n)!==F)return!1;for(;n<a&&e.charCodeAt(n)===F;)n++;for(n<a&&e.charCodeAt(n)===Ge&&n++,i++;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;if(n<a)if(e.charCodeAt(n)===ye)n++;else return!1}return i>0}var Ji=/[\\u0000-\\u001F\\u007F]/g,Ki={action:1,background:1,cite:1,data:1,formaction:1,href:1,longdesc:1,poster:1,src:1,\"xlink:href\":1},Gi=/&#(x[0-9a-f]+|[0-9]+);?/gi;function Fi(e){return e.indexOf(\"&#\")===-1?e:e.replace(Gi,(t,r)=>{var n=r.charCodeAt(0)===An||r.charCodeAt(0)===ln?Number.parseInt(r.slice(1),16):Number.parseInt(r,10);return n>0&&n<=1114111?String.fromCodePoint(n):t})}function Ui(e,t,r){if(r&&t.charCodeAt(0)===Lr)return!1;var n=e.charCodeAt(0),a=e.charCodeAt(1);if((n===qn||n===Yn)&&(a===Vn||a===Qn))return!(r&&t===\"\");var i=e.toLowerCase();if(i===\"srcdoc\")return!0;if(i===\"style\")return/url\\s*\\(\\s*(javascript|vbscript|data:(?!image\\/))/i.test(t);if(Ki[i]===1){var o=Fi(Nr(t));if(dr(o)===null)return!0;var A=o.replace(Ji,\"\");return A!==o&&dr(A)===null}return!1}function gn(e){return\"<\"+(e.f?\"/\":\"\")+e.tag+e.g+e.b+(e.n?e.r?\" />\":\"/>\":\">\")}function Na(e,t,r,n){for(var a=[],i=t,o=0;o<n.length;o+=2){var A=n[o];if(A>i){var C=e.slice(i,A).trim();C&&a.push(C)}i=n[o+1]}if(i<r){var l=e.slice(i,r).trim();l&&a.push(l)}return a.join(\" \")}function wr(e,t){if(e.charCodeAt(t)!==ae)return null;let r=t+1,n=e.length,a=!1;e.charCodeAt(r)===ge&&(r++,a=!0);let i=r,o=e.charCodeAt(r);if(!(o>=ie&&o<=ce||o>=J&&o<=G))return null;for(;r<n&&(e.charCodeAt(r)>=ie&&e.charCodeAt(r)<=ce||e.charCodeAt(r)>=J&&e.charCodeAt(r)<=G||e.charCodeAt(r)>=W&&e.charCodeAt(r)<=z||e.charCodeAt(r)===F);)r++;let A=e.slice(i,r);if(!A)return null;let C=A.charCodeAt(0),l=C>=J&&C<=G||A.indexOf(\"-\")!==-1,_=r;for(;r<n&&(e.charCodeAt(r)===N||e.charCodeAt(r)===k||e.charCodeAt(r)===M);)r++;let d=e.slice(_,r);if(r===_&&r<n){var u=e.charCodeAt(r);if(u!==U&&u!==ge)return null}let c=r,R={},s=!1;for(var T=null;r<n;){let I=e.charCodeAt(r);if(I===U){let O=T?Na(e,c,r,T):e.slice(c,r);return{r:s,u:l,f:a,b:O,q:T!=null,n:!1,g:d,attrs:R,end:r+1,tag:A}}if(I===N||I===k||I===M){r++;continue}if(I===ge&&r+1<n&&e.charCodeAt(r+1)===U){s=r>c&&e.charCodeAt(r-1)===N;let O=T?Na(e,c,r,T):e.slice(c,r);return{r:s,u:l,f:a,b:O,q:T!=null,n:!0,g:d,attrs:R,end:r+2,tag:A}}var f=r,h=e.charCodeAt(r);if(!(h>=ie&&h<=ce||h>=J&&h<=G||h===he||h===Ge))return null;for(r++;r<n;){var g=e.charCodeAt(r);if(g>=ie&&g<=ce||g>=J&&g<=G||g>=W&&g<=z||g===he||g===ar||g===Ge||g===F)r++;else break}for(var S=e.slice(f,r),p=r;r<n&&(e.charCodeAt(r)===N||e.charCodeAt(r)===k);)r++;var H,w;if(e.charCodeAt(r)===Cr){for(r++;r<n&&(e.charCodeAt(r)===N||e.charCodeAt(r)===k);)r++;var E=e.charCodeAt(r);if(E===Ir||E===Dr){r++;for(var m=r;r<n&&e.charCodeAt(r)!==E;)r++;if(r>=n)return null;if(H=e.slice(m,r),r++,r<n){var y=e.charCodeAt(r);if(y!==N&&y!==k&&y!==M&&y!==U&&y!==ge)return null}w=r}else if(E===Lr){var x=1,m=r;for(r++;r<n&&x>0;){var g=e.charCodeAt(r);g===Lr?x++:g===Bt&&x--,r++}H=e.slice(m,r),w=r}else{for(var m=r;r<n;){var B=e.charCodeAt(r);if(B===N||B===k||B===U||B===M||B===Ir||B===Dr||B===Cr||B===ae||B===re)break;r++}if(r===m)return null;H=e.slice(m,r),w=r}}else H=\"\",w=p;Ui(S,H,l)?(T===null&&(T=[]),T.push(f,w)):R[S]=H}return null}function cr(e){var t=e.indexOf(\"<\");if(t===-1)return e;for(var r=\"\",n=0,a=!1;t!==-1;){var i=wr(e,t);i?(i.q&&(r+=e.slice(n,t)+gn(i),n=i.end,a=!0),t=e.indexOf(\"<\",i.end)):t=e.indexOf(\"<\",t+1)}return a?r+e.slice(n):e}function Wi(e,t,r){if(!r.optimizeForStreaming&&e.indexOf(\"[\")===-1)return!1;for(var n=0,a=e.length,i=!1,o=!1;n<a;){for(var A=e.indexOf(`\n`,n),C=A<0?a:A,l=n,_=0;l<C&&_<4;)if(e.charCodeAt(l)===N)_++,l++;else if(e.charCodeAt(l)===k)_+=4,l++;else break;if(l>=C){i=!1,n=A<0?a:A+1;continue}if(_<4){var d=e.charCodeAt(l);if(d===re||d===Oe){for(var u=d,c=0,R=l;R<C&&e.charCodeAt(R)===u;)c++,R++;if(c>=3){var s=!0;if(u===re){for(var T=R;T<C;T++)if(e.charCodeAt(T)===re){s=!1;break}}if(s){i=!1;for(var f=A<0?a:A+1;f<a;){for(var h=f,g=0;h<a&&g<4;){var S=e.charCodeAt(h);if(S===N)g++,h++;else if(S===k)g+=4,h++;else break}if(g<4&&h<a&&e.charCodeAt(h)===u){for(var p=0;h<a&&e.charCodeAt(h)===u;)p++,h++;if(p>=c){for(;h<a&&(e.charCodeAt(h)===N||e.charCodeAt(h)===k);)h++;if(h>=a||e.charCodeAt(h)===M){n=h>=a?a:h+1;break}}}for(;f<a&&e.charCodeAt(f)!==M;)f++;f<a&&f++}f>=a&&(n=a,o=!0);continue}}}}for(var H=l;H<C&&e.charCodeAt(H)===U;){H++,H<C&&e.charCodeAt(H)===N&&H++;for(var w=0;H<C&&w<4;)if(e.charCodeAt(H)===N)w++,H++;else if(e.charCodeAt(H)===k)w+=4,H++;else break;if(w>=4)break;i=!1}if(!i&&_<4&&H<C&&e.charCodeAt(H)===_e&&!(H+1<a&&e.charCodeAt(H+1)===ur)){var E=Za(e,H,t);if(E){n=E,i=!1;continue}}var m=e.charCodeAt(l);if(m===lr&&_<4)i=!1;else if(_<4&&(m===F||m===ke||m===he)){for(var y=l,x=0;y<C;){var B=e.charCodeAt(y);if(B===m)x++;else if(B!==N&&B!==k)break;y++}i=!(x>=3&&y>=C)}else i=!0;n=A<0?a:A+1}return o}function Za(e,t,r){let n=e.length;if(e.charCodeAt(t)!==_e)return null;let a=t+1<n&&e.charCodeAt(t+1)===ur,i=t+1;for(;i<n;){var o=e.charCodeAt(i);if(o===qe){i++;break}if(o===_e)return null;o===me&&i+1<n&&i++,i++}if(i>n||e.charCodeAt(i-1)!==qe)return null;let A=e.slice(t+1,i-1);if(A.length>999)return null;let C=Ft(A);if(!C||i>=n||e.charCodeAt(i)!==Ge)return null;i++;let l=!1;for(;i<n;){let I=e.charCodeAt(i);if(I===N||I===k)i++;else if(I===M&&!l)l=!0,i++;else break}if(a){let I=e.indexOf(`\n`,i),O=I<0?n:I,D=e.slice(i,O).trim();return r[C]={target:D,title:void 0},I<0?n:I+1}var _;if(i<n&&e.charCodeAt(i)===ae){i++;for(var d=i;i<n&&e.charCodeAt(i)!==U&&e.charCodeAt(i)!==M;)e.charCodeAt(i)===me&&i+1<n&&i++,i++;if(i>=n||e.charCodeAt(i)!==U)return null;_=e.slice(d,i),i++;for(var u=e.indexOf(`\n`,i),c=u<0?n:u,R=i;R<c&&(e.charCodeAt(R)===N||e.charCodeAt(R)===k);)R++;if(R<c){if(R===i)return null;var s=e.charCodeAt(R);if(s!==Ir&&s!==Dr&&s!==ir)return null}}else{for(var d=i,T=0;i<n;){var o=e.charCodeAt(i);if(o===ir)T++;else if(o===fr){if(T===0)break;T--}else{if(o===N||o===k||o===M)break;o===me&&i+1<n&&i++}i++}if(_=e.slice(d,i),!_)return null}for(;i<n&&(e.charCodeAt(i)===N||e.charCodeAt(i)===k);)i++;var f=e.indexOf(`\n`,i),h=f<0?n:f,g,S=!1,p=i,H=i;if(i===h&&i<n)for(H=i+1;H<n&&(e.charCodeAt(H)===N||e.charCodeAt(H)===k);)H++;if(H<n){var w=e.charCodeAt(H);if(w===Ir||w===Dr||w===ir){for(var E=w===ir?41:w,m=H+1,y=m;m<n;){var x=e.charCodeAt(m);if(x===E){for(var B=m+1;B<n&&(e.charCodeAt(B)===N||e.charCodeAt(B)===k);)B++;(B>=n||e.charCodeAt(B)===M)&&(g=e.slice(y,m),S=!0,p=B<n?B+1:n);break}if(x===me&&m+1<n){m+=2;continue}if(x===M&&m+1<n&&e.charCodeAt(m+1)===M)break;m++}if(!S&&H===i)return null}}if(S)return r[C]||(r[C]={target:Nr(_t(_)),title:g===void 0?g:Nr(_t(g))}),p;for(;i<h&&(e.charCodeAt(i)===N||e.charCodeAt(i)===k);)i++;return i<h?null:(r[C]||(r[C]={target:Nr(_t(_)),title:g}),f<0?n:f+1)}var or=new Uint8Array(la);for(or[lr]|=Rr,or[U]|=Rr,or[F]|=Rr|yr,or[Or]|=Rr,or[ke]|=Rr|yr,or[he]|=Rr|yr,or[re]|=Rr|yr,or[Oe]|=Rr|yr,or[ae]|=Rr|yr,or[_e]|=yr,or[Ke]|=yr,or[ye]|=Rr,vt=W;vt<=z;vt++)or[vt]|=Rr;var vt;function ka(e){if(e.indexOf(\"[\")<0&&e.indexOf(\"]\")<0)return!1;for(var t=0;t<e.length;t++){if(e.charCodeAt(t)===me){t++;continue}if(e.charCodeAt(t)===_e||e.charCodeAt(t)===qe)return!0}return!1}function Ft(e){for(var t=e.length,r=!0,n=t>0,a=0;a<t;a++){var i=e.charCodeAt(a);if(i===N){if(r){n=!1;break}r=!0}else if(i<33||i>126||i>=J&&i<=G){n=!1;break}else r=!1}if(n&&!r)return e;var o=e.replace(/\\s+/g,\" \").trim();return o.indexOf(\"\\u1E9E\")!==-1?o.replace(/\\u1E9E/g,\"ss\").toLowerCase():o.toLowerCase()}function bn(e){return e<Ct?or[e]:e===Wn?Xr:0}function _t(e){return e.indexOf(\"\\\\\")===-1?e:e.replace(/\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g,\"$1\")}var vn=null,Tn=-1,Ut=-1;function Ae(e,t){if(t>=Tn&&t<=Ut&&e===vn)return Ut;var r=e.indexOf(`\n`,t),n=r<0?e.length:r;return vn=e,Tn=t,Ut=n,n}function q(e,t){let r=Ae(e,t);return r<e.length?r+1:r}function St(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==N&&n!==k)break;t++}return t}function wa(e,t){let r=q(e,t);for(;r<e.length;){let n=Ae(e,r);if(er(e,r,n))return r;r=q(e,r)}return e.length}function Wr(e,t,r,n){let a=0;for(;t+a<r&&e.charCodeAt(t+a)===n;)a++;return a}var oe=0,te=0;function Le(e,t,r){for(oe=0,te=0;t+te<r;){let n=e.charCodeAt(t+te);if(n===k)oe+=4-oe%4;else if(n===N)oe++;else break;te++}}function er(e,t,r){return St(e,t,r)>=r}function zi(e,t){if(!e)return e;var r=t.v||(t.v=Object.create(null)),n=r[e];if(n===void 0)return r[e]=0,e;for(var a=n+1,i=`${e}-${a}`;r[i]!==void 0;)a++,i=`${e}-${a}`;return r[e]=a,r[i]=0,i}function Zi(e,t,r,n){let a=Ae(e,t);if(Le(e,t,a),oe>3)return null;let i=t+te;if(e.charCodeAt(i)!==lr)return null;let o=Wr(e,i,a,35);if(o<1||o>6||(i+=o,i<a&&e.charCodeAt(i)!==N&&e.charCodeAt(i)!==k))return null;i=St(e,i,a);for(var A=a;A>i&&e.charCodeAt(A-1)===N;)A--;for(var C=A;A>i&&e.charCodeAt(A-1)===lr;)A--;if(A<C)if(A===i||e.charCodeAt(A-1)===N)for(;A>i&&e.charCodeAt(A-1)===N;)A--;else A=C;let l=e.slice(i,A),_=dt(l,!1,r,n);return{node:{type:v.heading,level:o,children:_,id:\"\"},end:q(e,a)}}function Qi(e,t,r){var n=e.charCodeAt(t);if(n!==Cr&&n!==F)return!1;for(var a=t;a<r&&e.charCodeAt(a)===n;)a++;for(;a<r&&(e.charCodeAt(a)===N||e.charCodeAt(a)===k);)a++;return a>=r}function Fr(e,t){let r=Ae(e,t);if(Le(e,t,r),oe>3)return null;let n=t+te,a=e.charCodeAt(n);if(a!==F&&a!==ke&&a!==he)return null;let i=0;for(;n<r;){let o=e.charCodeAt(n);if(o===a)i++;else if(o!==N&&o!==k)return null;n++}return i<3?null:{node:{type:v.breakThematic},end:q(e,r)}}var ma=0,ba=0,pa=\"\";function Vi(e,t,r){let n=Ae(e,t);if(Le(e,t,n),oe>3)return null;let a=oe,i=te,o=t+te,A=e.charCodeAt(o);if(A!==re&&A!==Oe)return null;let C=Wr(e,o,n,A);if(C<3)return null;o+=C;let l=St(e,o,n),_=n;if(A===re){for(let D=l;D<n;D++)if(e.charCodeAt(D)===re)return null}for(;_>l&&(e.charCodeAt(_-1)===N||e.charCodeAt(_-1)===k);)_--;let d=e.slice(l,_),u=\"\",c=\"\",R=d.indexOf(\" \");R===-1?u=d:(u=d.slice(0,R),c=d.slice(R+1).trim()),u=_t(u);var s;if(c){Ea.lastIndex=0;for(var T;(T=Ea.exec(c))!=null;)s||(s={}),s[T[1]]=T[2]===void 0?T[3]:T[2]}let f=q(e,n),{length:h,length:g}=e;var S;A===ma&&C===ba?S=pa:(S=String.fromCharCode(A).repeat(C),ma=A,ba=C,pa=S);for(var p=f;p<e.length;){var H=e.indexOf(S,p);if(H===-1)break;for(var w=H,E=0;w>0&&E<4&&e.charCodeAt(w-1)===N;)w--,E++;if(E<=3&&(w===0||e.charCodeAt(w-1)===M)){for(var m=H+C;m<e.length&&e.charCodeAt(m)===A;)m++;var y=Ae(e,m);if(er(e,m,y)){h=w,g=q(e,y);break}}p=H+1}var x;if(a===0)x=h>f&&e.charCodeAt(h-1)===M?e.slice(f,h-1):e.slice(f,h);else{x=\"\";for(var B=f;B<h;){var I=Ae(e,B);Le(e,B,I);var O=Math.min(te,a);x+=`${e.slice(B+O,I)}\n`,B=q(e,I)}x.length>0&&x.charCodeAt(x.length-1)===M&&(x=x.slice(0,-1))}return{node:{type:v.codeBlock,lang:u||void 0,text:x,infoString:c||void 0,attrs:s},end:g}}function Ia(e,t,r){for(var n=0,a=t;a<r&&n<4;)e.charCodeAt(a)===k?n+=4-n%4:n++,a++;if(n<4)return\"\";for(var i=\"\",o=4;o<n;o++)i+=\" \";return i+e.slice(a,r)}function Yi(e,t){let r=Ae(e,t);if(Le(e,t,r),oe<4)return null;let n=\"\",a=t;for(;a<e.length;){let u=Ae(e,a);if(Le(e,a,u),er(e,a,u)){for(var i=`${Ia(e,a,u)}\n`,o=q(e,u);o<e.length;){var A=Ae(e,o);if(er(e,o,A)){i+=`${Ia(e,o,A)}\n`,o=q(e,A);continue}Le(e,o,A),oe>=4&&(n+=i,a=o);break}if(a!==o)break;continue}if(oe<4)break;let c=0,R=0;var C=0;for(let s=a;s<u&&R<4;s++){if(e.charCodeAt(s)===k){var l=4-R%4;R+l>4&&(C=R+l-4),R+=l}else R++;c++}var _=\"\";if(C>0)for(var d=0;d<C;d++)_+=\" \";_+=e.slice(a+c,u),n+=`${_}\n`,a=q(e,u)}for(;n.length>0&&n.charCodeAt(n.length-1)===M;)n=n.slice(0,-1);return n?{node:{type:v.codeBlock,lang:void 0,text:n,infoString:void 0,attrs:void 0},end:a}:null}function qi(e,t,r,n){let a=Ae(e,t);if(Le(e,t,a),oe>3)return null;let i=t+te;if(e.charCodeAt(i)!==U)return null;let o=\"\",A=t,C,l=!1,_=!1,d=!1;for(;A<e.length;){let L=Ae(e,A);Le(e,A,L);let Z=A+te;if(e.charCodeAt(Z)===U){let ne=Z+1;var u=oe+1,c=!1;if(ne<L){var R=e.charCodeAt(ne);R===N?(ne++,u++,c=!0):R===k&&(c=!0)}for(var s=\"\",T=!1,f=ne;f<L;f++)if(e.charCodeAt(f)===k){T=!0;break}if(T){var h=u;if(c&&ne<L&&e.charCodeAt(ne)===k){for(var g=4-h%4,S=0;S<g-1;S++)s+=\" \";h+=g,ne++}for(var p=ne;p<L;p++)if(e.charCodeAt(p)===k){for(var H=4-h%4,w=0;w<H;w++)s+=\" \";h+=H}else s+=e[p],h++}else s=e.slice(ne,L);if(!(o||C)){let ve=s.match(/^\\[!([A-Za-z]+)\\]\\s*$/);if(ve){C=ve[1].toUpperCase(),A=q(e,L);continue}}o+=`${s}\n`;var E=s.trimStart();E.startsWith(\"```\")||E.startsWith(\"~~~\")?d=!d:(s.startsWith(\" \")||s.startsWith(\"\t\"))&&(d=!0),_=E.length>0,A=q(e,L)}else if(o&&!er(e,A,L)&&_){if(oe<4){var m=A+te,y=m<L?e.charCodeAt(m):0;if(y===lr||y===U||y===re||y===Oe||y===ae||(y===F||y===ke||y===he)&&Fr(e,A)||(y===F||y===ke||y===Or)&&m+1<L&&(e.charCodeAt(m+1)===N||e.charCodeAt(m+1)===k))break;if(y>=W&&y<=z){for(var x=m;x<L&&e.charCodeAt(x)>=W&&e.charCodeAt(x)<=z;)x++;if(x<L&&(e.charCodeAt(x)===ar||e.charCodeAt(x)===fr))break}}if(d)break;o+=`${e.slice(A,L)}\n`,l=!0,A=q(e,L)}else break}if(!(o||C))return null;var{inBlockQuote:B,l:I}=r;r.inBlockQuote=!0,l&&(r.l=!0);var O=r.i;r.i=O||!er(e,A,e.length);let D=Ur(o||\"\",r,n);return r.i=O,r.inBlockQuote=B,r.l=I,{node:{type:v.blockQuote,children:D,alert:C||void 0},end:A}}function Qa(e,t,r){for(var n=0,a=t;a<r;a++)e.charCodeAt(a)===k?n+=4-n%4:n++;return n}function Kr(e,t,r){if(Le(e,t,r),oe>3)return null;var n=t+te;if(n>=r)return null;var a=e.charCodeAt(n),i=oe,o=n,A=n;if(a===F||a===ke||a===Or){if(o=n+1,o<r&&e.charCodeAt(o)!==N&&e.charCodeAt(o)!==k&&e.charCodeAt(o)!==M)return null}else if(a>=W&&a<=z){for(;A<r&&A-n<9;){var C=e.charCodeAt(A);if(C<W||C>z)break;A++}if(A>n&&A<r){var l=e.charCodeAt(A);if(l===ar||l===fr){if(o=A+1,o<r&&e.charCodeAt(o)!==N&&e.charCodeAt(o)!==k&&e.charCodeAt(o)!==M)return null}else return null}else return null}else return null;var _=o,d=Qa(e,t,o),u=0,c=_,R=d;if(_>=r)return{ordered:a>=W&&a<=z,marker:a>=W&&a<=z?e[A]:e[n],start:a>=W&&a<=z?Number.parseInt(e.slice(n,A),10):void 0,contentStart:_,contentCol:d+1,markerCol:i,isEmpty:!0};for(;c<r&&(e.charCodeAt(c)===N||e.charCodeAt(c)===k);){if(e.charCodeAt(c)===k){var s=4-R%4;R+=s}else R++;c++,u++}var T=c>=r,f=R-d;return T||f>4?(R=d+1,c=_+1,u=1):u===0&&(R=d+1,c=_,u=1),{ordered:a>=W&&a<=z,marker:a>=W&&a<=z?e[A]:e[n],start:a>=W&&a<=z?Number.parseInt(e.slice(n,A),10):void 0,contentStart:c,contentCol:R,markerCol:i,isEmpty:T}}var ft=0;function Oa(e,t,r,n){var a=0,i=t;for(ft=0;i<r&&a<n;){var o=e.charCodeAt(i);if(o===k){var A=4-a%4;if(a+A>n){ft=a+A-n,i++,a=n;break}a+=A}else if(o===N)a++;else break;i++}return i}function La(e,t,r,n){var a=Ae(e,t),i=Kr(e,t,a);if(!i)return null;var o=[],A=t,C=i.contentCol,l=\"\",_=i.isEmpty,d=!1,u=!1;if(!i.isEmpty){for(var c=!1,R=i.contentStart;R<a;R++)if(e.charCodeAt(R)===k){c=!0;break}if(c){var s=\"\",T=Qa(e,t,i.contentStart),f=T-i.contentCol;if(f>0)for(var h=0;h<f;h++)s+=\" \";for(var g=i.contentStart;g<a;g++)if(e.charCodeAt(g)===k){for(var S=4-T%4,p=0;p<S;p++)s+=\" \";T+=S}else s+=e[g],T++;l=`${s}\n`}else l=`${e.slice(i.contentStart,a)}\n`}for(A=q(e,a);A<e.length;){var H=Ae(e,A);Le(e,A,H);var w=e.charCodeAt(A+te);if(oe<C&&(w===F||w===ke||w===he)&&oe<=3&&Fr(e,A))break;var E=Kr(e,A,H);if(E&&E.ordered===i.ordered&&E.marker===i.marker&&E.markerCol<C){o.push({contentCol:C,raw:l,hasBlankAfter:d,isEmpty:_}),d&&(u=!0),C=E.contentCol,_=E.isEmpty,d=!1,l=E.isEmpty?\"\":`${e.slice(E.contentStart,H)}\n`,A=q(e,H);continue}if(er(e,A,H)){var m=Oa(e,A,H,C);if(ft>0||m<H){for(var y=\"\",x=0;x<ft;x++)y+=\" \";l+=`${y+e.slice(m,H)}\n`}else l+=`\n`;A=q(e,H);for(var B=!1,I=0;I<l.length;I++){var O=l.charCodeAt(I);if(O!==M&&O!==Er&&O!==N&&O!==k){B=!0;break}}if(_&&!B)if(A<e.length){var D=Ae(e,A),P=Kr(e,A,D);if(!P||P.ordered!==i.ordered||P.marker!==i.marker)break;d=!0}else break;if(A<e.length){var L=Ae(e,A);Le(e,A,L);var Z=e.charCodeAt(A+te);if((Z===F||Z===ke||Z===he)&&oe<=3&&Fr(e,A))break;var ne=Kr(e,A,L);if(ne&&ne.ordered===i.ordered&&ne.marker===i.marker&&ne.markerCol<C){d=!0;continue}if(!er(e,A,L)&&oe<C)break}continue}if(oe>=C){var ve=Oa(e,A,H,C);if(ft>0){for(var Q=\"\",Pe=C,Ee=0;Ee<ft;Ee++)Q+=\" \",Pe++;for(var ue=ve;ue<H;ue++)if(e.charCodeAt(ue)===k){for(var He=4-Pe%4,Fe=0;Fe<He;Fe++)Q+=\" \";Pe+=He}else Q+=e[ue],Pe++;l+=`${Q}\n`}else l+=`${e.slice(ve,H)}\n`;A=q(e,H);continue}for(var X=!1,be=0;be<l.length;be++){var j=l.charCodeAt(be);if(j!==M&&j!==Er&&j!==N&&j!==k){X=!0;break}}if(!d&&X&&!_){var se=A+te,le=e.charCodeAt(se),Ue=le===lr||le===U||le===ae||le===re||le===Oe||(le===F||le===ke||le===he||le===Or)&&(Fr(e,A)!=null||Kr(e,A,H)!=null)||le>=W&&le<=z&&Kr(e,A,H)!=null;if(!Ue){l+=`\u001e${e.slice(se,H)}\n`,A=q(e,H);continue}}break}if(o.push({contentCol:C,raw:l,hasBlankAfter:d,isEmpty:_}),o.length===0)return null;var K=u;if(!K)for(var we=0;we<o.length;we++){if(o[we].hasBlankAfter&&we<o.length-1){K=!0;break}if(!o[we].isEmpty){for(var $e=o[we].raw,Ce=$e.length,Re=0,We=!1,Te=!1,Me=!1,Be=!1,ze=0,V=0,Ne=-1;Re<Ce;){var Y=$e.indexOf(`\n`,Re);if(Y<0&&(Y=Ce),Be){Le($e,Re,Y);for(var pe=$e.slice(Re+te,Y),Ze=0;Ze<pe.length&&pe.charCodeAt(Ze)===ze;)Ze++;Ze>=V&&pe.slice(Ze).trim()===\"\"&&(Be=!1),Re=Y<Ce?Y+1:Ce;continue}if(er($e,Re,Y)){Ne>=0?Me=!0:We&&(Te=!0),Re=Y<Ce?Y+1:Ce;continue}if(Le($e,Re,Y),Ne>=0){if(oe>=Ne){Re=Y<Ce?Y+1:Ce;continue}var b=Kr($e,Re,Y);if(b&&b.markerCol<Ne&&b.contentCol<=Ne){Re=Y<Ce?Y+1:Ce;continue}if(b){Re=Y<Ce?Y+1:Ce;continue}Ne=-1,Me&&(Te=!0,Me=!1)}var fe=$e.slice(Re+te,Y),tr=fe.charCodeAt(0);if((tr===re||tr===Oe)&&oe<=3){for(var ee=0;ee<fe.length&&fe.charCodeAt(ee)===tr;)ee++;if(ee>=3){if(Te&&We){K=!0;break}Be=!0,ze=tr,V=ee,We=!0,Re=Y<Ce?Y+1:Ce;continue}}var sr=oe<=3?Kr($e,Re,Y):null;if(sr&&We){if(Te){K=!0;break}Ne=sr.contentCol,Me=!1,Re=Y<Ce?Y+1:Ce,We=!0;continue}if(Te){K=!0;break}We=!0,Re=Y<Ce?Y+1:Ce}if(K)break}}for(var de=[],Se=0;Se<o.length;Se++){for(var Ye=o[Se],De=Ye.raw,Xe=De.length;Xe>0&&De.charCodeAt(Xe-1)===M;)Xe--;var Je=Xe<De.length?De.slice(0,Xe):De,zr=null;if(Je.length>=3&&Je.charCodeAt(0)===_e){var xr=Je[1];(xr===\" \"||xr===\"x\"||xr===\"X\")&&Je.charCodeAt(2)===qe&&(zr={type:v.gfmTask,completed:xr===\"x\"||xr===\"X\"},Je=Je.slice(3))}var Ie;if(Ye.isEmpty&&Je.trim()===\"\")Ie=[];else if(K){var Zr=r.inList;r.inList=!0;var mt=r.i;r.i=mt||Se!==o.length-1,Ie=Ur(Je,r,n),r.i=mt,r.inList=Zr}else{var br=r.inList;r.inList=!0;var Qr=r.i;if(r.i=Qr||Se!==o.length-1,Ie=Ur(Je,r,n),r.i=Qr,r.inList=br,Ie.length===1&&Ie[0].type===v.paragraph)Ie=Ie[0].children;else if(r.p){var Mr=[];r.p.push({src:Ie,dest:Mr,unwrap:!0}),Ie=Mr}else{for(var vr=[],nr=0;nr<Ie.length;nr++)if(Ie[nr].type===v.paragraph)for(var Tr=Ie[nr].children,ot=0;ot<Tr.length;ot++)vr.push(Tr[ot]);else vr.push(Ie[nr]);Ie=vr}}if(zr){var Vr=[zr,{type:v.text,text:\" \"}];if(r.p)r.p.push({src:Ie,dest:Vr,unwrap:!1});else for(var $r=0;$r<Ie.length;$r++)Vr.push(Ie[$r]);de.push(Vr)}else de.push(Ie)}return{node:{type:i.ordered?v.orderedList:v.unorderedList,start:i.ordered?i.start:void 0,items:de},end:A}}var zt=new Set([\"address\",\"article\",\"aside\",\"base\",\"basefont\",\"blockquote\",\"body\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hr\",\"html\",\"iframe\",\"legend\",\"li\",\"link\",\"main\",\"menu\",\"menuitem\",\"nav\",\"noframes\",\"ol\",\"optgroup\",\"option\",\"p\",\"param\",\"search\",\"section\",\"summary\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\"]);function kr(e,t,r){let n={};for(let[o,A]of Object.entries(e)){let C=o.toLowerCase();if(C===\"style\"&&typeof A==\"string\"){let l={},_=[],d=0,u=0;for(let R=0;R<A.length;R++){let s=A.charCodeAt(R);s===ir?d++:s===fr?d--:s===gt&&d===0&&(_.push(A.slice(u,R)),u=R+1)}u<A.length&&_.push(A.slice(u));let c=!1;_.forEach(R=>{let s=R.indexOf(\":\");if(s===-1)return;let T=R.slice(0,s).trim(),f=R.slice(s+1).trim();if(T&&f){if(/url\\s*\\(\\s*(javascript|vbscript|data:(?!image\\/))/i.test(f)){c=!0;return}let h=T.indexOf(\"-\")===-1?T:T.replace(/-([a-z])/g,(g,S)=>S.toUpperCase());l[h]=f}}),!c&&Object.keys(l).length>0&&(n[o]=l)}else if((C===\"href\"||C===\"src\")&&r?.sanitizer){let l=r.sanitizer(A,t,C);l!=null&&(n[o]=l)}else if(A===\"\")n[o]=!0;else if(A.length>=2&&A.charCodeAt(0)===Lr&&A.charCodeAt(A.length-1)===Bt){var a=A.slice(1,-1);if(a.length>0){var i=a.charCodeAt(0);if(i===_e||i===Lr)try{n[o]=JSON.parse(a);continue}catch{}}if(a===\"true\"){n[o]=!0;continue}if(a===\"false\"){n[o]=!1;continue}if(r?.evalUnserializableExpressions)try{n[o]=(0,eval)(`(${a})`);continue}catch{}n[o]=a}else n[o]=A}return n}function Gr(e,t,r){let n=t.length;if(n===0)return r;var a=t.charCodeAt(0),i=a>=J&&a<=G||a>=ie&&a<=ce;if(!i){for(var o=String.fromCharCode(a),A=e.length-n,C=r;C<=A;){var l=e.indexOf(o,C);if(l===-1||l>A)return-1;for(var _=!0,d=1;d<n;d++){var u=e.charCodeAt(l+d),c=t.charCodeAt(d);if(u>=J&&u<=G&&(u+=_r),c>=J&&c<=G&&(c+=_r),u!==c){_=!1;break}}if(_)return l;C=l+1}return-1}a>=J&&a<=G&&(a+=_r);for(let s=r;s<=e.length-n;s++){var R=e.charCodeAt(s);if(R>=J&&R<=G&&(R+=_r),R!==a)continue;let T=!0;for(let f=1;f<n;f++){let h=e.charCodeAt(s+f),g=t.charCodeAt(f);if(h>=J&&h<=G&&(h+=_r),g>=J&&g<=G&&(g+=_r),h!==g){T=!1;break}}if(T)return s}return-1}function ji(e,t,r){let n=t.length;var a=t.charCodeAt(0);a>=J&&a<=G&&(a+=_r);for(let o=Math.min(r,e.length-n);o>=0;o--){var i=e.charCodeAt(o);if(i>=J&&i<=G&&(i+=_r),i!==a)continue;let A=!0;for(let C=1;C<n;C++){let l=e.charCodeAt(o+C),_=t.charCodeAt(C);if(l>=J&&l<=G&&(l+=_r),_>=J&&_<=G&&(_+=_r),l!==_){A=!1;break}}if(A)return o}return-1}var Zt=-1;function Sn(e,t,r){let n=r.toLowerCase(),a=`<${n}`,i=`</${n}`,o=1,A=t,C=e.length;for(Zt=-1;A<C&&o>0;){let d=Gr(e,a,A),u=Gr(e,i,A);if(u===-1)return-1;if(d!==-1&&d<u){let c=wr(e,d);c?(c.tag.toLowerCase()===n&&!c.f&&!c.n&&!nt(c.tag)&&o++,A=c.end):A=d+1}else{var l=u+i.length,_=l<C?e.charCodeAt(l):62;if((_===U||_===N||_===k||_===M)&&(o--,o===0)){Zt=u;let c=u+i.length;for(;c<C&&e.charCodeAt(c)!==U;)c++;return c+1}A=u+1}}return-1}function Va(e,t,r,n){if(n.ignoreHTMLBlocks||n.disableParsingRawHTML)return null;var a=Ae(e,t);if(Le(e,t,a),oe>3&&!r.inHTML)return null;var i=t+te;if(e.charCodeAt(i)!==ae)return null;var o=e.indexOf(\">\",i+1);if(o!==-1&&o<a){var A=e.slice(i+1,o);if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(A)||/^[^\\s@]+@[^\\s@]+$/.test(A))return null}var C=eo(e,i);if(C>=1&&C<=5){var l=e.length;if(C===1){for(var _=e.length,d=0;d<$n.length;d++){var u=Gr(e,`</${$n[d]}>`,i);u>=0&&u<_&&(_=u)}if(_<e.length){var c=e.indexOf(\">\",_);l=c>=0?q(e,c+1):e.length}}else{var R=C===2?\"-->\":C===3?\"?>\":C===4?\">\":\"]]>\",s=e.indexOf(R,i);s>=0&&(l=q(e,s+R.length))}var T=e.slice(i,l);if(C>=2)return{node:{type:v.htmlComment,text:T,s:!1,raw:!0},end:l};var f=\"div\",h=T.match(/^<\\/?([a-zA-Z][a-zA-Z0-9-]*)/);h&&(f=h[1]);var g=wr(e,i),S={},p;g&&!g.f&&(S=kr(g.attrs,f,n),p=g.g+g.b);var H=[],w=f.toLowerCase(),E=`</${w}`,m=Gr(T,E,0),y=\"\",x,B,I;if(g?.f){I=T.slice(0,g.end-i);for(var O=T.slice(g.end-i);O.length>0&&O.charCodeAt(O.length-1)===M;)O=O.slice(0,-1);O&&(B=cr(O))}else if(g&&!g.f){var D=g.end-i;if(m===-1){for(var P=T;P.length>0&&P.charCodeAt(P.length-1)===M;)P=P.slice(0,-1);x=cr(P)}else{var L=D;T.charCodeAt(L)===M&&L++;for(var Z=m;Z>L;){var ne=T.charCodeAt(Z-1);if(ne!==N&&ne!==k&&ne!==M&&ne!==Er)break;Z--}var ve=T.slice(L,Z);ve&&(B=cr(ve));for(var Q=T.slice(m);Q.length>0&&Q.charCodeAt(Q.length-1)===M;)Q=Q.slice(0,-1);I=cr(Q),y=T.slice(D,m).trim()}}var Pe=g?g.f:!1;return{node:{type:v.htmlBlock,tag:f,attrs:S,b:p,children:H,e:B,h:I,j:x,text:y,c:!0,a:Pe},end:l}}if(C===6||C===7){var Ee=wa(e,t),ue=Ee<e.length?Ee:e.length,He=e.slice(i,ue),Fe=Ee<e.length?q(e,Ee):e.length,X=wr(e,i);if(X){var be=X.tag,j=be.toLowerCase(),se=X.f;if(se){var le=e.slice(X.end,ue);return{node:{type:v.htmlBlock,tag:be,attrs:{},children:[],h:e.slice(i,X.end),e:le?cr(le):void 0,text:le,c:!0,a:!0},end:Fe}}if(X.n||nt(be))return{node:{type:v.htmlBlock,tag:be,attrs:kr(X.attrs,be,n),b:X.g+X.b,children:[],text:\"\",c:!1,a:!1},end:X.end<e.length&&e.charCodeAt(X.end)===M?X.end+1:X.end};var Ue=r.d||0,K=e.slice(i,ue),we=-1,$e=-1,Ce=!1;if(Ue<10){for(var Re=`</${j}`,We=X.end-i,Te=1,Me=We;Me<K.length&&Te>0;){var Be=Gr(K,`<${j}`,Me),ze=Gr(K,Re,Me);if(ze===-1)break;if(Be!==-1&&Be<ze){var V=Be+j.length+1;if(V<K.length){var Ne=K.charCodeAt(V);(Ne===N||Ne===k||Ne===M||Ne===U||Ne===ge)&&Te++}Me=Be+1}else{var Y=ze+Re.length;if(Y<K.length){var pe=K.charCodeAt(Y);if((pe===U||pe===N||pe===k||pe===M)&&(Te--,Te===0)){we=ze;for(var Ze=Y;Ze<K.length&&K.charCodeAt(Ze)!==U;)Ze++;$e=Ze+1;break}}else if(Te--,Te===0){we=ze,$e=K.length;break}Me=ze+1}}if(we===-1&&!X.f&&(C===6||X.u)){var b=Sn(e,X.end,j);if(b!==-1){for(var fe=Zt,tr=X.end,ee=!1,sr=!1,de=!1,Se=0,Ye=!1,De=!1,Xe=tr;Xe<fe;){var Je=e.charCodeAt(Xe);if(Je===M)De&&(ee=!0),Ye||Se++,De=!0,Xe++;else if(Je===N||Je===k)Xe++;else{if(!Ye&&(Ye=!0,Se>=2&&Je===ae)){de=!0;break}if(De=!1,Je===ae){var zr=e.charCodeAt(Xe+1)|32;if((zr===Mt||zr===on||zr===qr)&&(Ta.lastIndex=Xe,Ta.test(e))){sr=!0;break}}Xe++}}if(ee&&!de&&!sr){var xr=Ae(e,b);ue=xr,Fe=q(e,xr),K=e.slice(i,ue),He=e.slice(i,ue),we=fe-i,$e=b-i,Ce=!0}}}}var Ie=X.b.indexOf(`\n`)!==-1||X.g.indexOf(`\n`)!==-1,Zr=!1;if(we!==-1){var mt=K.slice($e).trim();Zr=mt.length===0}var br=!1,Qr=ue,Mr=Fe;if(we!==-1){var vr=i+$e,nr=Ae(e,vr-1);if(vr<nr){for(var Tr=vr;Tr<nr&&(e.charCodeAt(Tr)===N||e.charCodeAt(Tr)===k);)Tr++;if(Tr<nr&&e.charCodeAt(Tr)===ae){var ot=wr(e,Tr);ot&&!ot.f&&(br=!0,Qr=vr,Mr=vr,Zr=!0)}}if(!br){var Vr=q(e,nr);if(Vr<ue){for(var $r=Vr;$r<ue&&(e.charCodeAt($r)===N||e.charCodeAt($r)===k);)$r++;if($r<ue&&e.charCodeAt($r)===ae){var ni=wr(e,$r);ni&&(br=!0,Qr=nr,Mr=Vr,Zr=!0)}}}if(!br&&r.inHTML){br=!0,Qr=nr,Mr=q(e,nr);var ai=e.slice(vr,nr).trim();Zr=ai.length===0}}var At=[],Ar=\"\";if(we!==-1){Ar=K.slice(X.end-i,we);var lt=Ar.trim();if(lt){var{inline:ii,inHTML:oi,d:Ai}=r;r.inHTML=!0,r.d=Ue+1;var li=j===\"p\";if(li)r.inline=!0,At=dt(lt,!1,r,n);else{var yn=Ar.indexOf(`\n\n`)!==-1,xn=Rn.test(lt),Vt=Sa.test(lt),Ci=yn||xn||r.inHTML&&Vt,fi=Ar.length>=2&&Ar.charCodeAt(0)===M&&Ar.charCodeAt(Ar.length-1)===M&&!yn;fi&&!xn&&!Vt?At=[{type:v.text,text:lt}]:Ci||Vt?(r.inline=!1,At=Ur(Ar,r,n)):(r.inline=!0,At=dt(lt,!1,r,n))}r.inline=ii,r.inHTML=oi,r.d=Ai}}var Mn=!1;if(C===6&&we!==-1&&!r.inHTML&&!Ie){var _i=/<[a-zA-Z][^>]*>/.test(Ar),di=Ar.indexOf(`\n\n`)!==-1||Rn.test(Ar);_i&&!di&&(Mn=!0)}var ci=!Ce&&(r.inHTML||C===7||Ie||!Zr||Mn);if(ci){var ct,Sr,Bn=!1;if(we!==-1&&br){var Pn=!1;if(r.inHTML&&$e<K.length){for(var bt=$e;bt<K.length&&K.charCodeAt(bt)!==M;)bt++;var Yt=K.slice($e,bt).trim();Pn=Yt.length>1&&Yt.charCodeAt(0)===ae&&Yt.charCodeAt(1)!==ge}Sr=Pn?K.slice(X.end-i):Ar,Bn=!0}else(C===7||r.inHTML)&&we!==-1?(Sr=K.slice(X.end-i),Sr.charCodeAt(0)===M&&(Sr=Sr.slice(1))):br?ct=e.slice(i,Qr):Ie?ct=He:(Sr=K.slice(X.end-i),Sr.charCodeAt(0)===M&&(Sr=Sr.slice(1)));var Dn=ct!==void 0,qt=cr(ct===void 0?Sr||\"\":ct),Xn={type:v.htmlBlock,tag:be,attrs:kr(X.attrs,be,n),b:X.g+X.b,children:At,e:Dn?void 0:qt,j:Dn?qt:void 0,text:qt,c:!0,a:!1};return Bn&&(Xn.x=!0),{node:Xn,end:Mr}}var Jn=cr(Ar);return{node:{type:v.htmlBlock,tag:be,attrs:kr(X.attrs,be,n),b:X.g+X.b,children:At,e:Ce?void 0:Jn,text:Jn,c:!1,a:!1},end:Mr}}var pt=He.match(/^<(\\/?)([a-zA-Z][a-zA-Z0-9-]*)/),ui=pt?pt[2]:\"div\",jt=pt?pt[1]===\"/\":!1,en,Kn,Gn,It=\"\";if(jt){var rn=He.indexOf(\">\");rn===-1?en=He:(en=He.slice(0,rn+1),It=He.slice(rn+1),It&&(Kn=cr(It)))}else Gn=cr(He);return{node:{type:v.htmlBlock,tag:ui,attrs:{},children:[],e:Kn,h:en,j:Gn,text:jt?It:He,c:!0,a:jt},end:Fe}}var Qe=wr(e,i);if(!Qe)return null;var Br=Qe.tag,tn=Br.toLowerCase(),Fn=Br.charCodeAt(0),Ot=Fn>=J&&Fn<=G;if(!(Ot||zt.has(tn)||Nt.has(tn)||tn.includes(\"-\")))return null;if(Qe.f)return{node:{type:v.htmlSelfClosing,tag:Br,attrs:{},h:e.slice(i,Qe.end),a:!0},end:Qe.end};var Yr=Sn(e,Qe.end,Br),ut=[];if(Yr!==-1){var Ri=Zt,Lt=e.slice(Qe.end,Ri),yt=Lt.trim();if(yt){var Hi=Lt.indexOf(`\n\n`)!==-1,hi=Rn.test(yt),si=Sa.test(yt),{inline:$i,inHTML:gi,d:vi}=r;r.inHTML=!0,r.d=(r.d||0)+1,Hi||hi||si?(r.inline=!1,ut=Ur(Lt,r,n)):(r.inline=!0,ut=dt(yt,!1,r,n)),r.inline=$i,r.inHTML=gi,r.d=vi}var Ti=Ae(e,Yr),Si=e.slice(Yr,Ti).trim(),nn=Si?Yr:q(e,Yr),Un=Ot?e.slice(i,Yr):e.slice(i,nn),No=Ot?Yr:nn;return{node:{type:v.htmlBlock,tag:Br,attrs:kr(Qe.attrs,Br,n),b:Qe.g+Qe.b,children:ut,j:cr(Un),text:Ot?Lt:Un,c:!0,a:!1},end:nn}}var Rt=wa(e,Qe.end),Ei=Rt<e.length?q(e,Rt):Rt,an=e.slice(Qe.end,Rt);if(an.trim()){var{inline:Ni,inHTML:ki,d:wi}=r;r.inline=!1,r.inHTML=!0,r.d=(r.d||0)+1,ut=Ur(an,r,n),r.inline=Ni,r.inHTML=ki,r.d=wi}var mi=e.slice(Qe.end,Rt);return{node:{type:v.htmlBlock,tag:Br,attrs:kr(Qe.attrs,Br,n),b:Qe.g+Qe.b,children:ut,e:cr(mi),text:an,c:!0,a:!1},end:Ei}}function eo(e,t){if(e.charCodeAt(t)!==ae)return 0;var r=t+1,n=e.length;if(e.charCodeAt(r)===Ke&&e.charCodeAt(r+1)===F&&e.charCodeAt(r+2)===F)return 2;if(e.charCodeAt(r)===jr)return 3;if(e.charCodeAt(r)===Ke){var a=e.charCodeAt(r+1);if(a>=J&&a<=G)return 4;if(e.slice(r+1,r+8)===\"[CDATA[\")return 5}for(var i=e.charCodeAt(r)===ge,o=i?r+1:r,A=o;A<n;){var C=e.charCodeAt(A);if(C>=J&&C<=G||C>=ie&&C<=ce||C>=W&&C<=z||C===F)A++;else break}if(A===o)return 0;var l=e.slice(o,A);if(Nt.has(l.toLowerCase())){if(i)return 0;var _=e.charCodeAt(A);return _===N||_===k||_===U||_===M||A>=n?1:0}if(zt.has(l.toLowerCase())){if(i){for(var d=A;d<n&&(e.charCodeAt(d)===N||e.charCodeAt(d)===k);)d++;return d<n&&e.charCodeAt(d)===U?6:0}var u=A<n?e.charCodeAt(A):-1;return u===N||u===k||u===U||u===M||u===ge||u===-1?6:0}if(i){for(var c=A;c<n&&(e.charCodeAt(c)===N||e.charCodeAt(c)===k);)c++;if(c<n&&e.charCodeAt(c)===U){var R=Ae(e,t),s=e.slice(c+1,R).trim();if(s===\"\")return 7}}else{var T=Ae(e,t),f=wr(e,t);if(f&&f.end<=T){var h=e.slice(f.end,T).trim();if(h===\"\")return 7}}return 0}function ya(e,t,r){for(var n=0,a=e.length;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;for(;a>n&&(e.charCodeAt(a-1)===N||e.charCodeAt(a-1)===k);)a--;n<a&&e.charCodeAt(n)===ye&&n++,a>n&&e.charCodeAt(a-1)===ye&&(a-2<n||e.charCodeAt(a-2)!==me)&&a--;for(var i=[],o=n,A=!1,C=[],l=n;l<a;){var _=e.charCodeAt(l);if(_===me&&l+1<a){e.charCodeAt(l+1)===ye?(A||(A=!0,C=[]),C.push(e.slice(o,l)),C.push(\"|\"),l+=2,o=l):l+=2;continue}if(_===re){for(var d=0;l<a&&e.charCodeAt(l)===re;)d++,l++;for(var u=!1;l<a&&!u;){for(var c=0;l<a&&e.charCodeAt(l)===re;)c++,l++;c===d?u=!0:c===0&&l++}continue}if(_===ye){var R=A?(C.push(e.slice(o,l)),C.join(\"\")):e.slice(o,l);i.push(R.trim()),l++,o=l,A=!1,C=[];continue}l++}var s=A?(C.push(e.slice(o,a)),C.join(\"\")):e.slice(o,a);return i.push(s.trim()),i.map(T=>{var f=T.indexOf(\"\\\\|\")===-1?T:T.replace(/\\\\\\|/g,\"|\");return f?dt(f,!1,t,r):[]})}function xa(e,t,r,n){let a=Ae(e,t);var i=e.indexOf(\"|\",t);if(i<0||i>=a)return null;let o=q(e,a);if(o>=e.length)return null;let A=Ae(e,o);if(!za(e,o,A))return null;let C=e.slice(t,a),l=e.slice(o,A);for(var _=[],d=0,u=l.length;d<u&&(l.charCodeAt(d)===N||l.charCodeAt(d)===k);)d++;for(d<u&&l.charCodeAt(d)===ye&&d++;d<u;){for(;d<u&&(l.charCodeAt(d)===N||l.charCodeAt(d)===k);)d++;if(d>=u||l.charCodeAt(d)===ye)break;var c=l.charCodeAt(d)===Ge;for(c&&d++;d<u&&l.charCodeAt(d)===F;)d++;var R=d<u&&l.charCodeAt(d)===Ge;for(R&&d++,_.push(c&&R?\"center\":R?\"right\":c?\"left\":null);d<u&&(l.charCodeAt(d)===N||l.charCodeAt(d)===k);)d++;d<u&&l.charCodeAt(d)===ye&&d++}let s=ya(C,r,n);if(_.length!==s.length)return null;let T=[],f=q(e,A);for(;f<e.length;){let w=Ae(e,f),E=e.slice(f,w);if(er(e,f,w))break;if(Le(e,f,w),oe<4){var h=e.charCodeAt(f+te);if(h===U||h===lr||(h===F||h===ke||h===he)&&Fr(e,f))break;if(h===re||h===Oe){for(var g=f+te,S=0;g<w&&e.charCodeAt(g)===h;)S++,g++;if(S>=3)break}}T.push(ya(E,r,n)),f=q(e,w)}if(n.optimizeForStreaming&&T.length===0)return null;for(var p=s.length,H=0;H<T.length;H++)if(T[H].length<p)for(;T[H].length<p;)T[H].push([]);else T[H].length>p&&(T[H].length=p);return{node:{type:v.table,header:s,cells:T,align:_},end:f}}function ro(e,t,r){var n=Ae(e,t);if(Le(e,t,n),oe>3)return null;var a=t+te;if(e.charCodeAt(a)!==_e)return null;if(a+1<e.length&&e.charCodeAt(a+1)===ur){var i=to(e,a,r);return i||null}r.refs||(r.refs=Object.create(null));var o=Za(e,a,r.refs);return o===null?null:{node:{type:v.refCollection},end:o}}function to(e,t,r){var n=e.length;if(e.charCodeAt(t)!==_e||t+1>=n||e.charCodeAt(t+1)!==ur)return null;for(var a=t+2,i=a;a<n&&e.charCodeAt(a)!==qe;){if(e.charCodeAt(a)===M)return null;a++}if(a>=n)return null;var o=`^${e.slice(i,a)}`.toLowerCase();if(a++,a>=n||e.charCodeAt(a)!==Ge)return null;for(a++;a<n&&(e.charCodeAt(a)===N||e.charCodeAt(a)===k);)a++;if(a<n&&e.charCodeAt(a)===M)for(a++;a<n&&(e.charCodeAt(a)===N||e.charCodeAt(a)===k);)a++;var A=e.indexOf(`\n`,a);A<0&&(A=n);for(var C=e.slice(a,A).trim(),l=A<n?A+1:n;l<n;){var _=Ae(e,l);if(Le(e,l,_),oe>=2&&!er(e,l,_))C+=`\n${e.slice(l,_)}`,l=q(e,_);else if(er(e,l,_)){var d=q(e,_);if(d<n){var u=Ae(e,d);if(Le(e,d,u),oe>=2){C+=`\n`,l=q(e,_);continue}}break}else break}var c=r.refs;return c&&!c[o]&&(c[o]={target:C,title:void 0}),{node:{type:v.footnote},end:l}}function no(e,t,r,n){let a=t,i=0,o=0,A=-1;for(;a<e.length;){let I=A>=0?A:Ae(e,a);if(A=-1,er(e,a,I))break;if(Le(e,a,I),oe<4&&o>0&&!r.l){let D=e.charCodeAt(a+te);if(D===Cr||D===F){let P=a+te;for(;P<I&&e.charCodeAt(P)===D;)P++;for(;P<I&&(e.charCodeAt(P)===N||e.charCodeAt(P)===k);)P++;if(P>=I){i=D===Cr?1:2,a=q(e,I);break}}}o=I;let O=q(e,I);if(O<e.length){if(e.charCodeAt(O)===Pt){var C=Ae(e,O);a=q(e,C),o=C;continue}let D=Ae(e,O);if(A=D,Le(e,O,D),oe<4){let P=e.charCodeAt(O+te);if(P===U){a=O;break}if(P===lr){for(var l=O+te,_=0;l<D&&e.charCodeAt(l)===lr&&_<=6;)_++,l++;if(_>=1&&_<=6&&(l>=D||e.charCodeAt(l)===N||e.charCodeAt(l)===k)){a=O;break}}if(P===re||P===Oe){for(var d=O+te,u=0;d<D&&e.charCodeAt(d)===P;)u++,d++;if(u>=3){a=O;break}}if(P===ae){var c=O+te+1,R=c<D?e.charCodeAt(c):0,s=R===Ke||R===jr;if(!s&&R===ge){for(var T=c+1,f=T;f<D&&(e.charCodeAt(f)>=J&&e.charCodeAt(f)<=G||e.charCodeAt(f)>=ie&&e.charCodeAt(f)<=ce||e.charCodeAt(f)>=W&&e.charCodeAt(f)<=z||e.charCodeAt(f)===F);)f++;f>T&&(s=zt.has(e.slice(T,f).toLowerCase()))}else if(!s){for(var h=c;h<D&&(e.charCodeAt(h)>=J&&e.charCodeAt(h)<=G||e.charCodeAt(h)>=ie&&e.charCodeAt(h)<=ce||e.charCodeAt(h)>=W&&e.charCodeAt(h)<=z||e.charCodeAt(h)===F);)h++;if(h>c){var g=e.slice(c,h).toLowerCase();s=zt.has(g)||Nt.has(g)}}if(s&&Va(e,O,r,n)){a=O;break}}if(P===F||P===ke||P===Or){let L=O+te+1;if(L<D&&(e.charCodeAt(L)===N||e.charCodeAt(L)===k)){var S=St(e,L,D);if(S<D&&!Fr(e,O)){a=O;break}}}if(P>=W&&P<=z){let L=O+te;for(;L<D&&e.charCodeAt(L)>=W&&e.charCodeAt(L)<=z;)L++;if(L<D&&(e.charCodeAt(L)===ar||e.charCodeAt(L)===fr)&&L-(O+te)===1&&e.charCodeAt(O+te)===49){var p=L+1;if(p<D&&(e.charCodeAt(p)===N||e.charCodeAt(p)===k)){var H=St(e,p,D);if(H<D){a=O;break}}}}if(P===ye){let L=q(e,D);if(L<e.length){let Z=Ae(e,L);if(za(e,L,Z)){a=O;break}}}if((P===F||P===ke||P===he)&&Fr(e,O)){if(P!==F){a=O;break}let L=0,Z=O+te;for(;Z<D&&e.charCodeAt(Z)===F;)L++,Z++;for(;Z<D&&(e.charCodeAt(Z)===N||e.charCodeAt(Z)===k);)Z++;if(Z<D){a=O;break}}}}a=q(e,I)}for(var w=i?o:a;w>t&&(e.charCodeAt(w-1)===M||e.charCodeAt(w-1)===Er||e.charCodeAt(w-1)===N||e.charCodeAt(w-1)===k);)w--;for(var E=t;E<w&&(e.charCodeAt(E)===N||e.charCodeAt(E)===k);)E++;if(E>=w)return null;for(var m=!1,y=E;y<w;y++)if(e.charCodeAt(y)===Pt){m=!0;break}var x=m?e.slice(E,w).replace(/\\u001E/g,\"\"):e.slice(E,w);if(!x)return null;let B=dt(x,!0,r,n);return i?{node:{type:v.heading,level:i,children:B,id:\"\"},end:a}:{node:{type:v.paragraph,children:B},end:a}}function dt(e,t,r,n){var a=r.t;if(!a){var i=r.k;r.k=t;var o=mr(e,0,e.length,r,n);return r.k=i,o}var A=[];return a.push({dest:A,text:e,breaks:t,inline:r.inline,inAnchor:r.inAnchor,inHTML:r.inHTML,htmlDepth:r.d,inList:r.inList,inBlockQuote:r.inBlockQuote,noSetext:r.l,depth:r.o}),A}function ao(e,t,r){if(e.charCodeAt(t)!==re)return null;let n=Wr(e,t,r,96),a=t+n;for(;a<r;){let i=e.indexOf(\"`\",a);if(i<0||i>=r)return null;let o=Wr(e,i,r,96);if(o===n){let A=e.slice(t+n,i);return A.indexOf(`\n`)!==-1&&(A=A.replace(/\\n/g,\" \")),A.length>0&&A[0]===\" \"&&A.at(-1)===\" \"&&A.trim().length>0&&(A=A.slice(1,-1)),{node:{type:v.codeInline,text:A},end:i+o}}a=i+o}return null}function pn(e,t,r){if(e.charCodeAt(t)!==re)return t;let n=Wr(e,t,r,96),a=t+n;for(;a<r;){let i=e.indexOf(\"`\",a);if(i<0||i>=r)return t;let o=Wr(e,i,r,96);if(o===n)return i+o;a=i+o}return t}function io(e,t,r){if(e.charCodeAt(t)!==ae)return t;if(t+1<r&&e.charCodeAt(t+1)===ge){let l=t+2;for(;l<r&&e.charCodeAt(l)!==U;)l++;return l<r?l+1:t}if(t+3<r&&e.charCodeAt(t+1)===Ke&&e.charCodeAt(t+2)===F&&e.charCodeAt(t+3)===F){let l=e.indexOf(\"-->\",t+4);return l>=0?l+3:t}let n=t+1,a=n;for(;n<r;){let l=e.charCodeAt(n);if(l>=J&&l<=G||l>=ie&&l<=ce||l>=W&&l<=z||l===F)n++;else break}if(n===a)return t;let i=e.slice(a,n).toLowerCase(),o=!1;for(;n<r;){let l=e.charCodeAt(n);if(l===U){n++;break}if(l===ge&&n+1<r&&e.charCodeAt(n+1)===U){n+=2,o=!0;break}if(l===Ir||l===Dr){var A=l;for(n++;n<r&&e.charCodeAt(n)!==A;)n++;n<r&&n++;continue}if(l===M)return t;n++}if(o||nt(i))return n;let C=1;for(;n<r&&C>0;)if(e.charCodeAt(n)===ae)if(n+1<r&&e.charCodeAt(n+1)===ge){let l=n+2,_=l;for(;_<r&&(e.charCodeAt(_)>=J&&e.charCodeAt(_)<=G||e.charCodeAt(_)>=ie&&e.charCodeAt(_)<=ce);)_++;if(e.slice(l,_).toLowerCase()===i){for(;_<r&&e.charCodeAt(_)!==U;)_++;if(_<r&&_++,C--,C===0)return _}n=_}else{let l=n+1,_=l;for(;_<r&&(e.charCodeAt(_)>=J&&e.charCodeAt(_)<=G||e.charCodeAt(_)>=ie&&e.charCodeAt(_)<=ce);)_++;e.slice(l,_).toLowerCase()===i&&C++,n++}else n++;return n}function oo(e,t,r){let a=e.charCodeAt(t)===Ke?t+1:t;if(e.charCodeAt(a)!==_e)return t;let i=1,o=a+1;for(;o<r&&i>0;){let C=e.charCodeAt(o);if(C===me&&o+1<r){o+=2;continue}C===_e?i++:C===qe&&i--,o++}if(i!==0||o>=r)return t;let A=e.charCodeAt(o);if(A===ir){let C=1;for(o++;o<r&&C>0;){let l=e.charCodeAt(o);if(l===me&&o+1<r){o+=2;continue}l===ir?C++:l===fr&&C--,o++}return C===0?o:t}if(A===_e){let C=1;for(o++;o<r&&C>0;){let l=e.charCodeAt(o);l===_e?C++:l===qe&&C--,o++}return C===0?o:t}return t}function Ao(e,t,r,n,a){if(e.charCodeAt(t)!==Oe||t+1>=r||e.charCodeAt(t+1)!==Oe)return null;let i=t+2;for(;i+1<r;){let o=e.charCodeAt(i);if(o===re){let A=pn(e,i,r);if(A>i){i=A;continue}}if(o===Oe&&e.charCodeAt(i+1)===Oe){let A=e.slice(t+2,i),C=mr(A,0,A.length,n,a);return{node:{type:v.textFormatted,tag:\"del\",children:C},end:i+2}}o===me&&i+1<r&&i++,i++}return null}function lo(e,t,r,n,a){if(e.charCodeAt(t)!==Cr||t+1>=r||e.charCodeAt(t+1)!==Cr)return null;let i=t+2;for(;i+1<r;){let o=e.charCodeAt(i);if(o===re){let A=pn(e,i,r);if(A>i){i=A;continue}}if(o===Cr&&e.charCodeAt(i+1)===Cr&&i>t+2){let A=e.slice(t+2,i),C=mr(A,0,A.length,n,a);return{node:{type:v.textFormatted,tag:\"mark\",children:C},end:i+2}}o===me&&i+1<r&&i++,i++}return null}function Ma(e,t,r){return e<Ct?!!(bn(e)&rt):Ca.test(t[r])}function Ba(e,t,r){return e<Ct?!!(bn(e)&Xr):fa.test(t[r])}function Co(e,t,r){var n=e.charCodeAt(t);if(n!==ke&&n!==he)return null;var a=Wr(e,t,r,n);if(a===0)return null;var i=t>0?e.charCodeAt(t-1):32,o=t+a<r?e.charCodeAt(t+a):32,A=Ba(i,e,t-1),C=Ba(o,e,t+a),l=t>0?Ma(i,e,t-1):!1,_=t+a<r?Ma(o,e,t+a):!1,d=!C&&(!_||A||l),u=!A&&(!l||C||_),c,R;return n===ke?(c=d,R=u):(c=d&&(!u||l),R=u&&(!d||_)),{len:a,canOpen:c,canClose:R}}function fo(e,t,r,n){if(t.length!==0){for(var a=e.length,i=Array(a),o=null,A=null,C=0;C<a;C++){var l={node:e[C],prev:A,next:null};A?A.next=l:o=l,i[C]=l,A=l}for(var _=Array(t.length),d=0;d<t.length;d++)_[d]=i[t[d].idx];for(var u=[],c=0;c<12;c++)u[c]=-1;for(var R=0;R<t.length;){var s=t[R];if(!(s.active&&s.canClose)){R++;continue}for(var T=s.ch===ke?0:1,f=T*6+s.len%3*2+(s.canOpen?1:0),h=u[f]===void 0?-1:u[f],g=-1,S=R-1;S>h;S--){var p=t[S];if(!(!p.active||p.ch!==s.ch||!p.canOpen)&&!((s.canOpen||p.canClose)&&(p.len+s.len)%3===0&&p.len%3!==0)){g=S;break}}if(g<0){u[f]=R-1,!s.canOpen&&(s.active=!1),R++;continue}var H=t[g],w=H.len>=2&&s.len>=2,E=w?2:1;H.len-=E,s.len-=E;var m=_[g],y=_[R],x=m.node,B=y.node;x.text=x.text.slice(0,x.text.length-E),B.text=B.text.slice(E);for(var I=[],O=m.next;O&&O!==y;)I.push(O.node),O=O.next;var D={type:v.textFormatted,tag:w?\"strong\":\"em\",children:I},P={node:D,prev:m,next:y};m.next=P,y.prev=P;for(var L=g+1;L<R;L++)t[L].active=!1;if(H.len===0&&(H.active=!1,x.text===\"\")){var Z=m.prev;P.prev=Z,Z?Z.next=P:o=P}if(s.len===0){if(s.active=!1,B.text===\"\"){var ne=y.next;P.next=ne,ne&&(ne.prev=P)}}else continue;R++}for(var ve=0,Q=o;Q;){var Pe=Q.node;if(Pe.type===v.text){var Ee=Pe;if(Ee.text===\"\"){Q=Q.next;continue}if(ve>0&&e[ve-1].type===v.text){e[ve-1].text+=Ee.text,Q=Q.next;continue}}e[ve++]=Pe,Q=Q.next}e.length=ve}}function Kt(e,t,r,n){return t(e,r,n)===null?null:e}var Pa=0,En=0,Da=0,Nn=0,Xa=0,kn=0,Hn=0,Hr=0;function _o(){return Hn===2147483647&&(En=0,Nn=0,kn=0,Wt=0,Hn=0),++Hn}var hn=null,Wt=0,Gt=[],sn=256;function Ja(e,t,r,n,a){let i=e.charCodeAt(t)===Ke,o=i?t+1:t;if(e.charCodeAt(o)!==_e||Nn===Hr&&o>=Da)return null;var A=Wt===Hr?hn:null,C=A===null?0:A[o];if(C<0)return null;var l=C;if(C===0){var _=e.indexOf(\"]\",o+1);if(_<0||_>=r)return Da=o,Nn=Hr,null;l=o+1;var d=0;Gt[d++]=o;for(var u=r-o>=sn;l<r&&d>0;){var c=e.charCodeAt(l);if(c===me&&l+1<r){l+=2;continue}if(c===re){var R=pn(e,l,r);if(R>l){l=R;continue}}if(c===ae){var s=Ya(e,l,r);if(s){l=s.end;continue}var T=io(e,l,r);if(T>l){l=T;continue}}if(c===_e)Gt[d++]=l;else if(c===qe){var f=Gt[--d];A===null&&u&&l-o>=sn&&(A=hn=new Int32Array(r),Wt=Hr),A!==null&&(A[f]=l+1)}l++}if(d>0){if(A===null&&u&&l-o>=sn&&(A=hn=new Int32Array(r),Wt=Hr),A!==null)for(;d>0;)A[Gt[--d]]=-1;return null}}var h=l-1,g=e.slice(o+1,h),S=l<r?e.charCodeAt(l):0,p=!1;if(S===ir){var H=!0;for(l++;l<r&&(e.charCodeAt(l)===N||e.charCodeAt(l)===M);)l++;var w=\"\",E=l;if(l<r&&e.charCodeAt(l)===ae){for(l++,E=l;E<r&&e.charCodeAt(E)!==U;){if(e.charCodeAt(E)===me&&E+1<r){E+=2;continue}if(e.charCodeAt(E)===M){H=!1;break}E++}H&&(E>=r||e.charCodeAt(E)!==U)&&(H=!1),H&&(w=e.slice(l,E),E++)}else if(H){var m=En===Hr?Pa:-1;if(m>=0&&l>=m)H=!1;else{for(var y=0,x=!1;E<r;){var B=e.charCodeAt(E);if(B===me&&E+1<r){E+=2;continue}if(B===ir)y++;else if(B===fr){if(x=!0,y===0)break;y--}else if(B===N||B===M)break;E++}E>=r&&!x&&(m<0||l<m)&&(Pa=l,En=Hr),w=e.slice(l,E)}}if(H){for(l=E;l<r&&(e.charCodeAt(l)===N||e.charCodeAt(l)===M);)l++;var I;if(l<r){var O=e.charCodeAt(l);if(O===Ir||O===Dr||O===ir){var D=O===ir?41:O;l++;for(var P=l;l<r&&e.charCodeAt(l)!==D;)e.charCodeAt(l)===me&&l+1<r&&l++,l++;l>=r?H=!1:(I=e.slice(P,l),l++)}}if(H){for(;l<r&&(e.charCodeAt(l)===N||e.charCodeAt(l)===M);)l++;(l>=r||e.charCodeAt(l)!==fr)&&(H=!1)}}if(H){if(l++,w=Nr(_t(w)),I!==void 0&&(I=Nr(_t(I))),i){var L=mr(g,0,g.length,n,a),Z=Qt(L);return{node:{type:v.image,target:Kt(w,a?.sanitizer||dr,\"img\",\"src\"),alt:Z,title:I},end:l}}var ne=n.inAnchor;n.inAnchor=!0;var X=ne?[{type:v.text,text:g}]:mr(g,0,g.length,n,a);return n.inAnchor=ne,!n.inAnchor&&wn(X)?null:{node:{type:v.link,target:Kt(w,a?.sanitizer||dr,\"a\",\"href\"),title:I,children:X},end:l}}l=h+1,p=!0}var ve=\"\",Q=l;if(!p&&S===_e){var Pe=l+1;Q=Pe;for(var Ee=!1;Q<r&&e.charCodeAt(Q)!==qe;){if(e.charCodeAt(Q)===me&&Q+1<r){Q+=2;continue}if(e.charCodeAt(Q)===_e){Ee=!0;break}Q++}if(Ee||Q>=r)return null;var ue=e.slice(Pe,Q);if(ue.trim())ve=Ft(ue);else{if(ka(g))return null;ve=Ft(g)}Q+=1}else{if(ka(g))return null;ve=Ft(g)}var He=n.refs?.[ve];if(!He)return null;if(i)return{node:{type:v.image,target:Kt(He.target,a?.sanitizer||dr,\"img\",\"src\"),alt:Qt(mr(g,0,g.length,n,a)),title:He.title},end:Q};var Fe=n.inAnchor;n.inAnchor=!0;var X=Fe?[{type:v.text,text:g}]:mr(g,0,g.length,n,a);return n.inAnchor=Fe,!n.inAnchor&&wn(X)?null:{node:{type:v.link,target:Kt(He.target,a?.sanitizer||dr,\"a\",\"href\"),title:He.title,children:X},end:Q}}function Ya(e,t,r){if(e.charCodeAt(t)!==ae)return null;for(var n=t+1;n<r;){var a=e.charCodeAt(n);if(a===U)break;if(a===N||a===M||a===Er||a===ae)return null;n++}if(n>=r||e.charCodeAt(n)!==U)return null;var i=e.slice(t+1,n),o=i.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\\x00-\\x20]*)$/);return o?{node:{type:v.link,target:i,title:void 0,children:[{type:v.text,text:i}]},end:n+1}:i.indexOf(\"@\")!==-1&&/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(i)?{node:{type:v.link,target:`mailto:${i}`,title:void 0,children:[{type:v.text,text:i}]},end:n+1}:null}function co(e,t,r,n){if(e.charCodeAt(t)!==_e||t+1>=r||e.charCodeAt(t+1)!==ur||kn===Hr&&t>=Xa)return null;let a=t+2;for(;a<r&&e.charCodeAt(a)!==qe&&e.charCodeAt(a)!==M;)a++;if(a>=r)return Xa=t,kn=Hr,null;if(e.charCodeAt(a)!==qe)return null;let i=e.slice(t+2,a);return i?{node:{type:v.footnoteReference,target:`#${gr(i)}`,text:i},end:a+1}:null}function uo(e,t,r,n){if(n.disableBareUrls)return null;var a=\"\",i=!1,o=e.charCodeAt(t);if(o===$t||o===72?t+8<=r&&e.charCodeAt(t+1)===qr&&e.charCodeAt(t+2)===qr&&e.charCodeAt(t+3)===Mt&&(e.charCodeAt(t+4)===on&&e.charCodeAt(t+5)===Ge&&e.charCodeAt(t+6)===ge&&e.charCodeAt(t+7)===ge?a=\"https://\":e.charCodeAt(t+4)===Ge&&e.charCodeAt(t+5)===ge&&e.charCodeAt(t+6)===ge&&(a=\"http://\")):o===pr||o===70?t+6<=r&&e.charCodeAt(t+1)===qr&&e.charCodeAt(t+2)===Mt&&e.charCodeAt(t+3)===Ge&&e.charCodeAt(t+4)===ge&&e.charCodeAt(t+5)===ge&&(a=\"ftp://\"):(o===Pr||o===87)&&t+4<=r&&e.charCodeAt(t+1)===Pr&&e.charCodeAt(t+2)===Pr&&e.charCodeAt(t+3)===ar&&(a=\"www.\",i=!0),!a)return null;let A=t+a.length;for(;A<r;){let H=e.charCodeAt(A);if(H===N||H===M||H===k||H===Er||H===ae||H===U)break;A++}for(var C=0,l=0,_=t;_<A;_++){var d=e.charCodeAt(_);d===ir?C++:d===fr&&l++}let u=A;for(;u>t+a.length;){let H=e.charCodeAt(u-1);if(H===ar||H===Zn||H===Ge||H===Ke||H===jr||H===fr||H===ke||H===he||H===Oe){if(H===fr){if(C>=l)break;l--}u--}else if(H===gt){for(var c=u-2;c>t&&(e.charCodeAt(c)>=J&&e.charCodeAt(c)<=G||e.charCodeAt(c)>=ie&&e.charCodeAt(c)<=ce||e.charCodeAt(c)>=W&&e.charCodeAt(c)<=z);)c--;c>=t&&e.charCodeAt(c)===ht?u=c:u--}else break}if(u<=t+a.length)return null;var R=t+(i?4:a.length),s=e.indexOf(\"/\",R);if((s<0||s>u)&&(s=u),i&&e.indexOf(\".\",R)===-1)return null;for(var T=-1,f=-1,h=s-1;h>=R;h--)if(e.charCodeAt(h)===ar)if(T<0)T=h;else{f=h;break}for(var g=f>=0?f+1:R,h=g;h<s;h++)if(e.charCodeAt(h)===he)return null;var S=e.slice(t,u),p=i?`http://${S}`:S;return{node:{type:v.link,target:p,title:void 0,children:[{type:v.text,text:S}]},end:u}}function Ro(e,t,r,n){if(n.disableBareUrls)return null;for(var a=t,i=a;a<r;){var o=e.charCodeAt(a);if(o>=J&&o<=G||o>=ie&&o<=ce||o>=W&&o<=z||o===ar||o===Ke||o===lr||o===36||o===Ht||o===ht||o===Dr||o===ke||o===Or||o===ge||o===Cr||o===jr||o===ur||o===he||o===re||o===Lr||o===ye||o===Bt||o===Oe||o===F)a++;else break}if(a===i||a>=r||e.charCodeAt(a)!==xt)return null;a++;for(var A=a,C=-1,l=a;a<r;){var o=e.charCodeAt(a);if(o>=J&&o<=G||o>=ie&&o<=ce||o>=W&&o<=z)a++;else if((o===F||o===he)&&a>A)a++;else if(o===ar){if(a===A)break;var _=e.charCodeAt(a-1);if(_===F||_===he||a-l>63)break;if(a+1<r){var d=e.charCodeAt(a+1);if(d>=J&&d<=G||d>=ie&&d<=ce||d>=W&&d<=z)C=a,l=a+1,a++;else break}else break}else break}if(a-l>63||C<0)return null;var u=e.charCodeAt(a-1);if(!(u>=J&&u<=G||u>=ie&&u<=ce||u>=W&&u<=z)||a<=C+1)return null;for(var c=-1,R=C-1;R>=A;R--)if(e.charCodeAt(R)===ar){c=R;break}for(var s=c>=0?c+1:A,R=s;R<a;R++)if(e.charCodeAt(R)===he)return null;var T=e.slice(t,a);return{node:{type:v.link,target:`mailto:${T}`,title:void 0,children:[{type:v.text,text:T}]},end:a}}function wn(e){for(var t=0;t<e.length;t++)if(e[t].type===v.link||\"children\"in e[t]&&Array.isArray(e[t].children)&&wn(e[t].children))return!0;return!1}function Qt(e,t){for(var r=\"\",n=0;n<e.length;n++){var a=e[n];a.type===v.text?r+=a.text:a.type===v.breakLine?r+=\" \":a.type===v.codeInline||a.type===v.footnoteReference?r+=a.text:\"children\"in a&&Array.isArray(a.children)?r+=Qt(a.children,t):!t&&a.type===v.image&&(r+=a.alt||\"\")}return r}function mn(e,t,r){for(var n=0;n<e.length;n++){var a=e[n];if(a.type===v.heading){var i=a;i.id=zi(r(Qt(i.children,!0)),t)}if(\"children\"in a){var o=a.children;Array.isArray(o)&&mn(o,t,r)}if((a.type===v.orderedList||a.type===v.unorderedList)&&Array.isArray(a.items))for(var A=a.items,C=0;C<A.length;C++)mn(A[C],t,r)}}function at(e){return{type:v.text,text:e}}function Ho(e,t,r){var n=t+1;if(n>=r)return-1;if(e.charCodeAt(n)===lr){n++;var a=n<r&&(e.charCodeAt(n)===An||e.charCodeAt(n)===ln);a&&n++;for(var i=n,o=a?6:7;n<r&&n-i<=o;){var A=e.charCodeAt(n),C=A>=W&&A<=z||a&&(A>=J&&A<=st||A>=ie&&A<=pr);if(!C)break;n++}return n===i||n-i>o?-1:n<r&&e.charCodeAt(n)===gt?n+1:-1}for(var l=n;n<r&&n-l<48;){var _=e.charCodeAt(n);if(_>=J&&_<=G||_>=ie&&_<=ce||_>=W&&_<=z){n++;continue}break}return n===l?-1:n<r&&e.charCodeAt(n)===gt?n+1:-1}function ho(e,t,r,n,a){if(e.charCodeAt(t)!==ae)return null;var i=t+1;if(i>=r)return null;var o=e.charCodeAt(i);if(o===Ke&&i+1<r&&e.charCodeAt(i+1)===F&&i+2<r&&e.charCodeAt(i+2)===F){var A=i+3;if(A<r&&e.charCodeAt(A)===U)return{node:{type:v.htmlComment,text:\"\",s:!0},end:A+1};if(A+1<r&&e.charCodeAt(A)===F&&e.charCodeAt(A+1)===U)return{node:{type:v.htmlComment,text:\"-\",s:!0},end:A+2};var C=e.indexOf(\"-->\",A);return C!==-1&&C<=r-3?{node:{type:v.htmlComment,text:e.slice(t+4,C),s:!1},end:C+3}:null}if(o===jr){var l=e.indexOf(\"?>\",i+1);return l!==-1&&l<r?{node:{type:v.htmlSelfClosing,tag:\"?\",attrs:{},m:e.slice(t,l+2),a:!1},end:l+2}:null}if(o===Ke&&i+1<r){var _=e.charCodeAt(i+1);if(_===_e&&e.slice(i+1,i+8)===\"[CDATA[\"){var d=e.indexOf(\"]]>\",i+8);return d!==-1&&d<r?{node:{type:v.htmlSelfClosing,tag:\"![CDATA[\",attrs:{},m:e.slice(t,d+3),a:!1},end:d+3}:null}if(_>=J&&_<=G){var u=e.indexOf(\">\",i+2);return u!==-1&&u<r?{node:{type:v.htmlSelfClosing,tag:`!${e.slice(i+1,u)}`,attrs:{},m:e.slice(t,u+1),a:!1},end:u+1}:null}}if(o===ge){var c=i+1;if(c>=r)return null;var R=e.charCodeAt(c);if(!(R>=J&&R<=G||R>=ie&&R<=ce))return null;for(c++;c<r;){var s=e.charCodeAt(c);if(s>=J&&s<=G||s>=ie&&s<=ce||s>=W&&s<=z||s===F)c++;else break}for(;c<r&&(e.charCodeAt(c)===N||e.charCodeAt(c)===k||e.charCodeAt(c)===M);)c++;if(c<r&&e.charCodeAt(c)===U){var T=e.slice(i+1,c).trim();return{node:{type:v.htmlSelfClosing,tag:T,attrs:{},h:e.slice(t,c+1),a:!0},end:c+1}}return null}if(!(o>=J&&o<=G||o>=ie&&o<=ce))return null;var f=wr(e,t);if(!f)return null;var h=f.tag,g=h.toLowerCase(),S=f.n;if(S||nt(h))return{node:{type:v.htmlSelfClosing,tag:h,attrs:kr(f.attrs,h,a),m:f.q?gn(f):e.slice(t,f.end),a:!1},end:f.end};var p=Nt.has(g),H=Sn(e.slice(0,r),f.end,h);if(H===-1)return{node:{type:v.htmlSelfClosing,tag:h,attrs:kr(f.attrs,h,a),m:f.q?gn(f):e.slice(t,f.end),a:!1},end:f.end};var w=ji(e,`</${g}`,H),E=e.slice(f.end,w);if(p){var m=cr(E);return{node:{type:v.htmlBlock,tag:h,attrs:kr(f.attrs,h,a),b:f.g+f.b,children:[],e:m||void 0,h:e.slice(w,H),text:m,c:!0,a:!1},end:H}}var y=[],x=E.trim();if(x){var{inAnchor:B,inline:I,k:O}=n;g===\"a\"&&(n.inAnchor=!0),n.k=!1;var D=x.indexOf(`\n\n`)!==-1||/^#{1,6}\\s/.test(x);D?(n.inline=!1,y=Ur(x,n,a)):y=mr(x,0,x.length,n,a),n.inAnchor=B,n.inline=I,n.k=O}return{node:{type:v.htmlBlock,tag:h,attrs:kr(f.attrs,h,a),b:f.b,children:y,text:cr(E),c:!1,a:!1},end:H}}var so=200,Tt=0;function mr(e,t,r,n,a){if(Tt++,Tt>so)return Tt--,[{type:v.text,text:e.slice(t,r)}];var i=Hr;Hr=_o();let o=n;if(a.optimizeForStreaming){let sr=function(Se,Ye){for(var De=1,Xe=Ye+1;Xe<Se.length;Xe++){var Je=Se.charCodeAt(Xe);if(Je===_e)De++;else if(Je===qe&&(De--,De===0))return Xe}return-1},b=e.slice(t,r),fe=b;for(var A=0,C=0,l=0,_=0,d=0,u=-1,c=-1,R=-1,s=-1,T=-1,f=0;f<b.length;f++){var h=b.charCodeAt(f);if(h===_e){var g=oo(b,f,b.length);if(g>f){f=g-1;continue}}h===ke?f+1<b.length&&b.charCodeAt(f+1)===ke?(A++,u=f,f++):(C++,c=f):h===he?f+1<b.length&&b.charCodeAt(f+1)===he?(l++,R=f,f++):(_++,s=f):h===Oe&&f+1<b.length&&b.charCodeAt(f+1)===Oe&&(d++,T=f,f++)}var S=[];d%2===1&&T>=0&&S.push([T,2]),l%2===1&&R>=0&&S.push([R,2]),_%2===1&&s>=0&&S.push([s,1]),A%2===1&&u>=0&&S.push([u,2]),C%2===1&&c>=0&&S.push([c,1]),S.sort((Se,Ye)=>Ye[0]-Se[0]);for(var p=0;p<S.length;p++){var H=S[p][0],w=S[p][1];b=b.slice(0,H)+b.slice(H+w)}let tr=0,ee=-1;for(let Se=0;Se<b.length;Se++)b.charCodeAt(Se)===re&&(tr++,ee=Se);if(tr%2===1&&ee!==-1){let Se=!1,Ye=-1,De=0;for(;De<b.length;)b.charCodeAt(De)===re&&(Se?(Se=!1,Ye=-1):(Ye=De,Se=!0)),De++;Se&&Ye!==-1&&(b=b.slice(0,Ye))}for(var E=!0;E;){E=!1;for(var m=-1,y=-1,x=-1,B=!1,I=0;I<b.length;I++){var O=b.charCodeAt(I);if(O===_e&&(I===0||b.charCodeAt(I-1)!==me)){var D=I>0&&b.charCodeAt(I-1)===Ke,P=D?I-1:I,L=sr(b,I);if(L===-1)m=P,B=D,y=I+1,x=b.length;else{var Z=L+1;if(Z>=b.length)m=P,B=D,y=I+1,x=L;else if(b.charCodeAt(Z)===ir){var ne=b.indexOf(\")\",Z+1);ne===-1?(m=P,B=D,y=I+1,x=L,I=b.length):I=ne}else if(b.charCodeAt(Z)===_e){var ve=b.indexOf(\"]\",Z+1);ve===-1?(m=P,B=D,y=I+1,x=L,I=b.length):I=ve}else I=L}}}if(m>=0){var Q=B?\"\":b.slice(y,x);b=b.slice(0,m)+Q,E=!0}}let de=b.match(/<([A-Z][A-Za-z0-9]*)(?:\\s[^>]*)?>([^<]*)$/);if(de&&de.index!==void 0){var Pe=de[0].length-de[2].length,Ee=Pe>=2&&de[0].charCodeAt(Pe-2)===ge;if(!Ee){for(var ue=!1,He=0,Fe=0;Fe<de.index;Fe++)b.charCodeAt(Fe)===re&&He++;if(ue=He%2===1,!ue){let Se=de[1];Gr(b,`</${Se}`,0)===-1&&(b=b.slice(0,de.index)+de[2])}}}b!==fe&&(e=e.slice(0,t)+b,r=t+b.length)}let X=[];var be=[];let j=t;var se=\"\",le=a.disableAutoLink||a.disableBareUrls||o.inAnchor?-1:e.indexOf(\"@\",t);for(le>=r&&(le=-1);t<r;){let b=e.charCodeAt(t),fe=null;if(b===re){if(fe=ao(e,t,r),!fe){var Ue=Wr(e,t,r,re);t+=Ue-1}}else if(b===ke||b===he){var K=Co(e,t,r);if(K){if(K.canOpen||K.canClose){(se||t>j)&&(X.push(at(se+e.slice(j,t))),se=\"\");var we=e.slice(t,t+K.len),$e=at(we);be.push({idx:X.length,ch:b,len:K.len,canOpen:K.canOpen,canClose:K.canClose,active:!0}),X.push($e),t+=K.len,j=t;continue}t+=K.len-1}}else if(b===Oe)fe=Ao(e,t,r,o,a);else if(b===Cr)fe=lo(e,t,r,o,a);else if(b===_e)t+1<r&&e.charCodeAt(t+1)===ur&&(fe=co(e,t,r,o)),fe||(fe=Ja(e,t,r,o,a));else if(b===Ke&&t+1<r&&e.charCodeAt(t+1)===_e)fe=Ja(e,t,r,o,a);else if(b===ae)fe=Ya(e,t,r),!(fe||a.disableParsingRawHTML||a.ignoreHTMLBlocks)&&(fe=ho(e,t,r,o,a));else if(b===ht){var Ce=Ho(e,t,r);if(Ce!==-1){var Re=e.slice(t,Ce),We=Nr(Re);if(We!==Re){se=se+e.slice(j,t)+We,t=Ce,j=Ce;continue}}}else if((b===$t||b===Pr||b===pr)&&!o.inAnchor&&!a.disableAutoLink&&(t===0||e.charCodeAt(t-1)!==ae)){var Te=t+1<r?e.charCodeAt(t+1):0;(b===$t&&Te===qr||b===pr&&Te===qr||b===Pr&&Te===Pr)&&(fe=uo(e,t,r,a))}if(!fe&&le>=0&&le-t<=64&&!o.inAnchor&&!a.disableAutoLink&&!a.disableBareUrls&&(b>=J&&b<=G||b>=ie&&b<=ce||b>=W&&b<=z)&&(fe=Ro(e,t,r,a),!fe&&t>=le&&(le=e.indexOf(\"@\",t+1),le>=r&&(le=-1))),b===M&&o.k){var Me=!1,Be=0;if(t>j&&e.charCodeAt(t-1)===me)Me=!0,Be=1;else{for(var ze=0,V=t-1;V>=j&&e.charCodeAt(V)===N;)ze++,V--;ze>=2&&(Me=!0,Be=ze)}if(Me){for((se||t-Be>j)&&(X.push(at(se+e.slice(j,t-Be))),se=\"\"),X.push({type:v.breakLine}),t++;t<r&&e.charCodeAt(t)===N;)t++;j=t;continue}var Ne=t>j&&e.charCodeAt(t-1)===N,Y=t+1<r&&e.charCodeAt(t+1)===N;if(Ne||Y){for(var pe=t;pe>j&&e.charCodeAt(pe-1)===N;)pe--;for(se+=`${e.slice(j,pe)}\n`,t++;t<r&&e.charCodeAt(t)===N;)t++;j=t;continue}}if(fe)(se||t>j)&&(X.push(at(se+e.slice(j,t))),se=\"\"),X.push(fe.node),t=fe.end,j=t;else{if(b===me&&t+1<r){let tr=e.charCodeAt(t+1);if(bn(tr)&rt){(se||t>j)&&(X.push(at(se+e.slice(j,t))),se=\"\"),X.push(at(e[t+1])),t+=2,j=t;continue}}if(t++,le<0||le-t>64)for(;t<r&&!(le>=0&&le-t<=64);){var Ze=e.charCodeAt(t);if(Ze<Ct&&!Fa[Ze])t++;else break}}}return(se||r>j)&&(X.push(at(se+e.slice(j,r))),se=\"\"),be.length>0&&fo(X,be,n,a),Hr=i,Tt--,X}var $o=500;function Ur(e,t,r){var n=t.o||0;if(n>$o)return[{type:v.text,text:e}];t.o=n+1;let a=t;if(r.optimizeForStreaming&&!(t.i||t.w)){for(var i=e.length;i>0&&e.charCodeAt(i-1)===M;)i--;for(var o=i;o>0&&e.charCodeAt(o-1)!==M;)o--;if(i>o&&e.charCodeAt(o)===ye){for(var A=!1,C=o+1;C<i;C++){var l=e.charCodeAt(C);if(l!==N&&l!==k&&l!==ye&&l!==Ge&&l!==F){A=!0;break}}for(var _=!1,d=!1,u=0,c=o,R=o-1;R>0;){for(var s=R;s>0&&e.charCodeAt(s-1)!==M;)s--;if(e.charCodeAt(s)!==ye)break;c=s;for(var T=!0,f=!1,h=s;h<R;h++){var g=e.charCodeAt(h);if(g===F)f=!0;else if(g!==N&&g!==k&&g!==Ge&&g!==ye){T=!1;break}}T&&f?(_=!0,d=!0):d||u++,R=s-1}A?_||(e=e.slice(0,o).trimEnd()):e=_&&u>0?e.slice(0,o).trimEnd():e.slice(0,c).trimEnd()}for(var S=-1,p=-1,H=-1,w=!1,E=e.length-1;E>=0;E--)if(e.charCodeAt(E)===ae){for(var m=E+1<e.length?e.charCodeAt(E+1):0,y=m>=J&&m<=G||m>=ie&&m<=ce,x=m===ge&&E+2<e.length&&(e.charCodeAt(E+2)>=J&&e.charCodeAt(E+2)<=G||e.charCodeAt(E+2)>=ie&&e.charCodeAt(E+2)<=ce),B=m===Ke||m===jr,I=e.length;I>E+1&&e.charCodeAt(I-1)===M;)I--;var O=E+1>=I;if(y||x||B||O){var D=E+1;if((x||y)&&(D=E+2),y||x)for(;D<e.length;){var P=e.charCodeAt(D);if(P>=J&&P<=G||P>=ie&&P<=ce||P>=W&&P<=z)D++;else break}for(var L=y||x?D:E+2;L<e.length&&e.charCodeAt(L)!==U;)L++;if(L>=e.length)S=E,w=!0;else if((y||x)&&e.charCodeAt(L-1)!==ge){for(var Z=!1,ne=L+1;ne<e.length;ne++)if(e.charCodeAt(ne)===ae){Z=!0;break}Z||(S=E,p=D,H=L+1)}}break}if(S>=0){for(var ve=0,Q=0;Q<S;Q++)e.charCodeAt(Q)===re&&ve++;if(ve%2===0)if(w)e=e.slice(0,S);else{var Pe=e.slice(S+1,p);Gr(e,`</${Pe}`,0)===-1&&(e=e.slice(0,S)+e.slice(H))}}for(var Ee=e.length;Ee>0&&e.charCodeAt(Ee-1)===M;)Ee--;if(Ee>0){for(var ue=Ee;ue>0&&e.charCodeAt(ue-1)!==M;)ue--;for(var He=ue,Fe=0;He<Ee&&e.charCodeAt(He)===N&&Fe<3;)He++,Fe++;if(ue>0&&He<Ee&&Qi(e,He,Ee)){for(var X=ue-1,be=X;be>0&&e.charCodeAt(be-1)!==M;)be--;er(e,be,X)||(e=e.slice(0,ue).trimEnd())}}var j=e.length;if(j>0){for(var se=e.lastIndexOf(`\n`),le=se===-1?0:se+1,Ue=j,K=le,we=0;K<Ue&&e.charCodeAt(K)===N&&we<3;)K++,we++;if(K<Ue){var $e=e.charCodeAt(K),Ce=!1;if($e===ke||$e===F||$e===Or){var Re=K+1;if(Re>=Ue||e.charCodeAt(Re)===N||e.charCodeAt(Re)===k){for(var We=Re;We<Ue&&(e.charCodeAt(We)===N||e.charCodeAt(We)===k);)We++;We>=Ue&&(Ce=!0)}}else if($e>=W&&$e<=z){for(var Te=K;Te<Ue&&e.charCodeAt(Te)>=W&&e.charCodeAt(Te)<=z;)Te++;if(Te<Ue&&(e.charCodeAt(Te)===ar||e.charCodeAt(Te)===fr)){var Me=Te+1;if(Me>=Ue||e.charCodeAt(Me)===N||e.charCodeAt(Me)===k){for(var Be=Me;Be<Ue&&(e.charCodeAt(Be)===N||e.charCodeAt(Be)===k);)Be++;Be>=Ue&&(Ce=!0)}}}Ce&&(e=e.slice(0,le).trimEnd())}}}if(t.inline)return mr(e,0,e.length,t,r);let ze=[],V=0,Ne=e.length;if(V===0&&!r.disableFrontmatter&&e.startsWith(\"---\")){let ee=oa(e);if(ee?.hasValidYaml){if(r.preserveFrontmatter!==!1){let sr=e.slice(0,ee.endPos).trimEnd();ze.push({type:v.frontmatter,text:sr})}V=ee.endPos}}for(;V<Ne;){for(var Y=e.indexOf(`\n`,V),pe=Y<0?Ne:Y;V<Ne&&er(e,V,pe);)V=pe<Ne?pe+1:pe,V<Ne&&(Y=e.indexOf(`\n`,V),pe=Y<0?Ne:Y);if(V>=Ne)break;var Ze=e.charCodeAt(V)===Pt;Le(e,V,pe);let ee=null;if(vn=e,Tn=V,Ut=pe,!Ze&&oe>=4&&!t.inHTML)ee=Yi(e,V);else if(!Ze){let sr=V+te,de=e.charCodeAt(sr);de===lr?ee=Zi(e,V,t,r):de===U?ee=qi(e,V,t,r):de===re||de===Oe?ee=Vi(e,V,t):de===F||de===ke||de===he?(ee=Fr(e,V),!ee&&(ee=La(e,V,t,r))):de===Or||de>=W&&de<=z?ee=La(e,V,t,r):de===ae?ee=Va(e,V,t,r):de===ye?ee=xa(e,V,t,r):de===_e&&(ee=ro(e,V,t))}if(!ee){for(var b=!1,fe=V;fe<pe;fe++)if(e.charCodeAt(fe)===ye){b=!0;break}b&&(ee=xa(e,V,t,r))}if(ee||(ee=no(e,V,t,r)),ee)ee.node.type!==v.refCollection&&ze.push(ee.node),V=ee.end;else{var tr=e.indexOf(`\n`,V);V=tr<0?Ne:tr+1}}return t.o=n,ze}function qa(e,t){return e.charCodeAt(0)===65279&&(e=e.slice(1)),kt(e,{inAnchor:!1,inBlockQuote:!1,inHTML:!1,inList:!1,inline:!1,refs:Object.create(null)},Et(t))}function ja(e,t,r,n){var a=wr(e,t);return a?{tagName:a.tag,tagLower:a.tag.toLowerCase(),attrs:a.b,whitespaceBeforeAttrs:a.g,isSelfClosing:a.n,hasSpaceBeforeSlash:a.r,isClosing:a.f,hasNewline:a.g.includes(`\n`)||a.b.includes(`\n`),endPos:a.end}:null}function kt(e,t,r){Tt=0,e=_a(e),!t.refs&&(t.refs=Object.create(null)),(r.optimizeForStreaming||t.inline)&&(t.w=Wi(e,t.refs,r));var n,a;t.t||(t.t=n=[],t.p=a=[]);let i=Ur(e,t,r);if(n&&a){for(var o=n,A={inline:t.inline,inAnchor:t.inAnchor,inHTML:t.inHTML,htmlDepth:t.d,inList:t.inList,inBlockQuote:t.inBlockQuote,noSetext:t.l,depth:t.o},C=0;C<o.length;C++){var l=o[C];t.inline=l.inline,t.inAnchor=l.inAnchor,t.inHTML=l.inHTML,t.d=l.htmlDepth,t.inList=l.inList,t.inBlockQuote=l.inBlockQuote,t.l=l.noSetext,t.o=l.depth,t.k=l.breaks;var _=mr(l.text,0,l.text.length,t,r);t.k=!1;for(var d=0;d<_.length;d++)l.dest.push(_[d])}t.inline=A.inline,t.inAnchor=A.inAnchor,t.inHTML=A.inHTML,t.d=A.htmlDepth,t.inList=A.inList,t.inBlockQuote=A.inBlockQuote,t.l=A.noSetext,t.o=A.depth;for(var u=a,c=0;c<u.length;c++)for(var R=u[c],s=0;s<R.src.length;s++){var T=R.src[s];if(R.unwrap&&T.type===v.paragraph)for(var f=T.children,h=0;h<f.length;h++)R.dest.push(f[h]);else R.dest.push(T)}t.t=void 0,t.p=void 0,mn(i,t,r.slugify)}return Xt(t.refs)?[{type:v.refCollection,refs:t.refs},...i]:i}import*as rr from\"react\";var In;try{it=rr.createElement(\"div\"),In=it!=null&&typeof it==\"object\"&&\"$$typeof\"in it&&typeof it.$$typeof==\"symbol\"?it.$$typeof:Symbol.for(\"react.transitional.element\")}catch{In=Symbol.for(\"react.transitional.element\")}var it;function On(e,t,r){return{$$typeof:In,type:e,key:r==null?null:String(r),ref:null,props:t,_owner:null,_store:{},_debugStack:null,_debugTask:null}}function hr(e,t){var r={key:e};if(t){var n=fn(t);for(var a in n)r[a]=n[a]}return r}var ei=typeof rr.createContext>\"u\"?void 0:rr.createContext(void 0);function ri(e,t,r,n,a,i,o,A,C){switch(e.type){case v.blockQuote:{let f={key:r.key};return e.alert&&(f.className=`markdown-alert-${i(e.alert.toLowerCase(),gr)}`,e.children.unshift(ca(e.alert))),n(\"blockquote\",f,t(e.children,r))}case v.breakLine:return n(\"br\",{key:r.key});case v.breakThematic:return n(\"hr\",{key:r.key});case v.frontmatter:return A.preserveFrontmatter?n(\"pre\",{key:r.key},e.text):null;case v.codeBlock:{let f=e.lang?Nr(e.lang):\"\";var l=e.attrs?fn(e.attrs):{};return l.className=f?`language-${f} lang-${f}`:\"\",n(\"pre\",{key:r.key},n(\"code\",l,e.text))}case v.codeInline:return n(\"code\",{key:r.key},e.text);case v.footnoteReference:return n(\"a\",{key:r.key,href:a(e.target,\"a\",\"href\")||void 0},n(\"sup\",null,e.text));case v.gfmTask:return n(\"input\",{checked:e.completed,key:r.key,readOnly:!0,type:\"checkbox\"});case v.heading:return n(`h${e.level}`,{id:e.id,key:r.key},t(e.children,r));case v.htmlBlock:{let f=e;if(Jr(A)&&cn(f.tag)){var _=dn(f);return _.kind===\"literal\"?n(\"span\",{key:r.key},_.literal):n(\"span\",{key:r.key},...Ha(_.open,f.children?t(f.children,r):null,_.close))}let h=f.j,g=h!==void 0,S=g?h:f.a?f.e||\"\":(f.e||\"\")+(f.h||\"\");if(S&&f.c){let p=f.tag.toLowerCase(),H=Ua(p),w=f.children,E=w!=null&&w.length>0;if(H){let L=g?h:f.e||\"\",Z=Jr(A)?un(L):L;if(/<[a-z][^>]{0,100}>/i.test(S)){var d=hr(r.key,e.attrs);return d.dangerouslySetInnerHTML={__html:Z},C(e.tag,d)}return C(e.tag,hr(r.key,e.attrs),Z)}let m=new RegExp(`^<${f.tag}(\\\\s|>)`,\"i\");if(E&&!m.test(S)&&Jr(A)&&ga(S))return C(e.tag,hr(r.key,e.attrs),t(w,r));if(Wa(S)){let L=Jr(A)?un(S):S;var u=hr(r.key,e.attrs);return u.dangerouslySetInnerHTML={__html:L},C(e.tag,u)}let x=Et({slugify:A.slugify,sanitizer:a,tagfilter:!0}),B=da(S);if(new RegExp(`^<${f.tag}(\\\\s[^>]*)?>(\\\\s*</${f.tag}>)?$`,\"i\").test(B))return f.children&&f.children.length>0?C(e.tag,hr(r.key,e.attrs),t(f.children,r)):C(e.tag,hr(r.key,e.attrs));let O=kt(B,{inline:!1,refs:o,inHTML:!1},x);_n(O);let D=f.tag.toLowerCase(),P=g;if(P&&E)return C(e.tag,hr(r.key,e.attrs),t(w,r));if(P)return t(O.flatMap(tt),r);var c=Ra(O,D);if(c.found&&c.afterClose.length>0){var R=c.beforeClose.flatMap(tt),s=c.afterClose.flatMap(tt);return On(rr.Fragment,{children:[C(e.tag,hr(r.key,e.attrs),t(R,r)),t(s,r)]},r.key)}return C(e.tag,hr(r.key,e.attrs),t(O.flatMap(tt),r))}return nt(e.tag)?C(e.tag,hr(r.key,e.attrs)):C(e.tag,hr(r.key,e.attrs),e.children?t(e.children,r):\"\")}case v.htmlSelfClosing:{let f=e;if(Jr(A)&&cn(f.tag)){var T=dn(f);return n(\"span\",{key:r.key},T.kind===\"literal\"?T.literal:T.open+(T.close||\"\"))}return C(e.tag,hr(r.key,e.attrs))}case v.image:{let f=e.target===null?null:a(e.target,\"img\",\"src\");return n(\"img\",{key:r.key,alt:e.alt&&e.alt.length>0?e.alt:void 0,title:e.title||void 0,src:f||void 0})}case v.link:{let f={key:r.key};if(e.target!=null){let h=ha(e.target,a,\"a\",\"href\");h!=null&&(f.href=h)}return e.title&&(f.title=e.title),n(\"a\",f,t(e.children,r))}case v.table:{let f=e;return n(\"table\",{key:r.key},n(\"thead\",{key:\"thead\"},n(\"tr\",null,f.header.map(function(g,S){return n(\"th\",{key:S,style:f.align[S]===null?{}:{textAlign:f.align[S]}},t(g,r))}))),f.cells.length>0&&n(\"tbody\",{key:\"tbody\"},f.cells.map(function(g,S){return n(\"tr\",{key:S},g.map(function(H,w){return n(\"td\",{key:w,style:f.align[w]===null?{}:{textAlign:f.align[w]}},t(H,r))}))})))}case v.text:return e.text;case v.textFormatted:return n(e.tag,{key:r.key},t(e.children,r));case v.orderedList:case v.unorderedList:{let f=e.type===v.orderedList?\"ol\":\"ul\";return n(f,{key:r.key,start:e.type===v.orderedList?e.start:void 0},e.items.map(function(g,S){return n(\"li\",{key:S},t(g,r))}))}case v.paragraph:return n(\"p\",{key:r.key},t(e.children,r));case v.ref:return null;default:return null}}var vo=(e,t,r,n,a,i,o)=>{var A=l=>l.map(_=>\"text\"in _?_.text:\"\"),C=(l,_={})=>{var d=Array.isArray(l)?l:[l],u=(_.renderDepth||0)+1;if(u>2500)return A(d);_.renderDepth=u;for(var c=_.key,R=[],s=!1,T=0;T<d.length;T++){_.key=T;var f;if(e){var h=ri.bind(null,d[T],C,_,t,r,n,a,i,o);f=e(h,d[T],C,_)}else f=ri(d[T],C,_,t,r,n,a,i,o);var g=typeof f==\"string\";if(s&&typeof f==\"string\"){var S=R.at(-1);R[R.length-1]=(typeof S==\"string\"?S:\"\")+f}else if(f!=null)if(Array.isArray(f))for(var p=0;p<f.length;p++)R.push(f[p]);else R.push(f);s=g}return _.key=c,_.renderDepth=u-1,R};return C},To=(e,t)=>{let r=Jt(t,e,void 0);return r?typeof r==\"function\"||typeof r==\"object\"&&\"render\"in r?r:Jt(t,`${e}.component`,e):e};function So(e,t){let r={...t||{}};r.overrides=r.overrides||{};let n=r.slugify||gr,a=r.sanitizer||dr,i=r.createElement,o=Xt(r.overrides),A=g=>wt(g,{...r,wrapper:null});function C(g){for(var S in g){var p=g[S];if(typeof p==\"string\"&&p.length>0&&p.charCodeAt(0)===ae&&(Ka.test(p)||Ga.test(p)||ja(p,0))){var H=A(p.trim());g[S]=S===\"innerHTML\"&&Array.isArray(H)?H[0]:H}}}function l(g,S,...p){var H=S||{},w=g;if(o){var E=Jt(r.overrides,`${g}.props`,{});w=To(g,r.overrides),H={...H,...E,className:$a(H.className,E.className)||void 0}}if(!i){var m=H.key;return m!=null&&delete H.key,p.length===1?H.children=p[0]:p.length>1&&(H.children=p),On(w,H,m)}return i(w,H,...p)}function _(g,S,...p){return S&&C(S),l(g,S,...p)}let d=Et(r,r.forceInline),u=e[0]&&e[0].type===v.refCollection?e[0].refs:Object.create(null),c=vo(r.renderRule,l,a,n,u,r,_),R=c(e,{inline:r.forceInline,refs:u}),s=sa(u);if(s.length>0&&R.push(l(\"footer\",{key:\"footer\"},s.map(function(S){let p=S.identifier.charCodeAt(0)===ur?S.identifier.slice(1):S.identifier,H=kt(S.footnote,{inline:!0,refs:u},d);return l(\"div\",{id:n(p,gr),key:S.identifier},`${p}: `,c(H,{inline:!0,refs:u}))}))),r.wrapper===null)return R;let T=r.wrapper||(r.forceInline?\"span\":\"div\"),f;if(R.length>1||r.forceWrapper)f=R;else return R.length===1?R[0]:null;var h=r.wrapperProps?{...r.wrapperProps}:{};return h.children=f,On(T,h,\"outer\")}function wt(e=\"\",t={}){let r={...t||{}};r.overrides=r.overrides||{};let n=r.slugify||gr,a=r.sanitizer||dr;function i(A){let C=r.forceInline||!(r.forceBlock||Aa.test(A)),l=Et(r,C),_=C?A:ua(A),d=kt(_,{inline:C,refs:o},l);return So(d,{...r,forceInline:C})}let o=Object.create(null);return i(e)}function Eo(e){let t=rr.useRef(e),r=t.current;if(r!==e){var n=!0,a=0;for(var i in e)if(a++,!Object.is(r[i],e[i])){n=!1;break}if(n){var o=0;for(var A in r)o++;n=o===a}n||(t.current=e)}return t.current}var Ln=({children:e,options:t,...r})=>{if(!(typeof rr.useContext<\"u\")){let l={...t,overrides:{...t?.overrides},wrapperProps:{...t?.wrapperProps,...r}};return wt(e??\"\",l)}let a=ei?rr.useContext(ei):void 0,i=Eo(r),o=rr.useMemo(()=>({...a,...t,overrides:{...a?.overrides,...t?.overrides},wrapperProps:{...a?.wrapperProps,...t?.wrapperProps,...i}}),[a,t,i]),A=e??\"\";return rr.useMemo(()=>wt(A,o),[A,o])},ti=Ln,Po=Ln,Do=wt,Fo=ti;export{Po as Markdown,v as RuleType,Do as compiler,Fo as default,qa as parser,dr as sanitizer,gr as slugify};\n","// src/parser-utils.ts\nfunction createParserState(initialCurrent = \"\") {\n return {\n current: initialCurrent,\n inQuote: false,\n quoteType: \"\",\n inRegex: false,\n curlyDepth: 0,\n parenDepth: 0,\n escapeNext: false\n };\n}\nfunction processCharacter(char, state) {\n if (state.escapeNext) {\n state.current += char;\n state.escapeNext = false;\n return;\n }\n if (char === \"\\\\\") {\n state.current += char;\n if (!state.inRegex) {\n state.escapeNext = true;\n }\n return;\n }\n if ((char === '\"' || char === \"'\") && !state.inRegex && (!state.inQuote || state.quoteType === char)) {\n state.inQuote = !state.inQuote;\n state.quoteType = state.inQuote ? char : \"\";\n state.current += char;\n return;\n }\n if (char === \"/\" && !state.inQuote && !state.inRegex && (state.current.endsWith(\":\") || state.current.endsWith(\",\"))) {\n state.inRegex = true;\n state.current += char;\n return;\n }\n if (char === \"/\" && state.inRegex && !state.escapeNext) {\n state.inRegex = false;\n state.current += char;\n return;\n }\n if (char === \"{\") {\n state.curlyDepth++;\n state.current += char;\n return;\n }\n if (char === \"}\") {\n state.curlyDepth--;\n state.current += char;\n return;\n }\n if (char === \"(\" && !state.inQuote) {\n state.parenDepth++;\n state.current += char;\n return;\n }\n if (char === \")\" && !state.inQuote) {\n state.parenDepth--;\n state.current += char;\n return;\n }\n state.current += char;\n}\nfunction parseRegexPattern(pattern) {\n const match = pattern.match(/^\\/(.+)\\/([gimsuy]*)$/);\n if (!match) return null;\n return {\n pattern: match[1],\n flags: match[2]\n };\n}\nfunction unwrapParamList(value) {\n const trimmed = value.trim();\n if (!trimmed.startsWith(\"(\") || !trimmed.endsWith(\")\")) return trimmed;\n let quote = \"\";\n let escaped = false;\n let depth = 0;\n for (let index = 0; index < trimmed.length; index++) {\n const character = trimmed[index];\n if (escaped) {\n escaped = false;\n } else if (character === \"\\\\\") {\n escaped = true;\n } else if (quote) {\n if (character === quote) quote = \"\";\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \"(\") {\n depth++;\n } else if (character === \")\") {\n depth--;\n if (depth === 0 && index !== trimmed.length - 1) return trimmed;\n }\n }\n return depth === 0 ? trimmed.slice(1, -1).trim() : trimmed;\n}\nfunction unquoteParamToken(value) {\n return value.trim().replace(/^([\"'])([\\s\\S]*)\\1$/, \"$2\");\n}\nfunction decodeStringEscape(character) {\n switch (character) {\n case \"n\":\n return \"\\n\";\n case \"t\":\n return \"\t\";\n case \"r\":\n return \"\\r\";\n default:\n return character;\n }\n}\nfunction decodeParamEscapes(value) {\n return value.replace(/\\\\([\\\\,:|\"'])/g, \"$1\");\n}\nfunction cleanParamToken(value) {\n return decodeParamEscapes(unquoteParamToken(value));\n}\nfunction unquoteScalarParam(value) {\n if (value === void 0) return void 0;\n if (value !== \"\" && value.trim() === \"\") return value;\n return unquoteParamToken(unwrapParamList(value));\n}\nfunction cleanScalarParam(value) {\n const unquoted = unquoteScalarParam(value);\n return unquoted === void 0 ? void 0 : decodeParamEscapes(unquoted);\n}\nfunction splitParamList(value) {\n const unwrapped = unwrapParamList(value);\n const tokens = splitParams(unwrapped);\n const unquoted = tokens.length === 1 ? unquoteParamToken(tokens[0]) : \"\";\n const quotedList = unquoted !== tokens[0]?.trim() && unquoted.includes(\",\");\n return quotedList ? splitParams(unquoted) : tokens;\n}\nfunction normalizeParamList(value) {\n return splitParamList(value).map((token) => unquoteParamToken(token).replace(/\\\\([\"'])/g, \"$1\"));\n}\nfunction parseTypedParamToken(value) {\n const token = value.trim();\n if (splitParamPair(token)[1] !== void 0) return token;\n if (token.length >= 2 && (token[0] === '\"' || token[0] === \"'\") && token.at(-1) === token[0]) {\n return token.slice(1, -1).replace(/\\\\([\\s\\S])/g, (_, character) => decodeStringEscape(character));\n }\n if (token === \"true\") return true;\n if (token === \"false\") return false;\n if (token === \"null\") return null;\n if (/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/.test(token)) {\n const number = Number(token);\n if (Number.isFinite(number)) return number;\n }\n return token;\n}\nfunction parseTypedParams(value) {\n if (value === void 0 || value === \"\") return void 0;\n return splitParams(unwrapParamList(value)).map(parseTypedParamToken);\n}\nfunction splitParamPair(value) {\n let quote = \"\";\n let escaped = false;\n let parenDepth = 0;\n let curlyDepth = 0;\n let bracketDepth = 0;\n for (let index = 0; index < value.length; index++) {\n const character = value[index];\n if (escaped) {\n escaped = false;\n } else if (character === \"\\\\\") {\n escaped = true;\n } else if (quote) {\n if (character === quote) quote = \"\";\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \"(\") {\n parenDepth++;\n } else if (character === \")\") {\n parenDepth--;\n } else if (character === \"{\") {\n curlyDepth++;\n } else if (character === \"}\") {\n curlyDepth--;\n } else if (character === \"[\") {\n bracketDepth++;\n } else if (character === \"]\") {\n bracketDepth--;\n } else if (character === \":\" && parenDepth === 0 && curlyDepth === 0 && bracketDepth === 0) {\n return [value.slice(0, index).trim(), value.slice(index + 1).trim()];\n }\n }\n return [value.trim()];\n}\nfunction splitParams(value) {\n const parts = [];\n let current = \"\";\n let quote = \"\";\n let escaped = false;\n let parenDepth = 0;\n let curlyDepth = 0;\n let bracketDepth = 0;\n for (const character of value) {\n if (escaped) {\n current += character;\n escaped = false;\n } else if (character === \"\\\\\") {\n current += character;\n escaped = true;\n } else if (quote) {\n current += character;\n if (character === quote) quote = \"\";\n } else if (character === '\"' || character === \"'\") {\n current += character;\n quote = character;\n } else if (character === \"(\") {\n current += character;\n parenDepth++;\n } else if (character === \")\") {\n current += character;\n parenDepth--;\n } else if (character === \"{\") {\n current += character;\n curlyDepth++;\n } else if (character === \"}\") {\n current += character;\n curlyDepth--;\n } else if (character === \"[\") {\n current += character;\n bracketDepth++;\n } else if (character === \"]\") {\n current += character;\n bracketDepth--;\n } else if (character === \",\" && parenDepth === 0 && curlyDepth === 0 && bracketDepth === 0) {\n parts.push(current.trim());\n current = \"\";\n } else {\n current += character;\n }\n }\n parts.push(current.trim());\n return parts;\n}\n\n// src/filters/warnings.ts\nfunction reportFilterWarning(context, message, code = \"FILTER_WARNING\") {\n context?.reportWarning?.({ message, code });\n}\nfunction errorMessage(error) {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport {\n createParserState,\n processCharacter,\n parseRegexPattern,\n unwrapParamList,\n unquoteParamToken,\n decodeStringEscape,\n cleanParamToken,\n unquoteScalarParam,\n cleanScalarParam,\n splitParamList,\n normalizeParamList,\n parseTypedParams,\n splitParamPair,\n splitParams,\n reportFilterWarning,\n errorMessage\n};\n//# sourceMappingURL=chunk-DOF2LXGV.js.map","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),Y=_.prototype;return O.prototype=Y,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){Y[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=31536e6,u=2628e6,d=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,a=/\\[([^\\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,h={years:o,months:u,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(d);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/o),t%=o,this.$d.months=$(t/u),t%=u,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(a,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","import {\n cleanParamToken,\n cleanScalarParam,\n createParserState,\n decodeStringEscape,\n errorMessage,\n normalizeParamList,\n parseRegexPattern,\n parseTypedParams,\n processCharacter,\n reportFilterWarning,\n splitParamList,\n splitParamPair,\n splitParams,\n unquoteParamToken,\n unquoteScalarParam,\n unwrapParamList\n} from \"./chunk-DOF2LXGV.js\";\n\n// src/errors.ts\nvar TemplateRuntimeError = class extends Error {\n constructor(message, code2 = \"RENDER_ERROR\", line, column) {\n super(message);\n this.code = code2;\n this.line = line;\n this.column = column;\n this.name = \"TemplateRuntimeError\";\n }\n code;\n line;\n column;\n};\nvar TemplateRenderError = class extends Error {\n constructor(errors) {\n super(errors.map((error) => error.message).join(\"; \") || \"Template rendering failed\");\n this.errors = errors;\n this.name = \"TemplateRenderError\";\n }\n errors;\n};\n\n// src/limits.ts\nvar defaultRenderLimits = Object.freeze({\n maxTemplateLength: 1e6,\n maxOutputLength: 5e6,\n maxValueLength: 5e6,\n maxOperations: 1e5,\n maxDepth: 100\n});\nfunction resolveLimits(limits = {}) {\n const result = { ...defaultRenderLimits, ...limits };\n for (const [name, value] of Object.entries(result)) {\n if (!Number.isSafeInteger(value) || value < 1 || name === \"maxDepth\" && value > 256) {\n throw new TemplateRuntimeError(`Invalid ${name} limit`, \"LIMIT_EXCEEDED\");\n }\n }\n return result;\n}\nfunction limitError(name) {\n throw new TemplateRuntimeError(`Template exceeded ${name}`, \"LIMIT_EXCEEDED\");\n}\nvar RenderBudget = class {\n limits;\n operations = 0;\n constructor(limits = {}) {\n this.limits = resolveLimits(limits);\n }\n step() {\n if (++this.operations > this.limits.maxOperations) limitError(\"maxOperations\");\n }\n output(length2) {\n if (length2 > this.limits.maxOutputLength) limitError(\"maxOutputLength\");\n }\n length(length2) {\n if (length2 > this.limits.maxValueLength) limitError(\"maxValueLength\");\n }\n value(value) {\n const pending = [{ value, depth: 0 }];\n let size = 0;\n let entries = 0;\n while (pending.length) {\n this.step();\n const { value: value2, depth } = pending.pop();\n if (++entries > this.limits.maxOperations) limitError(\"maxOperations\");\n if (depth > this.limits.maxDepth) limitError(\"maxDepth\");\n if (typeof value2 === \"string\") size += value2.length;\n else if (value2 !== null && typeof value2 === \"object\") {\n for (const key of Object.keys(value2)) {\n size += key.length + 4;\n if (pending.length + entries >= this.limits.maxOperations) limitError(\"maxOperations\");\n const property = Object.getOwnPropertyDescriptor(value2, key);\n if (\"value\" in property) pending.push({ value: property.value, depth: depth + 1 });\n }\n } else size += 8;\n if (size > this.limits.maxValueLength) limitError(\"maxValueLength\");\n }\n }\n};\n\n// src/tokenizer.ts\nvar KEYWORDS = {\n \"if\": \"keyword_if\",\n \"elseif\": \"keyword_elseif\",\n \"else\": \"keyword_else\",\n \"endif\": \"keyword_endif\",\n \"for\": \"keyword_for\",\n \"in\": \"keyword_in\",\n \"endfor\": \"keyword_endfor\",\n \"set\": \"keyword_set\",\n \"and\": \"op_and\",\n \"or\": \"op_or\",\n \"not\": \"op_not\",\n \"contains\": \"op_contains\",\n \"true\": \"boolean\",\n \"false\": \"boolean\",\n \"null\": \"null\"\n};\nvar CHAR_OPEN_BRACE = 123;\nvar CHAR_PERCENT = 37;\nvar CHAR_HASH = 35;\nfunction tokenize(input) {\n const state = {\n input,\n pos: 0,\n line: 1,\n column: 1,\n mode: \"text\",\n tokens: [],\n errors: []\n };\n while (state.pos < state.input.length) {\n switch (state.mode) {\n case \"text\":\n tokenizeText(state);\n break;\n case \"variable\":\n tokenizeVariable(state);\n break;\n case \"tag\":\n tokenizeTag(state);\n break;\n }\n }\n state.tokens.push({\n type: \"eof\",\n value: \"\",\n line: state.line,\n column: state.column\n });\n return {\n tokens: state.tokens,\n errors: state.errors\n };\n}\nfunction tokenizeText(state) {\n const startPos = state.pos;\n const startLine = state.line;\n const startColumn = state.column;\n const input = state.input;\n while (state.pos < input.length) {\n const brace = input.indexOf(\"{\", state.pos);\n if (brace === -1) break;\n const next = input.charCodeAt(brace + 1);\n const isVariable = next === CHAR_OPEN_BRACE;\n const isTag = next === CHAR_PERCENT;\n const isComment = next === CHAR_HASH;\n if (!isVariable && !isTag && !isComment) {\n advanceTo(state, brace + 1);\n continue;\n }\n advanceTo(state, brace);\n if (state.pos > startPos) {\n state.tokens.push({\n type: \"text\",\n value: input.slice(startPos, state.pos),\n line: startLine,\n column: startColumn\n });\n }\n if (isComment) {\n const end = input.indexOf(\"#}\", state.pos + 2);\n if (end === -1) {\n state.errors.push({\n message: \"Unclosed comment - missing '#}'\",\n line: state.line,\n column: state.column\n });\n }\n advanceTo(state, end === -1 ? input.length : end + 2);\n return;\n }\n advance(state, 2);\n state.tokens.push({\n type: isVariable ? \"variable_start\" : \"tag_start\",\n value: isVariable ? \"{{\" : \"{%\",\n line: state.line,\n column: state.column - 2,\n trimLeft: false\n });\n state.mode = isVariable ? \"variable\" : \"tag\";\n return;\n }\n advanceTo(state, input.length);\n if (state.pos > startPos) {\n state.tokens.push({\n type: \"text\",\n value: state.input.slice(startPos, state.pos),\n line: startLine,\n column: startColumn\n });\n }\n}\nfunction tokenizeVariable(state) {\n skipWhitespace(state);\n if (lookAhead(state, \"}}\")) {\n state.tokens.push({\n type: \"variable_end\",\n value: \"}}\",\n line: state.line,\n column: state.column,\n trimRight: false\n // Variables preserve whitespace by default\n });\n advance(state, 2);\n state.mode = \"text\";\n return;\n }\n const nextChar = state.input[state.pos + 1];\n if (state.input[state.pos] === \"}\" && nextChar !== \"}\") {\n const validAfterBrace = [\"|\", \",\", \")\", \"]\", \" \", \"\t\", \"\\n\", \"\\r\"];\n if (!validAfterBrace.includes(nextChar)) {\n state.errors.push({\n message: `Malformed variable: expected '}}' but found '}'. Did you forget a '}'?`,\n line: state.line,\n column: state.column\n });\n state.tokens.push({\n type: \"variable_end\",\n value: \"}\",\n line: state.line,\n column: state.column,\n trimRight: false\n });\n advanceChar(state);\n state.mode = \"text\";\n return;\n }\n }\n if (lookAhead(state, \"{%\") || lookAhead(state, \"{{\")) {\n const varStartIndex = [...state.tokens].reverse().findIndex((t) => t.type === \"variable_start\");\n const actualIndex = varStartIndex >= 0 ? state.tokens.length - 1 - varStartIndex : -1;\n const varStartToken = actualIndex >= 0 ? state.tokens[actualIndex] : null;\n const startLine = varStartToken?.line || state.line;\n state.errors.push({\n message: `Missing closing '}}' for variable`,\n line: startLine,\n column: varStartToken?.column || state.column\n });\n if (actualIndex >= 0) {\n state.tokens.splice(actualIndex);\n }\n state.mode = \"text\";\n return;\n }\n tokenizeExpression(state, \"variable\");\n}\nfunction tokenizeTag(state) {\n skipWhitespace(state);\n if (lookAhead(state, \"%}\")) {\n state.tokens.push({\n type: \"tag_end\",\n value: \"%}\",\n line: state.line,\n column: state.column,\n trimRight: true\n // Tags always trim whitespace\n });\n advance(state, 2);\n state.mode = \"text\";\n return;\n }\n if (lookAhead(state, \"-%}\")) {\n state.tokens.push({\n type: \"tag_end\",\n value: \"-%}\",\n line: state.line,\n column: state.column,\n trimRight: true\n });\n advance(state, 3);\n state.mode = \"text\";\n return;\n }\n if (state.input[state.pos] === \"}\" && state.pos > 0 && state.input[state.pos - 1] !== \"%\") {\n state.errors.push({\n message: `Malformed tag: expected '%}' but found '}'. Did you forget the '%'?`,\n line: state.line,\n column: state.column\n });\n state.tokens.push({\n type: \"tag_end\",\n value: \"}\",\n line: state.line,\n column: state.column,\n trimRight: true\n });\n advanceChar(state);\n state.mode = \"text\";\n return;\n }\n if (lookAhead(state, \"{%\") || lookAhead(state, \"{{\")) {\n const tagStartIndex = [...state.tokens].reverse().findIndex((t) => t.type === \"tag_start\");\n const actualIndex = tagStartIndex >= 0 ? state.tokens.length - 1 - tagStartIndex : -1;\n const tagStartToken = actualIndex >= 0 ? state.tokens[actualIndex] : null;\n const startLine = tagStartToken?.line || state.line;\n state.errors.push({\n message: `Missing closing '%}' for tag`,\n line: startLine,\n column: tagStartToken?.column || state.column\n });\n if (actualIndex >= 0) {\n state.tokens.splice(actualIndex);\n }\n state.mode = \"text\";\n return;\n }\n tokenizeExpression(state, \"tag\");\n}\nfunction tokenizeExpression(state, mode) {\n skipWhitespace(state);\n if (state.pos >= state.input.length) {\n state.errors.push({\n message: mode === \"variable\" ? `Unclosed variable - missing '}}'` : `Unclosed tag - missing '%}'`,\n line: state.line,\n column: state.column\n });\n return;\n }\n const char = state.input[state.pos];\n const startLine = state.line;\n const startColumn = state.column;\n if (char === '\"' || char === \"'\") {\n tokenizeString(state);\n return;\n }\n if (isDigit(char) || char === \"-\" && isDigit(state.input[state.pos + 1])) {\n tokenizeNumber(state);\n return;\n }\n if (lookAhead(state, \"==\")) {\n state.tokens.push({ type: \"op_eq\", value: \"==\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"!=\")) {\n state.tokens.push({ type: \"op_neq\", value: \"!=\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \">=\")) {\n state.tokens.push({ type: \"op_gte\", value: \">=\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"<=\")) {\n state.tokens.push({ type: \"op_lte\", value: \"<=\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"&&\")) {\n state.tokens.push({ type: \"op_and\", value: \"&&\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"||\")) {\n state.tokens.push({ type: \"op_or\", value: \"||\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"??\")) {\n state.tokens.push({ type: \"op_nullish\", value: \"??\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"=>\")) {\n state.tokens.push({ type: \"arrow\", value: \"=>\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n switch (char) {\n case \">\":\n state.tokens.push({ type: \"op_gt\", value: \">\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"<\":\n state.tokens.push({ type: \"op_lt\", value: \"<\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"!\":\n state.tokens.push({ type: \"op_not\", value: \"!\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"=\":\n state.tokens.push({ type: \"op_assign\", value: \"=\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"|\":\n state.tokens.push({ type: \"pipe\", value: \"|\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"(\":\n state.tokens.push({ type: \"lparen\", value: \"(\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \")\":\n state.tokens.push({ type: \"rparen\", value: \")\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"[\":\n state.tokens.push({ type: \"lbracket\", value: \"[\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"]\":\n state.tokens.push({ type: \"rbracket\", value: \"]\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \":\":\n state.tokens.push({ type: \"colon\", value: \":\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \",\":\n state.tokens.push({ type: \"comma\", value: \",\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \".\":\n state.tokens.push({ type: \"dot\", value: \".\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"*\":\n state.tokens.push({ type: \"star\", value: \"*\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"/\":\n state.tokens.push({ type: \"slash\", value: \"/\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"+\":\n state.tokens.push({ type: \"plus\", value: \"+\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"{\":\n state.tokens.push({ type: \"lbrace\", value: \"{\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"}\":\n state.tokens.push({ type: \"rbrace\", value: \"}\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"$\":\n state.tokens.push({ type: \"dollar\", value: \"$\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n }\n if (isIdentifierStart(char)) {\n tokenizeIdentifier(state);\n return;\n }\n if (char === \"\\\\\") {\n tokenizeEscapedArgument(state);\n return;\n }\n state.errors.push({\n message: `Unexpected character '${char}' in template`,\n line: state.line,\n column: state.column\n });\n advanceChar(state);\n}\nfunction tokenizeString(state) {\n const quote = state.input[state.pos];\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n let rawValue = \"\";\n advanceChar(state);\n while (state.pos < state.input.length) {\n const char = state.input[state.pos];\n const nextChar = state.input[state.pos + 1] || \"\";\n if (char === quote) {\n advanceChar(state);\n if (parseRegexPattern(rawValue)) value = rawValue.replace(/\\\\([\\\\\"'])/g, \"$1\");\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n return;\n }\n if (char === \"}\" && nextChar === \"}\" || char === \"%\" && nextChar === \"}\") {\n state.errors.push({\n message: `Unclosed string - missing ${quote} before ${char}${nextChar}`,\n line: startLine,\n column: startColumn\n });\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n return;\n }\n if (char === \"\\\\\" && state.pos + 1 < state.input.length) {\n advanceChar(state);\n const escaped = state.input[state.pos];\n rawValue += \"\\\\\" + escaped;\n value += decodeStringEscape(escaped);\n advanceChar(state);\n continue;\n }\n value += char;\n rawValue += char;\n advanceChar(state);\n }\n state.errors.push({\n message: `Unclosed string - missing closing ${quote}`,\n line: startLine,\n column: startColumn\n });\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n}\nfunction tokenizeEscapedArgument(state) {\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n while (state.pos < state.input.length) {\n const char = state.input[state.pos];\n const nextChar = state.input[state.pos + 1] || \"\";\n if (char === \"|\" || char === \"%\" || char === \"}\" || char === \")\") {\n break;\n }\n if (char === \"+\" && (nextChar === \"%\" || nextChar === \"}\")) {\n break;\n }\n if (char === \"\\\\\" && state.pos + 1 < state.input.length) {\n const escaped = state.input[state.pos + 1];\n switch (escaped) {\n case '\"':\n value += '\"';\n break;\n case \"'\":\n value += \"'\";\n break;\n case \"\\\\\":\n value += \"\\\\\";\n break;\n case \"n\":\n value += \"\\n\";\n break;\n case \"t\":\n value += \"\t\";\n break;\n case \"r\":\n value += \"\\r\";\n break;\n case \",\":\n value += \",\";\n break;\n case \"|\":\n value += \"|\";\n break;\n default:\n value += escaped;\n }\n advanceChar(state);\n advanceChar(state);\n continue;\n }\n value += char;\n advanceChar(state);\n }\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n}\nfunction tokenizeNumber(state) {\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n if (state.input[state.pos] === \"-\") {\n value += \"-\";\n advanceChar(state);\n }\n while (state.pos < state.input.length && isDigit(state.input[state.pos])) {\n value += state.input[state.pos];\n advanceChar(state);\n }\n if (state.pos < state.input.length && state.input[state.pos] === \".\") {\n value += \".\";\n advanceChar(state);\n while (state.pos < state.input.length && isDigit(state.input[state.pos])) {\n value += state.input[state.pos];\n advanceChar(state);\n }\n }\n state.tokens.push({\n type: \"number\",\n value,\n line: startLine,\n column: startColumn\n });\n}\nfunction tokenizeIdentifier(state) {\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n while (state.pos < state.input.length && isIdentifierChar(state.input[state.pos])) {\n value += state.input[state.pos];\n advanceChar(state);\n }\n if ((value === \"selector\" || value === \"selectorHtml\") && state.pos < state.input.length && state.input[state.pos] === \":\") {\n value += \":\";\n advanceChar(state);\n value = tokenizeCssSelector(state, value);\n }\n const lowerValue = value.toLowerCase();\n const keywordType = Object.prototype.hasOwnProperty.call(KEYWORDS, lowerValue) ? KEYWORDS[lowerValue] : void 0;\n if (keywordType) {\n state.tokens.push({\n type: keywordType,\n value,\n line: startLine,\n column: startColumn\n });\n } else {\n state.tokens.push({\n type: \"identifier\",\n value,\n line: startLine,\n column: startColumn\n });\n }\n}\nfunction tokenizeCssSelector(state, value) {\n let bracketDepth = 0;\n let parenDepth = 0;\n let inString = null;\n while (state.pos < state.input.length) {\n const char = state.input[state.pos];\n const nextChar = state.input[state.pos + 1] || \"\";\n if (!inString && bracketDepth === 0 && parenDepth === 0) {\n if (char === \"|\") {\n break;\n }\n if (char === \"%\" && nextChar === \"}\") {\n break;\n }\n if (char === \"}\" && nextChar === \"}\") {\n break;\n }\n if (char === \"-\" && nextChar === \"%\") {\n break;\n }\n if (char === \"-\" && nextChar === \"}\") {\n break;\n }\n if (char === \"}\" && nextChar !== \"}\") {\n break;\n }\n }\n if (char === \"}\" && nextChar === \"}\" || char === \"%\" && nextChar === \"}\") {\n if (inString) {\n state.errors.push({\n message: `Unclosed string in selector - missing closing ${inString}`,\n line: state.line,\n column: state.column\n });\n break;\n }\n if (bracketDepth > 0) {\n state.errors.push({\n message: `Unclosed '[' in selector - missing ']'`,\n line: state.line,\n column: state.column\n });\n break;\n }\n if (parenDepth > 0) {\n state.errors.push({\n message: `Unclosed '(' in selector - missing ')'`,\n line: state.line,\n column: state.column\n });\n break;\n }\n }\n if (!inString && char === \"\\\\\" && (nextChar === '\"' || nextChar === \"'\")) {\n value += char;\n advanceChar(state);\n value += state.input[state.pos];\n advanceChar(state);\n continue;\n }\n if (!inString && (char === '\"' || char === \"'\")) {\n inString = char;\n value += char;\n advanceChar(state);\n continue;\n }\n if (inString && char === inString) {\n inString = null;\n value += char;\n advanceChar(state);\n continue;\n }\n if (inString && char === \"\\\\\" && state.pos + 1 < state.input.length) {\n value += char;\n advanceChar(state);\n value += state.input[state.pos];\n advanceChar(state);\n continue;\n }\n if (!inString) {\n if (char === \"[\") {\n bracketDepth++;\n } else if (char === \"]\") {\n bracketDepth--;\n if (bracketDepth < 0) {\n state.errors.push({\n message: `Extra ']' in selector - no matching '['`,\n line: state.line,\n column: state.column\n });\n bracketDepth = 0;\n }\n } else if (char === \"(\") {\n parenDepth++;\n } else if (char === \")\") {\n parenDepth--;\n if (parenDepth < 0) {\n state.errors.push({\n message: `Extra ')' in selector - no matching '('`,\n line: state.line,\n column: state.column\n });\n parenDepth = 0;\n }\n }\n }\n value += char;\n advanceChar(state);\n }\n return value.trimEnd();\n}\nfunction lookAhead(state, str) {\n return state.input.startsWith(str, state.pos);\n}\nfunction advanceTo(state, target) {\n if (target <= state.pos) return;\n const input = state.input;\n let lastNewline = -1;\n let newlines = 0;\n for (let i = input.indexOf(\"\\n\", state.pos); i !== -1 && i < target; i = input.indexOf(\"\\n\", i + 1)) {\n lastNewline = i;\n newlines++;\n }\n if (newlines > 0) {\n state.line += newlines;\n state.column = target - lastNewline;\n } else {\n state.column += target - state.pos;\n }\n state.pos = target;\n}\nfunction advance(state, count) {\n for (let i = 0; i < count; i++) {\n advanceChar(state);\n }\n}\nfunction advanceChar(state) {\n if (state.pos < state.input.length) {\n if (state.input[state.pos] === \"\\n\") {\n state.line++;\n state.column = 1;\n } else {\n state.column++;\n }\n state.pos++;\n }\n}\nfunction skipWhitespace(state) {\n while (state.pos < state.input.length && isWhitespace(state.input[state.pos])) {\n advanceChar(state);\n }\n}\nfunction isWhitespace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n}\nfunction isDigit(char) {\n return char >= \"0\" && char <= \"9\";\n}\nfunction isIdentifierStart(char) {\n return char >= \"a\" && char <= \"z\" || char >= \"A\" && char <= \"Z\" || char === \"_\" || char === \"@\";\n}\nfunction isIdentifierChar(char) {\n return isIdentifierStart(char) || isDigit(char) || char === \"-\" || // For kebab-case\n char === \".\";\n}\n\n// src/parser.ts\nfunction parse(input, options = {}) {\n try {\n const limits = resolveLimits(options);\n if (input.length > limits.maxTemplateLength) limitError(\"maxTemplateLength\");\n const result = tokenize(input);\n return parseTokens(result.tokens, options, result.errors);\n } catch (error) {\n return parseFailure(error);\n }\n}\nfunction parseFailure(error) {\n if (error instanceof TemplateRuntimeError || error instanceof RangeError) {\n return { ast: [], errors: [{\n message: error instanceof TemplateRuntimeError ? error.message : \"Template exceeded maxDepth\",\n code: \"LIMIT_EXCEEDED\",\n line: 1,\n column: 1\n }] };\n }\n throw error;\n}\nfunction parseTokens(tokens, options = {}, errors = []) {\n try {\n const limits = resolveLimits(options);\n const state = { tokens, pos: 0, errors, depth: 0, maxDepth: limits.maxDepth };\n const ast = parseTemplate(state);\n const pending = ast.map((value) => ({ value, depth: 0 }));\n while (pending.length) {\n const { value, depth } = pending.pop();\n if (depth > limits.maxDepth) limitError(\"maxDepth\");\n if (value && typeof value === \"object\") {\n for (const child of Object.values(value)) {\n if (child && typeof child === \"object\") pending.push({ value: child, depth: depth + (Array.isArray(child) ? 0 : 1) });\n }\n }\n }\n return { ast, errors: state.errors };\n } catch (error) {\n return parseFailure(error);\n }\n}\nfunction withDepth(state, parse2) {\n if (++state.depth > state.maxDepth) limitError(\"maxDepth\");\n try {\n return parse2();\n } finally {\n state.depth--;\n }\n}\nfunction parseTemplate(state) {\n const nodes = [];\n while (!isAtEnd(state)) {\n const node = parseNode(state);\n if (node) {\n nodes.push(node);\n }\n }\n return nodes;\n}\nfunction parseNode(state) {\n const token = peek(state);\n switch (token.type) {\n case \"text\":\n return parseText(state);\n case \"variable_start\":\n return parseVariable(state);\n case \"tag_start\":\n return parseTag(state);\n case \"eof\":\n advance2(state);\n return null;\n default:\n state.errors.push({\n message: `Unexpected \"${token.value}\" in template`,\n line: token.line,\n column: token.column\n });\n advance2(state);\n return null;\n }\n}\nfunction parseText(state) {\n const token = advance2(state);\n const parts = [token.value];\n while (check(state, \"text\")) parts.push(advance2(state).value);\n return {\n type: \"text\",\n value: parts.join(\"\"),\n line: token.line,\n column: token.column\n };\n}\nfunction parseVariable(state) {\n const startToken = advance2(state);\n const trimLeft = startToken.trimLeft || false;\n if (check(state, \"identifier\") && state.tokens[state.pos + 1]?.type === \"identifier\") {\n const first2 = state.tokens[state.pos];\n let end = state.pos + 1;\n const parts = [first2.value];\n while (state.tokens[end]?.type === \"identifier\") {\n parts.push(state.tokens[end].value);\n end++;\n }\n state.tokens.splice(state.pos, end - state.pos, {\n ...first2,\n value: parts.join(\" \")\n });\n }\n const expression = parseExpression(state);\n if (!expression) {\n state.errors.push({\n message: \"Empty variable - add a variable name between {{ and }}\",\n line: startToken.line,\n column: startToken.column\n });\n skipToEndOfVariable(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"variable_end\")) {\n const endToken = advance2(state);\n trimRight = endToken.trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing closing }}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"variable\",\n expression,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseTag(state) {\n const startToken = advance2(state);\n const trimLeft = startToken.trimLeft || false;\n const keywordToken = peek(state);\n switch (keywordToken.type) {\n case \"keyword_if\":\n return parseIfStatement(state, startToken, trimLeft);\n case \"keyword_for\":\n return parseForStatement(state, startToken, trimLeft);\n case \"keyword_set\":\n return parseSetStatement(state, startToken, trimLeft);\n case \"keyword_else\":\n case \"keyword_elseif\":\n case \"keyword_endif\":\n case \"keyword_endfor\":\n state.errors.push({\n message: `Unexpected {% ${keywordToken.value} %} - no matching opening tag`,\n line: keywordToken.line,\n column: keywordToken.column\n });\n skipToEndOfTag(state);\n return null;\n default:\n state.errors.push({\n message: `Unknown tag: {% ${keywordToken.value} %}`,\n line: keywordToken.line,\n column: keywordToken.column\n });\n skipToEndOfTag(state);\n return null;\n }\n}\nfunction parseIfStatement(state, startToken, trimLeft) {\n advance2(state);\n const condition = parseExpression(state);\n if (!condition) {\n state.errors.push({\n message: \"{% if %} requires a condition\",\n line: startToken.line,\n column: startToken.column\n });\n skipToEndOfTag(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"tag_end\")) {\n trimRight = advance2(state).trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing %} to close {% if %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n const consequent = parseBody(state, [\"keyword_elseif\", \"keyword_else\", \"keyword_endif\"], true);\n const elseifs = [];\n while (checkTagKeyword(state, \"keyword_elseif\")) {\n consumeTagStart(state);\n advance2(state);\n const elseifCondition = parseExpression(state);\n if (!elseifCondition) {\n state.errors.push({\n message: \"{% elseif %} requires a condition\",\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n continue;\n }\n consumeTagEnd(state);\n const elseifBody = parseBody(state, [\"keyword_elseif\", \"keyword_else\", \"keyword_endif\"], true);\n elseifs.push({ condition: elseifCondition, body: elseifBody });\n }\n let alternate = null;\n if (checkTagKeyword(state, \"keyword_else\")) {\n consumeTagStart(state);\n advance2(state);\n consumeTagEnd(state);\n alternate = parseBody(state, [\"keyword_endif\"], true);\n }\n if (checkTagKeyword(state, \"keyword_endif\")) {\n consumeTagStart(state);\n advance2(state);\n consumeTagEnd(state);\n } else {\n state.errors.push({\n message: \"Missing {% endif %} to close {% if %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"if\",\n condition,\n consequent,\n elseifs,\n alternate,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseForStatement(state, startToken, trimLeft) {\n advance2(state);\n if (!check(state, \"identifier\")) {\n state.errors.push({\n message: \"{% for %} requires a variable name, e.g. {% for item in items %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n const iterator = advance2(state).value;\n if (!check(state, \"keyword_in\")) {\n state.errors.push({\n message: '{% for %} requires \"in\" keyword, e.g. {% for item in items %}',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n advance2(state);\n const iterable = parseExpression(state);\n if (!iterable) {\n state.errors.push({\n message: '{% for %} requires something to loop over after \"in\"',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"tag_end\")) {\n trimRight = advance2(state).trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing %} to close {% for %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n const body = parseBody(state, [\"keyword_endfor\"]);\n if (checkTagKeyword(state, \"keyword_endfor\")) {\n consumeTagStart(state);\n advance2(state);\n consumeTagEnd(state);\n } else {\n state.errors.push({\n message: \"Missing {% endfor %} to close {% for %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"for\",\n iterator,\n iterable,\n body,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseSetStatement(state, startToken, trimLeft) {\n advance2(state);\n if (!check(state, \"identifier\")) {\n state.errors.push({\n message: \"{% set %} requires a variable name, e.g. {% set name = value %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n const variable = advance2(state).value;\n if (!check(state, \"op_assign\")) {\n state.errors.push({\n message: '{% set %} requires \"=\" after variable name',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n advance2(state);\n const value = parseExpression(state);\n if (!value) {\n state.errors.push({\n message: '{% set %} requires a value after \"=\"',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"tag_end\")) {\n trimRight = advance2(state).trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing %} to close {% set %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"set\",\n variable,\n value,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseBody(state, stopKeywords, trimClosingLine = false) {\n return withDepth(state, () => parseBodyInner(state, stopKeywords, trimClosingLine));\n}\nfunction parseBodyInner(state, stopKeywords, trimClosingLine = false) {\n const nodes = [];\n while (!isAtEnd(state)) {\n if (checkTagKeyword(state, ...stopKeywords)) {\n if (trimClosingLine) {\n let end = state.pos;\n while (end < state.tokens.length && state.tokens[end].type !== \"tag_end\") end++;\n const after = state.tokens[end + 1];\n const standalone = after?.type === \"eof\" || after?.type === \"text\" && /^[\\t ]*(?:\\r?\\n|$)/.test(after.value);\n const last2 = nodes[nodes.length - 1];\n if (standalone && last2?.type === \"text\") last2.value = last2.value.replace(/\\r?\\n[\\t ]*$/, \"\");\n }\n break;\n }\n const node = parseNode(state);\n if (node) {\n nodes.push(node);\n }\n }\n return nodes;\n}\nfunction parseExpression(state) {\n return parseNullishExpression(state);\n}\nfunction parseNullishExpression(state) {\n let left = parseFilterExpression(state);\n if (!left) return null;\n while (check(state, \"op_nullish\")) {\n const opToken = advance2(state);\n const right = parseFilterExpression(state);\n if (!right) {\n state.errors.push({\n message: \"Missing fallback value after ??\",\n line: opToken.line,\n column: opToken.column\n });\n break;\n }\n left = {\n type: \"binary\",\n operator: \"??\",\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parseFilterArgument(state) {\n const startToken = peek(state);\n if (check(state, \"slash\") || check(state, \"star\")) {\n const token = advance2(state);\n return {\n type: \"literal\",\n value: token.value,\n raw: token.value,\n line: token.line,\n column: token.column\n };\n }\n if (check(state, \"lbracket\")) {\n let value2 = \"\";\n let bracketDepth = 0;\n const startLine = peek(state).line;\n const startColumn = peek(state).column;\n while (!isAtEnd(state)) {\n const token = peek(state);\n if (token.type === \"lbracket\") {\n bracketDepth++;\n } else if (token.type === \"rbracket\") {\n bracketDepth--;\n if (bracketDepth === 0) {\n value2 += token.value;\n advance2(state);\n break;\n }\n }\n if (bracketDepth === 0 && (token.type === \"pipe\" || token.type === \"variable_end\" || token.type === \"comma\")) {\n break;\n }\n value2 += token.value;\n advance2(state);\n }\n return {\n type: \"literal\",\n value: value2,\n raw: value2,\n line: startLine,\n column: startColumn\n };\n }\n if (check(state, \"identifier\")) {\n const savedPos = state.pos;\n const idToken = advance2(state);\n if (check(state, \"arrow\")) {\n let value2 = idToken.value + \" \";\n value2 += advance2(state).value + \" \";\n let braceDepth = 0;\n let parenDepth = 0;\n while (!isAtEnd(state)) {\n const token = peek(state);\n if (braceDepth === 0 && parenDepth === 0) {\n if (token.type === \"pipe\" || token.type === \"variable_end\" || token.type === \"tag_end\") {\n break;\n }\n }\n if (token.type === \"lbrace\" || token.type === \"lparen\") {\n if (token.type === \"lbrace\") braceDepth++;\n else parenDepth++;\n } else if (token.type === \"rbrace\" || token.type === \"rparen\") {\n if (token.type === \"rbrace\") braceDepth--;\n else parenDepth--;\n if (braceDepth < 0 || parenDepth < 0) break;\n }\n if (token.type === \"string\") {\n value2 += `\"${token.value}\"`;\n } else {\n value2 += token.value;\n }\n advance2(state);\n }\n return {\n type: \"literal\",\n value: value2.trim(),\n raw: value2.trim(),\n line: startToken.line,\n column: startToken.column\n };\n }\n state.pos = savedPos;\n }\n const first2 = parsePrimaryExpression(state);\n if (!first2) return null;\n if (first2.type === \"literal\" && startToken.type === \"string\") {\n const formatString = (val) => `\"${val}\"`;\n let combined = formatString(first2.value);\n let isStringPair = false;\n while (check(state, \"colon\")) {\n const savedPos = state.pos;\n advance2(state);\n if (check(state, \"string\")) {\n const next = parsePrimaryExpression(state);\n if (next && next.type === \"literal\") {\n combined += \":\" + formatString(next.value);\n isStringPair = true;\n }\n } else {\n state.pos = savedPos;\n break;\n }\n }\n return {\n type: \"literal\",\n value: combined,\n raw: combined,\n ...!isStringPair ? { unquotedValue: first2.value } : {},\n line: first2.line,\n column: first2.column\n };\n }\n if (first2.type === \"identifier\" && check(state, \"plus\")) {\n const savedPos = state.pos;\n advance2(state);\n if (check(state, \"number\")) {\n const numberToken = advance2(state);\n const combined = `${first2.name}+${numberToken.value}`;\n return {\n type: \"literal\",\n value: combined,\n raw: combined,\n line: first2.line,\n column: first2.column\n };\n }\n state.pos = savedPos;\n }\n if (first2.type === \"literal\" && startToken.type === \"number\" && check(state, \"identifier\")) {\n const idToken = peek(state);\n if (idToken.value.length === 1 && /^[a-z]$/i.test(idToken.value)) {\n advance2(state);\n const combined = String(first2.value) + idToken.value;\n return {\n type: \"literal\",\n value: combined,\n raw: combined,\n line: first2.line,\n column: first2.column\n };\n }\n }\n if (!check(state, \"colon\")) {\n return first2;\n }\n let value = \"\";\n if (first2.type === \"literal\") {\n value = String(first2.value);\n } else if (first2.type === \"identifier\") {\n value = first2.name;\n } else {\n return first2;\n }\n while (check(state, \"colon\") && !isAtEnd(state)) {\n advance2(state);\n value += \":\";\n const next = parsePrimaryExpression(state);\n if (next) {\n if (next.type === \"literal\") {\n value += String(next.value);\n } else if (next.type === \"identifier\") {\n value += next.name;\n }\n } else {\n break;\n }\n }\n return {\n type: \"literal\",\n value,\n raw: value,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseFilterExpression(state) {\n let left = parseOrExpression(state);\n if (!left) return null;\n while (check(state, \"pipe\")) {\n advance2(state);\n if (!check(state, \"identifier\")) {\n state.errors.push({\n message: \"Missing filter name after |\",\n line: peek(state).line,\n column: peek(state).column\n });\n break;\n }\n const filterToken = advance2(state);\n const args = [];\n if (check(state, \"colon\")) {\n advance2(state);\n if (check(state, \"lparen\")) {\n advance2(state);\n while (!check(state, \"rparen\") && !isAtEnd(state)) {\n const arg = parseOrExpression(state);\n if (!arg) break;\n if (arg.type === \"literal\" && typeof arg.value === \"string\" && check(state, \"colon\")) {\n const formatStr = (val) => `\"${val}\"`;\n let combined = formatStr(arg.value);\n while (check(state, \"colon\")) {\n advance2(state);\n const next = parseOrExpression(state);\n if (next && next.type === \"literal\" && typeof next.value === \"string\") {\n combined += \":\" + formatStr(next.value);\n } else {\n break;\n }\n }\n args.push({\n type: \"literal\",\n value: combined,\n raw: combined,\n line: arg.line,\n column: arg.column\n });\n } else {\n args.push(arg);\n }\n if (check(state, \"comma\")) {\n advance2(state);\n } else {\n break;\n }\n }\n if (check(state, \"rparen\")) {\n advance2(state);\n }\n } else {\n const arg = parseFilterArgument(state);\n if (arg) args.push(arg);\n while (check(state, \"comma\")) {\n advance2(state);\n const nextArg = parseFilterArgument(state);\n if (nextArg) args.push(nextArg);\n }\n }\n }\n left = {\n type: \"filter\",\n value: left,\n name: filterToken.value,\n args,\n line: filterToken.line,\n column: filterToken.column\n };\n }\n return left;\n}\nfunction parseOrExpression(state) {\n return withDepth(state, () => parseOrExpressionInner(state));\n}\nfunction parseOrExpressionInner(state) {\n let left = parseAndExpression(state);\n if (!left) return null;\n while (check(state, \"op_or\")) {\n const opToken = advance2(state);\n const right = parseAndExpression(state);\n if (!right) {\n state.errors.push({\n message: 'Missing value after \"or\"',\n line: opToken.line,\n column: opToken.column\n });\n break;\n }\n left = {\n type: \"binary\",\n operator: \"or\",\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parseAndExpression(state) {\n let left = parseNotExpression(state);\n if (!left) return null;\n while (check(state, \"op_and\")) {\n const opToken = advance2(state);\n const right = parseNotExpression(state);\n if (!right) {\n state.errors.push({\n message: 'Missing value after \"and\"',\n line: opToken.line,\n column: opToken.column\n });\n break;\n }\n left = {\n type: \"binary\",\n operator: \"and\",\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parseNotExpression(state) {\n return withDepth(state, () => parseNotExpressionInner(state));\n}\nfunction parseNotExpressionInner(state) {\n if (check(state, \"op_not\")) {\n const opToken = advance2(state);\n const argument = parseNotExpression(state);\n if (!argument) {\n state.errors.push({\n message: 'Missing value after \"not\"',\n line: opToken.line,\n column: opToken.column\n });\n return null;\n }\n return {\n type: \"unary\",\n operator: \"not\",\n argument,\n line: opToken.line,\n column: opToken.column\n };\n }\n return parseComparisonExpression(state);\n}\nfunction parseComparisonExpression(state) {\n let left = parsePostfixExpression(state);\n if (!left) return null;\n const comparisonOps = [\"op_eq\", \"op_neq\", \"op_gt\", \"op_lt\", \"op_gte\", \"op_lte\", \"op_contains\"];\n if (comparisonOps.some((op) => check(state, op))) {\n const opToken = advance2(state);\n const right = parsePostfixExpression(state);\n if (!right) {\n state.errors.push({\n message: `Missing value after \"${opToken.value}\"`,\n line: opToken.line,\n column: opToken.column\n });\n return left;\n }\n const operatorMap = {\n \"op_eq\": \"==\",\n \"op_neq\": \"!=\",\n \"op_gt\": \">\",\n \"op_lt\": \"<\",\n \"op_gte\": \">=\",\n \"op_lte\": \"<=\",\n \"op_contains\": \"contains\"\n };\n return {\n type: \"binary\",\n operator: operatorMap[opToken.type] || opToken.value,\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parsePostfixExpression(state) {\n let left = parsePrimaryExpression(state);\n if (!left) return null;\n while (check(state, \"lbracket\") || check(state, \"dot\")) {\n if (check(state, \"dot\")) {\n const dot = advance2(state);\n const property2 = peek(state);\n const parts = property2.value.split(\".\");\n if (property2.type === \"string\" || !parts.every((part) => /^[A-Za-z_@][A-Za-z0-9_@-]*$/.test(part))) {\n state.errors.push({ message: \"Expected a property name after .\", line: dot.line, column: dot.column });\n break;\n }\n advance2(state);\n let column = property2.column;\n for (const part of parts) {\n left = {\n type: \"member\",\n object: left,\n property: { type: \"literal\", value: part, raw: part, line: property2.line, column },\n computed: false,\n line: property2.line,\n column\n };\n column += part.length + 1;\n }\n continue;\n }\n const bracketToken = advance2(state);\n const property = parseOrExpression(state);\n if (!property) {\n state.errors.push({\n message: \"Empty brackets [] - add an index or key\",\n line: bracketToken.line,\n column: bracketToken.column\n });\n break;\n }\n if (check(state, \"rbracket\")) {\n advance2(state);\n } else {\n state.errors.push({\n message: \"Missing closing ]\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n left = {\n type: \"member\",\n object: left,\n property,\n computed: true,\n line: bracketToken.line,\n column: bracketToken.column\n };\n }\n return left;\n}\nfunction parsePrimaryExpression(state) {\n const token = peek(state);\n if (check(state, \"lparen\")) {\n advance2(state);\n const expr = parseOrExpression(state);\n if (!expr) {\n state.errors.push({\n message: \"Empty parentheses () - add an expression\",\n line: token.line,\n column: token.column\n });\n return null;\n }\n if (check(state, \"rparen\")) {\n advance2(state);\n } else {\n state.errors.push({\n message: \"Missing closing )\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"group\",\n expression: expr,\n line: token.line,\n column: token.column\n };\n }\n if (check(state, \"string\")) {\n const strToken = advance2(state);\n return {\n type: \"literal\",\n value: strToken.value,\n raw: strToken.value,\n line: strToken.line,\n column: strToken.column\n };\n }\n if (check(state, \"number\")) {\n const numToken = advance2(state);\n return {\n type: \"literal\",\n value: parseFloat(numToken.value),\n raw: numToken.value,\n line: numToken.line,\n column: numToken.column\n };\n }\n if (check(state, \"boolean\")) {\n const boolToken = advance2(state);\n return {\n type: \"literal\",\n value: boolToken.value.toLowerCase() === \"true\",\n raw: boolToken.value,\n line: boolToken.line,\n column: boolToken.column\n };\n }\n if (check(state, \"null\")) {\n const nullToken = advance2(state);\n return {\n type: \"literal\",\n value: null,\n raw: \"null\",\n line: nullToken.line,\n column: nullToken.column\n };\n }\n if (check(state, \"identifier\")) {\n const idToken = advance2(state);\n let name = idToken.value;\n if (check(state, \"colon\")) {\n const colonToken = peek(state);\n advance2(state);\n let rest = \"\";\n while (check(state, \"identifier\") || check(state, \"dot\") || check(state, \"colon\") || check(state, \"lbracket\") || check(state, \"rbracket\") || check(state, \"number\") || check(state, \"string\") || check(state, \"star\")) {\n rest += advance2(state).value;\n }\n name = name + \":\" + rest;\n }\n return {\n type: \"identifier\",\n name,\n ...name.includes(\".\") ? { path: name.split(\".\") } : {},\n line: idToken.line,\n column: idToken.column\n };\n }\n return null;\n}\nfunction peek(state) {\n return state.tokens[state.pos] || { type: \"eof\", value: \"\", line: 0, column: 0 };\n}\nfunction advance2(state) {\n const token = peek(state);\n if (!isAtEnd(state)) {\n state.pos++;\n }\n return token;\n}\nfunction check(state, type) {\n return peek(state).type === type;\n}\nfunction isAtEnd(state) {\n return peek(state).type === \"eof\";\n}\nfunction checkTagKeyword(state, ...keywords) {\n if (!check(state, \"tag_start\")) return false;\n const nextPos = state.pos + 1;\n if (nextPos >= state.tokens.length) return false;\n const nextToken = state.tokens[nextPos];\n return keywords.includes(nextToken.type);\n}\nfunction consumeTagStart(state) {\n if (check(state, \"tag_start\")) {\n return advance2(state);\n }\n return null;\n}\nfunction consumeTagEnd(state) {\n if (check(state, \"tag_end\")) {\n return advance2(state);\n }\n state.errors.push({\n message: \"Missing closing %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n return null;\n}\nfunction skipToEndOfTag(state) {\n while (!isAtEnd(state) && !check(state, \"tag_end\")) {\n advance2(state);\n }\n if (check(state, \"tag_end\")) {\n advance2(state);\n }\n}\nfunction skipToEndOfVariable(state) {\n while (!isAtEnd(state) && !check(state, \"variable_end\")) {\n advance2(state);\n }\n if (check(state, \"variable_end\")) {\n advance2(state);\n }\n}\nvar PRESET_VARIABLES = /* @__PURE__ */ new Set([\n \"author\",\n \"content\",\n \"contentHtml\",\n \"date\",\n \"description\",\n \"domain\",\n \"favicon\",\n \"fullHtml\",\n \"highlights\",\n \"image\",\n \"language\",\n \"model\",\n \"modelId\",\n \"modelProvider\",\n \"published\",\n \"transcript\",\n \"selection\",\n \"selectionHtml\",\n \"site\",\n \"title\",\n \"time\",\n \"url\",\n \"words\"\n]);\nvar SPECIAL_PREFIXES = [\n \"schema:\",\n \"selector:\",\n \"selectorHtml:\",\n \"meta:\"\n];\nfunction levenshteinDistance(a, b) {\n const matrix = [];\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n for (let j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1,\n matrix[i][j - 1] + 1,\n matrix[i - 1][j] + 1\n );\n }\n }\n }\n return matrix[b.length][a.length];\n}\nfunction findSimilarVariable(name) {\n let bestMatch = null;\n let bestDistance = Infinity;\n for (const preset of PRESET_VARIABLES) {\n const distance = levenshteinDistance(name.toLowerCase(), preset.toLowerCase());\n if (distance < Math.max(name.length, preset.length) / 2 && distance < bestDistance) {\n bestDistance = distance;\n bestMatch = preset;\n }\n }\n return bestMatch;\n}\nfunction isValidVariable(name, definedVariables) {\n if (name.startsWith('\"')) {\n return true;\n }\n for (const prefix of SPECIAL_PREFIXES) {\n if (name.startsWith(prefix)) {\n return true;\n }\n }\n if (PRESET_VARIABLES.has(name)) {\n return true;\n }\n if (definedVariables.has(name)) {\n return true;\n }\n const baseName = name.split(\".\")[0].split(\"[\")[0];\n if (PRESET_VARIABLES.has(baseName) || definedVariables.has(baseName) || baseName === \"loop\") {\n return true;\n }\n return false;\n}\nfunction getVariableNameFromExpression(expr) {\n switch (expr.type) {\n case \"identifier\":\n return { name: expr.name, line: expr.line, column: expr.column };\n case \"filter\":\n return getVariableNameFromExpression(expr.value);\n case \"member\":\n return getVariableNameFromExpression(expr.object);\n case \"binary\":\n if (expr.operator === \"??\") {\n return getVariableNameFromExpression(expr.left);\n }\n return null;\n default:\n return null;\n }\n}\nfunction collectVariables(nodes, definedVariables, references) {\n for (const node of nodes) {\n switch (node.type) {\n case \"variable\": {\n const varInfo = getVariableNameFromExpression(node.expression);\n if (varInfo) {\n references.push({ ...varInfo, scope: new Set(definedVariables) });\n }\n break;\n }\n case \"set\":\n definedVariables.add(node.variable);\n collectExpression(node.value, definedVariables, references);\n break;\n case \"if\":\n collectExpression(node.condition, definedVariables, references);\n collectVariables(node.consequent, definedVariables, references);\n for (const elseif of node.elseifs) {\n collectExpression(elseif.condition, definedVariables, references);\n collectVariables(elseif.body, definedVariables, references);\n }\n if (node.alternate) {\n collectVariables(node.alternate, definedVariables, references);\n }\n break;\n case \"for\":\n const loopVariables = new Set(definedVariables);\n loopVariables.add(node.iterator);\n loopVariables.add(`${node.iterator}_index`);\n collectExpression(node.iterable, definedVariables, references);\n collectVariables(node.body, loopVariables, references);\n break;\n }\n }\n}\nfunction collectExpression(expr, definedVariables, references) {\n switch (expr.type) {\n case \"identifier\": {\n references.push({ name: expr.name, line: expr.line, column: expr.column, scope: new Set(definedVariables) });\n break;\n }\n case \"filter\":\n collectExpression(expr.value, definedVariables, references);\n for (const arg of expr.args) {\n collectExpression(arg, definedVariables, references);\n }\n break;\n case \"binary\":\n collectExpression(expr.left, definedVariables, references);\n collectExpression(expr.right, definedVariables, references);\n break;\n case \"unary\":\n collectExpression(expr.argument, definedVariables, references);\n break;\n case \"member\":\n collectExpression(expr.object, definedVariables, references);\n collectExpression(expr.property, definedVariables, references);\n break;\n case \"group\":\n collectExpression(expr.expression, definedVariables, references);\n break;\n }\n}\nfunction validateVariables(ast) {\n const warnings = [];\n const definedVariables = /* @__PURE__ */ new Set();\n const references = [];\n collectVariables(ast, definedVariables, references);\n for (const ref of references) {\n if (!isValidVariable(ref.name, ref.scope)) {\n const similar = findSimilarVariable(ref.name);\n let message = `Unknown variable \"${ref.name}\"`;\n if (similar) {\n message += `. Did you mean \"${similar}\"?`;\n }\n warnings.push({\n message,\n line: ref.line,\n column: ref.column\n });\n }\n }\n return warnings;\n}\nfunction expressionToString(expr) {\n switch (expr.type) {\n case \"literal\":\n if (typeof expr.value === \"string\") {\n if (/^[\"'].*[\"']$/.test(expr.value) || expr.value.includes('\":\"') || expr.value.includes(\"':'\")) {\n return expr.value;\n }\n if (/\\s*\\w+\\s*=>/.test(expr.value)) {\n return expr.value;\n }\n if (/^[\\w.:+\\-*/]+$/.test(expr.value)) {\n return expr.value;\n }\n return `\"${expr.value}\"`;\n }\n return String(expr.value);\n case \"identifier\":\n return expr.name;\n case \"filter\":\n const base = expressionToString(expr.value);\n const filterArgs = expr.args.map(expressionToString).join(\":\");\n return filterArgs ? `${base}|${expr.name}:${filterArgs}` : `${base}|${expr.name}`;\n case \"binary\":\n return `${expressionToString(expr.left)} ${expr.operator} ${expressionToString(expr.right)}`;\n case \"unary\":\n return `${expr.operator} ${expressionToString(expr.argument)}`;\n case \"group\":\n return `(${expressionToString(expr.expression)})`;\n case \"member\":\n return `${expressionToString(expr.object)}.${expressionToString(expr.property)}`;\n default:\n return \"\";\n }\n}\nfunction argsToParamString(args) {\n if (args.length === 0) return void 0;\n return args.map(expressionToString).join(\",\");\n}\nfunction isLiteralFilterArgument(expression) {\n if (expression.type === \"literal\") return true;\n if (expression.type === \"group\") return isLiteralFilterArgument(expression.expression);\n return false;\n}\nfunction findSimilarFilter(name, filterNames) {\n let bestMatch = null;\n let bestDistance = Infinity;\n for (const filterName of filterNames) {\n const distance = levenshteinDistance(name.toLowerCase(), filterName.toLowerCase());\n if (distance < Math.max(name.length, filterName.length) / 2 && distance < bestDistance) {\n bestDistance = distance;\n bestMatch = filterName;\n }\n }\n return bestMatch;\n}\nfunction collectFiltersFromExpression(expr, usages) {\n switch (expr.type) {\n case \"filter\":\n usages.push({\n name: expr.name,\n hasArgs: expr.args.length > 0,\n args: expr.args,\n line: expr.line,\n column: expr.column\n });\n collectFiltersFromExpression(expr.value, usages);\n for (const arg of expr.args) {\n collectFiltersFromExpression(arg, usages);\n }\n break;\n case \"binary\":\n collectFiltersFromExpression(expr.left, usages);\n collectFiltersFromExpression(expr.right, usages);\n break;\n case \"unary\":\n collectFiltersFromExpression(expr.argument, usages);\n break;\n case \"member\":\n collectFiltersFromExpression(expr.object, usages);\n collectFiltersFromExpression(expr.property, usages);\n break;\n case \"group\":\n collectFiltersFromExpression(expr.expression, usages);\n break;\n }\n}\nfunction collectFilters(nodes) {\n const usages = [];\n function processNode(node) {\n switch (node.type) {\n case \"variable\":\n collectFiltersFromExpression(node.expression, usages);\n break;\n case \"set\":\n collectFiltersFromExpression(node.value, usages);\n break;\n case \"if\":\n collectFiltersFromExpression(node.condition, usages);\n node.consequent.forEach(processNode);\n node.elseifs.forEach((elseif) => {\n collectFiltersFromExpression(elseif.condition, usages);\n elseif.body.forEach(processNode);\n });\n node.alternate?.forEach(processNode);\n break;\n case \"for\":\n collectFiltersFromExpression(node.iterable, usages);\n node.body.forEach(processNode);\n break;\n }\n }\n nodes.forEach(processNode);\n return usages;\n}\nfunction validateFilters(ast, registryMetadata) {\n const errors = [];\n const usages = collectFilters(ast);\n const knownFilterNames = new Set(Object.keys(registryMetadata));\n for (const usage of usages) {\n if (!knownFilterNames.has(usage.name)) {\n const similar = findSimilarFilter(usage.name, knownFilterNames);\n let message = `Unknown filter \"${usage.name}\"`;\n if (similar) {\n message += `. Did you mean \"${similar}\"?`;\n }\n errors.push({\n message,\n line: usage.line,\n column: usage.column,\n code: \"UNKNOWN_FILTER\"\n });\n continue;\n }\n const meta = registryMetadata[usage.name];\n if (meta?.validateParams && usage.args.every(isLiteralFilterArgument)) {\n const paramString = usage.hasArgs ? argsToParamString(usage.args) : void 0;\n const result = meta.validateParams(paramString);\n if (!result.valid && result.error) {\n errors.push({\n message: `Filter \"${usage.name}\" ${result.error}`,\n line: usage.line,\n column: usage.column,\n code: \"INVALID_FILTER_ARGUMENTS\"\n });\n }\n }\n }\n return errors;\n}\n\n// src/filters/property_utils.ts\nfunction ownProperty(value, key) {\n if (value === null || value === void 0 || typeof value === \"function\" || typeof key !== \"string\" && typeof key !== \"number\") {\n return { exists: false, value: void 0 };\n }\n const descriptor = Object.getOwnPropertyDescriptor(Object(value), key);\n return descriptor && \"value\" in descriptor ? { exists: true, value: descriptor.value } : { exists: false, value: void 0 };\n}\nfunction ownPropertyAtPath(value, path) {\n if (!path || path.split(\".\").some((segment) => segment === \"\")) {\n return { exists: false, value: void 0 };\n }\n let current = value;\n for (const segment of path.split(\".\")) {\n const property = ownProperty(current, segment);\n if (!property.exists) return property;\n current = property.value;\n }\n return { exists: true, value: current };\n}\n\n// src/renderer.ts\nasync function renderAST(ast, context, options = {}, budget = new RenderBudget(options.limits)) {\n const errors = [];\n const state = {\n context,\n errors,\n pendingTrimRight: false,\n budget\n };\n let output = \"\";\n try {\n budget.value(context.variables);\n for (let i = 0; i < ast.length; i++) {\n const node = ast[i];\n const nodeOutput = await renderNode(node, state);\n output = appendNodeOutput(output, nodeOutput, node, state);\n }\n } catch (error) {\n if (!(error instanceof TemplateRuntimeError) || error.code !== \"LIMIT_EXCEEDED\") throw error;\n return { output: \"\", errors: [...errors, { message: error.message, code: error.code, line: error.line ?? 1, column: error.column ?? 1 }] };\n }\n if (options.trimOutput) {\n output = output.trim();\n }\n return { output, errors };\n}\nasync function renderNode(node, state) {\n state.budget.step();\n switch (node.type) {\n case \"text\":\n return renderText(node, state);\n case \"variable\":\n return renderVariable(node, state);\n case \"if\":\n return renderIf(node, state);\n case \"for\":\n return renderFor(node, state);\n case \"set\":\n return renderSet(node, state);\n default:\n state.errors.push({\n message: `Unknown node type: ${node.type}`,\n line: node.line ?? 0,\n column: node.column ?? 0,\n code: \"RENDER_ERROR\"\n });\n return \"\";\n }\n}\nfunction renderText(node, state) {\n let text = node.value;\n if (state.pendingTrimRight) {\n text = trimLeadingWhitespace(text);\n state.pendingTrimRight = false;\n }\n return text;\n}\nasync function renderVariable(node, state) {\n try {\n const value = await evaluateExpression(node.expression, state);\n const result = valueToString(value, state);\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return result;\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error evaluating variable\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderIf(node, state) {\n try {\n const conditionValue = await evaluateExpression(node.condition, state);\n if (isTruthy(conditionValue)) {\n const result = await renderNodes(node.consequent, state);\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return result;\n }\n for (const elseif of node.elseifs) {\n const elseifValue = await evaluateExpression(elseif.condition, state);\n if (isTruthy(elseifValue)) {\n const result = await renderNodes(elseif.body, state);\n if (node.trimRight) state.pendingTrimRight = true;\n return result;\n }\n }\n if (node.alternate) {\n const result = await renderNodes(node.alternate, state);\n if (node.trimRight) state.pendingTrimRight = true;\n return result;\n }\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error evaluating if condition\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderFor(node, state) {\n try {\n const iterableValue = await evaluateExpression(node.iterable, state);\n if (iterableValue === void 0 || iterableValue === null) {\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n }\n let iterableArray = iterableValue;\n if (!Array.isArray(iterableArray) && typeof iterableArray === \"string\") {\n try {\n const parsed = JSON.parse(iterableArray);\n if (Array.isArray(parsed)) {\n iterableArray = parsed;\n }\n } catch {\n }\n }\n if (!Array.isArray(iterableArray)) {\n state.errors.push({\n message: `For loop iterable is not an array: ${typeof iterableArray}`,\n line: node.line,\n column: node.column,\n code: \"RENDER_ERROR\"\n });\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n }\n const results = [];\n const length2 = iterableArray.length;\n let outputLength = 0;\n for (let i = 0; i < length2; i++) {\n state.budget.step();\n const item = iterableArray[i];\n const loop = {\n index: i + 1,\n // 1-indexed\n index0: i,\n // 0-indexed\n first: i === 0,\n last: i === length2 - 1,\n length: length2\n };\n const loopContext = {\n ...state.context,\n variables: {\n ...state.context.variables,\n [node.iterator]: item,\n [`${node.iterator}_index`]: i,\n // Keep for backwards compatibility\n loop\n }\n };\n const loopState = {\n ...state,\n context: loopContext\n };\n const itemResult = await renderNodes(node.body, loopState);\n const result = trimLeadingWhitespace(itemResult);\n if (result !== \"\") {\n outputLength += result.length + (results.length && !results.at(-1).endsWith(\"\\n\") ? 1 : 0);\n state.budget.output(outputLength);\n results.push(result);\n }\n }\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return results.map((result, index) => {\n if (index === results.length - 1) return trimTrailingWhitespace(result);\n return result.endsWith(\"\\n\") ? result : result + \"\\n\";\n }).join(\"\");\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error in for loop\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderSet(node, state) {\n try {\n const value = await evaluateExpression(node.value, state);\n state.budget.value(value);\n Object.defineProperty(state.context.variables, node.variable, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error in set\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderNodes(nodes, state) {\n let output = \"\";\n for (const node of nodes) {\n const nodeOutput = await renderNode(node, state);\n output = appendNodeOutput(output, nodeOutput, node, state);\n }\n return output;\n}\nfunction appendNodeOutput(output, nodeOutput, node, state) {\n state.budget.output(output.length + nodeOutput.length);\n if (\"trimLeft\" in node && node.trimLeft && output.length > 0) {\n output = trimTrailingWhitespace(output);\n }\n if (state.pendingTrimRight && nodeOutput.length > 0) {\n output += trimLeadingWhitespace(nodeOutput);\n state.pendingTrimRight = false;\n } else {\n output += nodeOutput;\n }\n return output;\n}\nasync function evaluateExpression(expr, state) {\n state.budget.step();\n switch (expr.type) {\n case \"literal\":\n return evaluateLiteral(expr);\n case \"identifier\":\n return evaluateIdentifier(expr, state);\n case \"binary\":\n return evaluateBinary(expr, state);\n case \"unary\":\n return evaluateUnary(expr, state);\n case \"filter\":\n return evaluateFilter(expr, state);\n case \"group\":\n return evaluateExpression(expr.expression, state);\n case \"member\":\n return evaluateMember(expr, state);\n default:\n throw new Error(`Unknown expression type: ${expr.type}`);\n }\n}\nfunction evaluateLiteral(expr) {\n return expr.value;\n}\nasync function evaluateIdentifier(expr, state) {\n const name = expr.name;\n const value = resolveVariable(name, state.context.variables, expr.path);\n if (value !== void 0) {\n return value;\n }\n if (state.context.asyncResolver) {\n return state.context.asyncResolver(name, state.context);\n }\n return void 0;\n}\nasync function evaluateMember(expr, state) {\n const object2 = await evaluateExpression(expr.object, state);\n const property = await evaluateExpression(expr.property, state);\n if (object2 === void 0 || object2 === null) {\n return void 0;\n }\n return ownProperty(object2, property).value;\n}\nasync function evaluateBinary(expr, state) {\n if (expr.operator === \"??\") {\n const left2 = await evaluateExpression(expr.left, state);\n if (isTruthy(left2)) {\n return left2;\n }\n return evaluateExpression(expr.right, state);\n }\n const left = await evaluateExpression(expr.left, state);\n const right = await evaluateExpression(expr.right, state);\n switch (expr.operator) {\n case \"==\":\n return left == right;\n case \"!=\":\n return left != right;\n case \">\":\n return left > right;\n case \"<\":\n return left < right;\n case \">=\":\n return left >= right;\n case \"<=\":\n return left <= right;\n case \"contains\":\n return evaluateContains(left, right);\n case \"and\":\n return isTruthy(left) && isTruthy(right);\n case \"or\":\n return isTruthy(left) || isTruthy(right);\n default:\n throw new Error(`Unknown binary operator: ${expr.operator}`);\n }\n}\nasync function evaluateUnary(expr, state) {\n const argument = await evaluateExpression(expr.argument, state);\n switch (expr.operator) {\n case \"not\":\n return !isTruthy(argument);\n default:\n throw new Error(`Unknown unary operator: ${expr.operator}`);\n }\n}\nasync function evaluateFilter(expr, state) {\n const value = await evaluateExpression(expr.value, state);\n const args = [];\n for (const arg of expr.args) {\n let argValue = await evaluateExpression(arg, state);\n if (argValue === void 0 && arg.type === \"identifier\") {\n argValue = arg.name;\n }\n state.budget.value(argValue);\n args.push(argValue);\n }\n const rawArguments = args.map((argument, index) => {\n let expression = expr.args[index];\n while (expression.type === \"group\") expression = expression.expression;\n return expression.type === \"literal\" ? expression.unquotedValue ?? argument : argument;\n });\n const stringValue = valueToString(value, state);\n let paramString;\n if (args.length > 0) {\n const formattedArgs = args.map((a) => {\n if (typeof a === \"string\") {\n if (isQuotedString(a)) {\n return a;\n }\n if (/\\s*\\w+\\s*=>/.test(a)) {\n return a;\n }\n if (/^[\\w.:+\\-*/]+$/.test(a)) {\n return a;\n }\n return `\"${a}\"`;\n }\n return String(a);\n });\n paramString = formattedArgs.join(\",\");\n }\n state.budget.value(paramString);\n const result = await state.context.applyFilter(\n stringValue,\n expr.name,\n paramString,\n expr.line,\n expr.column,\n value,\n rawArguments,\n expr.args.some((argument) => !isLiteralFilterArgument(argument))\n );\n state.budget.value(result);\n return result;\n}\nfunction evaluateContains(left, right) {\n if (left === void 0 || left === null) return false;\n if (right === void 0 || right === null) return false;\n if (Array.isArray(left)) {\n return left.some((item) => {\n if (typeof item === \"string\" && typeof right === \"string\") {\n return item.toLowerCase() === right.toLowerCase();\n }\n return item == right;\n });\n }\n if (typeof left === \"string\") {\n const searchValue = typeof right === \"string\" ? right : String(right);\n return left.toLowerCase().includes(searchValue.toLowerCase());\n }\n return false;\n}\nfunction resolveVariable(name, variables, path) {\n const trimmed = name.trim();\n const wrappedValue = ownProperty(variables, `{{${trimmed}}}`).value;\n if (wrappedValue !== void 0) {\n return wrappedValue;\n }\n if (ownProperty(variables, trimmed).value !== void 0) {\n return ownProperty(variables, trimmed).value;\n }\n if (trimmed.includes(\".\")) {\n return getNestedValue(variables, path ?? trimmed.split(\".\"));\n }\n return void 0;\n}\nfunction getNestedValue(obj, keys) {\n if (keys.length === 0 || !obj) return void 0;\n let value = obj;\n for (const key of keys) {\n if (value === void 0 || value === null) return void 0;\n if (key.includes(\"[\") && key.includes(\"]\")) {\n const match = key.match(/^([^\\[]*)\\[([^\\]]+)\\]/);\n if (match) {\n const [, arrayKey, indexStr] = match;\n const baseValue = arrayKey ? ownProperty(value, arrayKey).value : value;\n if (Array.isArray(baseValue)) {\n const index = parseInt(indexStr, 10);\n value = ownProperty(baseValue, index).value;\n } else if (baseValue && typeof baseValue === \"object\") {\n value = ownProperty(baseValue, indexStr.replace(/^[\"']|[\"']$/g, \"\")).value;\n } else {\n return void 0;\n }\n continue;\n }\n }\n if (ownProperty(value, `{{${key}}}`).value !== void 0) {\n value = ownProperty(value, `{{${key}}}`).value;\n } else {\n value = ownProperty(value, key).value;\n }\n }\n return value;\n}\nfunction trimTrailingWhitespace(str) {\n return str.replace(/[\\t ]*\\r?\\n?$/, \"\");\n}\nfunction trimLeadingWhitespace(str) {\n return str.replace(/^[\\t ]*\\r?\\n?/, \"\");\n}\nfunction isQuotedString(str) {\n return /^[\"'][\\s\\S]*[\"']$/.test(str) || str.includes('\":\"') || str.includes(\"':'\");\n}\nfunction isTruthy(value) {\n if (value === void 0 || value === null) return false;\n if (value === \"\") return false;\n if (value === 0) return false;\n if (value === false) return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n}\nfunction valueToString(value, state) {\n state.budget.value(value);\n if (value === void 0 || value === null) {\n return \"\";\n }\n if (Array.isArray(value) && value.length === 1 && typeof value[0] !== \"object\") {\n return String(value[0]);\n }\n if (typeof value === \"object\") {\n const result = JSON.stringify(value);\n state.budget.value(result);\n return result;\n }\n return String(value);\n}\nfunction toRenderError(error, prefix, line, column) {\n if (error instanceof TemplateRuntimeError) {\n if (error.code === \"LIMIT_EXCEEDED\") throw error;\n return {\n message: error.message,\n line: error.line ?? line,\n column: error.column ?? column,\n code: error.code\n };\n }\n return {\n message: `${prefix}: ${error instanceof Error ? error.message : String(error)}`,\n line,\n column,\n code: \"RENDER_ERROR\"\n };\n}\n\n// src/engine.ts\nfunction normalizeParserError(error) {\n return {\n message: error.message,\n line: error.line,\n column: error.column,\n code: error.code ?? \"PARSE_ERROR\"\n };\n}\nfunction metadataForRegistry(filters2) {\n return Object.fromEntries(Object.entries(filters2).map(([name, filter]) => [name, filter.metadata ?? {}]));\n}\nfunction createEngine(options = {}) {\n const filters2 = Object.freeze({ ...options.filters ?? {} });\n const filterMetadata2 = metadataForRegistry(filters2);\n const parseTemplate2 = (template2) => parse(template2, options.limits);\n function validate(templateOrAst) {\n let ast;\n const errors = [];\n if (typeof templateOrAst === \"string\") {\n const parsed = parseTemplate2(templateOrAst);\n ast = parsed.ast;\n errors.push(...parsed.errors.map(normalizeParserError));\n } else {\n ast = templateOrAst;\n try {\n new RenderBudget(options.limits).value(ast);\n } catch (error) {\n if (!(error instanceof TemplateRuntimeError)) throw error;\n return [{ message: error.message, code: error.code, line: 1, column: 1 }];\n }\n }\n if (errors.length === 0) {\n errors.push(...validateFilters(ast, filterMetadata2).map(normalizeParserError));\n }\n return errors;\n }\n async function render(template2, input, renderOptions = {}) {\n const limits = { ...options.limits, ...renderOptions.limits };\n const parsed = parse(template2, limits);\n const errors = parsed.errors.map(normalizeParserError);\n if (errors.length > 0) return { output: \"\", errors, warnings: [] };\n const budget = new RenderBudget(limits);\n const validationErrors = validateFilters(parsed.ast, filterMetadata2).map(normalizeParserError);\n const warnings = [];\n const warningKeys = /* @__PURE__ */ new Set();\n const resolverContext = {\n variables: input.variables,\n context: input.context\n };\n const rendered = await renderAST(parsed.ast, {\n variables: input.variables,\n asyncResolver: input.resolveVariable ? async (name) => {\n try {\n return await input.resolveVariable(name, resolverContext);\n } catch (error) {\n throw new TemplateRuntimeError(\n `Could not resolve variable \"${name}\": ${error instanceof Error ? error.message : String(error)}`,\n \"RESOLVE_ERROR\"\n );\n }\n } : void 0,\n applyFilter: async (value, filterName, param, line, column, rawValue, rawArguments, validateResolvedParams) => {\n const filter = Object.prototype.hasOwnProperty.call(filters2, filterName) ? filters2[filterName] : void 0;\n if (!filter) {\n return value;\n }\n try {\n if (validateResolvedParams) {\n const validation = filterMetadata2[filterName]?.validateParams?.(param);\n if (validation && !validation.valid) {\n throw new TemplateRuntimeError(\n `Filter \"${filterName}\" ${validation.error ?? \"has invalid arguments\"}`,\n \"INVALID_FILTER_ARGUMENTS\"\n );\n }\n }\n const result = await filter(value, param, {\n allowRegex: options.allowRegex ?? true,\n checkValue: (value2) => budget.value(value2),\n checkLength: (length2) => budget.length(length2),\n ...resolverContext,\n rawValue,\n rawArguments,\n reportWarning: (warning) => {\n const templateWarning = {\n message: warning.message,\n line,\n column,\n code: warning.code ?? \"FILTER_WARNING\",\n filter: filterName\n };\n const warningKey = JSON.stringify([\n templateWarning.code,\n templateWarning.filter,\n templateWarning.line,\n templateWarning.column,\n templateWarning.message\n ]);\n if (!warningKeys.has(warningKey)) {\n warningKeys.add(warningKey);\n warnings.push(templateWarning);\n }\n }\n });\n budget.value(result);\n return result;\n } catch (error) {\n if (error instanceof TemplateRuntimeError) {\n throw new TemplateRuntimeError(\n error.message,\n error.code,\n error.line ?? line,\n error.column ?? column\n );\n }\n throw new TemplateRuntimeError(\n `Filter \"${filterName}\" failed: ${error instanceof Error ? error.message : String(error)}`,\n \"FILTER_ERROR\",\n line,\n column\n );\n }\n }\n }, { ...renderOptions, limits }, budget);\n return {\n output: rendered.output,\n errors: [...validationErrors, ...rendered.errors],\n warnings\n };\n }\n return {\n filters: filters2,\n parse: parseTemplate2,\n validate,\n render,\n async renderOrThrow(template2, input, renderOptions) {\n const result = await render(template2, input, renderOptions);\n if (result.errors.length > 0) throw new TemplateRenderError(result.errors);\n return result.output;\n }\n };\n}\n\n// src/filters/blockquote.ts\nvar blockquote = (input) => {\n const processBlockquote = (str, depth = 1) => {\n const prefix = \"> \".repeat(depth);\n return str.split(\"\\n\").map((line) => `${prefix}${line}`).join(\"\\n\");\n };\n const processArray = (arr, depth = 1) => {\n return arr.map((item) => {\n if (Array.isArray(item)) {\n return processArray(item, depth + 1);\n }\n return processBlockquote(String(item), depth);\n }).join(\"\\n\");\n };\n try {\n const parsedInput = JSON.parse(input);\n if (Array.isArray(parsedInput)) {\n return processArray(parsedInput);\n }\n if (typeof parsedInput === \"object\" && parsedInput !== null) {\n return processBlockquote(JSON.stringify(parsedInput, null, 2));\n }\n return processBlockquote(String(parsedInput));\n } catch (error) {\n if (Array.isArray(input)) {\n return processArray(input);\n }\n return processBlockquote(input);\n }\n};\n\n// src/filters/value_utils.ts\nfunction finiteNumber(value) {\n if (typeof value === \"number\") return Number.isFinite(value) ? value : void 0;\n if (typeof value !== \"string\" || value.trim() === \"\") return void 0;\n const number = Number(value.trim());\n return Number.isFinite(number) ? number : void 0;\n}\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\nfunction inputValue(value, context, allowLeadingWhitespace = false) {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\")) {\n if (Array.isArray(context.rawValue) || isPlainObject(context.rawValue)) {\n return context.rawValue;\n }\n }\n const collectionText = allowLeadingWhitespace ? value.trimStart() : value;\n if (collectionText.startsWith(\"[\") || collectionText.startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed) || isPlainObject(parsed)) return parsed;\n } catch {\n }\n }\n return value;\n}\nfunction collectionInputValue(value, context, allowLeadingWhitespace = false) {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\")) {\n const rawValue = context.rawValue;\n if (Array.isArray(rawValue) || isPlainObject(rawValue)) return rawValue;\n if (typeof rawValue !== \"string\") return rawValue;\n }\n const collectionText = allowLeadingWhitespace ? value.trimStart() : value;\n if (collectionText.startsWith(\"[\") || collectionText.startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed) || isPlainObject(parsed)) return parsed;\n } catch {\n }\n }\n return value;\n}\nfunction arrayInputValue(value, context) {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\")) {\n const rawValue = context.rawValue;\n if (Array.isArray(rawValue)) return rawValue;\n if (typeof rawValue !== \"string\") return rawValue;\n }\n if (value.trimStart().startsWith(\"[\")) {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) return parsed;\n } catch {\n }\n }\n return value;\n}\nfunction mapStringValues(value, formatter) {\n if (typeof value === \"string\") return formatter(value);\n if (Array.isArray(value)) return value.map((item) => mapStringValues(item, formatter));\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([key, item]) => [key, mapStringValues(item, formatter)])\n );\n }\n return value;\n}\n\n// src/filters/markdown.ts\nfunction markdownFilter(formatter) {\n return (value, _param, context) => mapStringValues(inputValue(value, context), formatter);\n}\nfunction wrapInline(value, open, close = open) {\n if (!value.trim()) return value;\n const content = value.trim();\n const start = value.indexOf(content);\n return `${value.slice(0, start)}${open}${content}${close}${value.slice(start + content.length)}`;\n}\nfunction splitBlankLinePadding(value) {\n const leading = value.match(/^(?:[\\t ]*\\r?\\n)+/)?.[0] ?? \"\";\n const withoutLeading = value.slice(leading.length);\n const trailing = withoutLeading.match(/(?:\\r?\\n[\\t ]*)+$/)?.[0] ?? \"\";\n return {\n leading,\n content: withoutLeading.slice(0, withoutLeading.length - trailing.length),\n trailing\n };\n}\nfunction isMultiline(value) {\n return /[\\r\\n]/.test(value);\n}\nfunction formatHeading(level, value) {\n if (value === \"\") return value;\n const prefix = `${\"#\".repeat(level)} `;\n return value.split(/(\\r?\\n)/).map(\n (part) => /^(?:\\r?\\n)$/.test(part) || !part.trim() ? part : `${prefix}${part}`\n ).join(\"\");\n}\nvar h1 = markdownFilter((value) => formatHeading(1, value));\nvar h2 = markdownFilter((value) => formatHeading(2, value));\nvar h3 = markdownFilter((value) => formatHeading(3, value));\nvar h4 = markdownFilter((value) => formatHeading(4, value));\nvar h5 = markdownFilter((value) => formatHeading(5, value));\nvar h6 = markdownFilter((value) => formatHeading(6, value));\nvar markdownPunctuation = /[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]/g;\nvar escape_md = markdownFilter((value) => value.replace(markdownPunctuation, \"\\\\$&\"));\nvar hard_break = markdownFilter((value) => value.replace(\n /^([^\\r\\n]*\\S)[\\t ]*(\\r?\\n)(?=[^\\r\\n]*\\S)/gm,\n \"$1 $2\"\n));\nfunction validateMarkerParam(param, markers) {\n const marker = cleanScalarParam(param);\n if (marker === void 0 || markers.includes(marker)) return { valid: true };\n return {\n valid: false,\n error: `invalid marker \"${marker}\". Use ${markers.map((value) => `\"${value}\"`).join(\" or \")}`\n };\n}\nvar validateBoldParams = (param) => validateMarkerParam(param, [\"*\", \"_\"]);\nvar validateItalicParams = (param) => validateMarkerParam(param, [\"*\", \"_\"]);\nvar bold = (value, param, context) => {\n const marker = cleanScalarParam(param) ?? \"*\";\n return mapStringValues(inputValue(value, context), (item) => wrapInline(item, marker.repeat(2)));\n};\nvar italic = (value, param, context) => {\n const marker = cleanScalarParam(param) ?? \"*\";\n return mapStringValues(inputValue(value, context), (item) => wrapInline(item, marker));\n};\nvar strike = markdownFilter((value) => wrapInline(value, \"~~\"));\nvar highlightColorMarkers = {\n red: \"\\u{1F534}\",\n orange: \"\\u{1F7E0}\",\n yellow: \"\\u{1F7E1}\",\n green: \"\\u{1F7E2}\",\n blue: \"\\u{1F535}\",\n purple: \"\\u{1F7E3}\"\n};\nfunction resolveHighlightMarker(param) {\n const color = cleanScalarParam(param);\n if (color === void 0) return \"\";\n if (Object.prototype.hasOwnProperty.call(highlightColorMarkers, color)) {\n return highlightColorMarkers[color];\n }\n return void 0;\n}\nvar validateHighlightParams = (param) => {\n const color = cleanScalarParam(param);\n if (resolveHighlightMarker(param) !== void 0) {\n return { valid: true };\n }\n return {\n valid: false,\n error: `invalid color \"${color}\". Use red, orange, yellow, green, blue, or purple`\n };\n};\nvar highlight = (value, param, context) => {\n const marker = resolveHighlightMarker(param) ?? \"\";\n return mapStringValues(inputValue(value, context), (item) => wrapInline(item, `==${marker}`, \"==\"));\n};\nfunction appendBlock(value, block2) {\n if (value === \"\") return block2;\n if (/(?:\\r?\\n[\\t ]*){2,}$/.test(value)) return `${value}${block2}`;\n if (/\\r?\\n[\\t ]*$/.test(value)) return `${value}\n${block2}`;\n return `${value}\n\n${block2}`;\n}\nfunction prependBlock(value, block2) {\n if (value === \"\") return block2;\n if (/^(?:[\\t ]*\\r?\\n){2,}/.test(value)) return `${block2}${value}`;\n if (/^[\\t ]*\\r?\\n/.test(value)) return `${block2}\n${value}`;\n return `${block2}\n\n${value}`;\n}\nvar validateHrParams = (param) => {\n const position = cleanScalarParam(param);\n if (position === void 0 || [\"after\", \"before\", \"both\"].includes(position)) {\n return { valid: true };\n }\n return { valid: false, error: `invalid position \"${position}\". Use \"after\", \"before\", or \"both\"` };\n};\nvar hr = (value, param, context) => {\n const position = cleanScalarParam(param) ?? \"after\";\n return mapStringValues(inputValue(value, context), (item) => {\n if (position === \"before\") return prependBlock(item, \"---\");\n if (position === \"both\") return appendBlock(prependBlock(item, \"---\"), \"---\");\n return appendBlock(item, \"---\");\n });\n};\nfunction longestBacktickRun(value) {\n return Math.max(0, ...Array.from(value.matchAll(/`+/g), (match) => match[0].length));\n}\nfunction formatInlineCode(value) {\n if (!value.trim()) return value;\n const content = value.trim();\n const start = value.indexOf(content);\n const delimiter = \"`\".repeat(Math.max(1, longestBacktickRun(content) + 1));\n const padding = content.startsWith(\"`\") || content.endsWith(\"`\") ? \" \" : \"\";\n return `${value.slice(0, start)}${delimiter}${padding}${content}${padding}${delimiter}${value.slice(start + content.length)}`;\n}\nfunction formatCodeBlock(value, language = \"\") {\n if (value === \"\") return value;\n const { leading, content, trailing } = splitBlankLinePadding(value);\n if (content === \"\") return value;\n const fence = \"`\".repeat(Math.max(3, longestBacktickRun(content) + 1));\n return `${leading}${fence}${language}\n${content}\n${fence}${trailing}`;\n}\nvar validateCodeParams = (param) => {\n const language = cleanScalarParam(param);\n if (language === void 0 || !/[\\r\\n`]/.test(language)) return { valid: true };\n return { valid: false, error: \"language cannot contain newlines or backticks\" };\n};\nvar code = (value, param, context) => {\n const language = cleanScalarParam(param);\n return mapStringValues(\n inputValue(value, context),\n (item) => language !== void 0 || isMultiline(item) ? formatCodeBlock(item, language ?? \"\") : formatInlineCode(item)\n );\n};\nvar code_block = (value, param, context) => {\n const language = cleanScalarParam(param) ?? \"\";\n return mapStringValues(inputValue(value, context), (item) => formatCodeBlock(item, language));\n};\nfunction formatMathBlock(value) {\n if (value === \"\") return value;\n const { leading, content, trailing } = splitBlankLinePadding(value);\n if (content === \"\") return value;\n return `${leading}$$\n${content}\n$$${trailing}`;\n}\nvar math = markdownFilter(\n (value) => isMultiline(value) ? formatMathBlock(value) : wrapInline(value, \"$\")\n);\nvar math_block = markdownFilter(formatMathBlock);\nvar comment = markdownFilter((value) => {\n if (value === \"\") return value;\n if (!isMultiline(value)) return wrapInline(value, \"%%\");\n const { leading, content, trailing } = splitBlankLinePadding(value);\n return content ? `${leading}%%\n${content}\n%%${trailing}` : value;\n});\n\n// src/filters/calc.ts\nvar validateCalcParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires an operation (e.g., calc:\"+10\", calc:\"*2\")' };\n }\n const operation = (cleanScalarParam(param) ?? \"\").trim();\n if (!operation) {\n return { valid: false, error: \"operation cannot be empty\" };\n }\n const validOperators = [\"+\", \"-\", \"*\", \"/\", \"^\", \"**\"];\n const operator = operation.slice(0, 2) === \"**\" ? \"**\" : operation.charAt(0);\n if (!validOperators.includes(operator)) {\n return { valid: false, error: `invalid operator \"${operator}\". Use +, -, *, /, ^ or **` };\n }\n const valueStr = operation.slice(operator === \"**\" ? 2 : 1);\n if (!valueStr || isNaN(Number(valueStr))) {\n return { valid: false, error: 'requires a number after the operator (e.g., \"+10\")' };\n }\n return { valid: true };\n};\nvar calc = (str, param, context) => {\n const hasRawValue = Boolean(context && Object.prototype.hasOwnProperty.call(context, \"rawValue\"));\n const originalValue = hasRawValue ? context?.rawValue : str;\n if (!param) {\n return originalValue;\n }\n if (hasRawValue && (originalValue === null || originalValue === void 0)) {\n return originalValue;\n }\n try {\n const num = finiteNumber(str);\n if (num === void 0) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a number`, \"INVALID_FILTER_INPUT\");\n return originalValue;\n }\n const operation = (cleanScalarParam(param) ?? \"\").trim();\n const operator = operation.slice(0, 2) === \"**\" ? \"**\" : operation.charAt(0);\n const value = Number(operation.slice(operator === \"**\" ? 2 : 1));\n if (isNaN(value)) {\n return originalValue;\n }\n let result;\n switch (operator) {\n case \"+\":\n result = num + value;\n break;\n case \"-\":\n result = num - value;\n break;\n case \"*\":\n result = num * value;\n break;\n case \"/\":\n result = num / value;\n break;\n case \"**\":\n case \"^\":\n result = Math.pow(num, value);\n break;\n default:\n return originalValue;\n }\n if (!Number.isFinite(result)) {\n reportFilterWarning(context, `Calculation produced a non-finite result for \"${str}\"`, \"INVALID_FILTER_INPUT\");\n return originalValue;\n }\n return Number(result.toFixed(10));\n } catch (error) {\n reportFilterWarning(context, `Could not calculate value: ${errorMessage(error)}`);\n return originalValue;\n }\n};\n\n// src/filters/callout.ts\nvar callout = (str, param) => {\n let type = \"info\";\n let title2 = \"\";\n let foldState = null;\n if (param) {\n const params = splitParams(unwrapParamList(param)).map(unquoteParamToken);\n if (params.length > 0) type = params[0] || type;\n if (params.length > 1) title2 = params[1] || title2;\n if (params.length > 2) {\n if (params[2].toLowerCase() === \"true\") foldState = \"-\";\n else if (params[2].toLowerCase() === \"false\") foldState = \"+\";\n }\n }\n let calloutHeader = `> [!${type}]`;\n if (foldState) calloutHeader += foldState;\n if (title2) calloutHeader += ` ${title2}`;\n return `${calloutHeader}\n${str.split(\"\\n\").map((line) => `> ${line}`).join(\"\\n\")}`;\n};\n\n// src/filters/camel.ts\nvar camel = (str) => str.replace(\n /(?:^\\w|[A-Z]|\\b\\w)/g,\n (letter, index) => index === 0 ? letter.toLowerCase() : letter.toUpperCase()\n).replace(/[\\s_-]+/g, \"\");\n\n// src/filters/capitalize.ts\nvar capitalize = (input) => {\n const capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n try {\n const parseAndCapitalize = (value) => {\n if (typeof value === \"string\") {\n return capitalizeString(value);\n } else if (Array.isArray(value)) {\n return value.map(parseAndCapitalize);\n } else if (typeof value === \"object\" && value !== null) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[capitalizeString(key)] = parseAndCapitalize(val);\n }\n return result;\n }\n return value;\n };\n const parsed = JSON.parse(input);\n const capitalized = parseAndCapitalize(parsed);\n return JSON.stringify(capitalized);\n } catch (error) {\n return capitalizeString(input);\n }\n};\n\n// src/filters/compact.ts\nfunction isEmpty(value) {\n return value === null || value === void 0 || typeof value === \"string\" && value.trim() === \"\";\n}\nvar compact = (value, _param, context) => {\n const input = inputValue(value, context);\n if (Array.isArray(input)) return input.filter((item) => !isEmpty(item));\n if (isPlainObject(input)) {\n return Object.fromEntries(Object.entries(input).filter(([, item]) => !isEmpty(item)));\n }\n return input;\n};\n\n// src/filters/date.ts\nimport dayjs from \"dayjs\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear.js\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\ndayjs.extend(customParseFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(weekOfYear);\ndayjs.extend(advancedFormat);\nvar date = (str, param, context) => {\n if (str === \"\") {\n return str;\n }\n const inputDate = str === \"now\" ? /* @__PURE__ */ new Date() : str;\n if (!param) {\n return dayjs(inputDate).format(\"YYYY-MM-DD\");\n }\n const params = splitParams(unwrapParamList(param)).map(unquoteParamToken);\n const [outputFormat, inputFormat] = params;\n let date2;\n if (inputFormat) {\n date2 = dayjs(inputDate, inputFormat, true);\n } else {\n date2 = dayjs(inputDate);\n }\n if (!date2.isValid()) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a date`, \"INVALID_FILTER_INPUT\");\n return str;\n }\n return date2.format(outputFormat);\n};\n\n// src/filters/date_modify.ts\nimport dayjs2 from \"dayjs\";\nimport isoWeek2 from \"dayjs/plugin/isoWeek.js\";\nimport weekOfYear2 from \"dayjs/plugin/weekOfYear.js\";\nimport customParseFormat2 from \"dayjs/plugin/customParseFormat.js\";\nimport advancedFormat2 from \"dayjs/plugin/advancedFormat.js\";\ndayjs2.extend(customParseFormat2);\ndayjs2.extend(isoWeek2);\ndayjs2.extend(weekOfYear2);\ndayjs2.extend(advancedFormat2);\nvar validUnits = [\"year\", \"years\", \"month\", \"months\", \"week\", \"weeks\", \"day\", \"days\", \"hour\", \"hours\", \"minute\", \"minutes\", \"second\", \"seconds\"];\nvar validateDateModifyParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a modifier (e.g., date_modify:\"+1 day\", \"-2 weeks\")' };\n }\n const cleanParam = (cleanScalarParam(param) ?? \"\").trim();\n const regex = /^([+-])\\s*(\\d+)\\s*(\\w+)s?$/;\n const match = cleanParam.match(regex);\n if (!match) {\n return { valid: false, error: 'invalid format. Use \"+1 day\", \"-2 weeks\", etc.' };\n }\n const [, , , unit] = match;\n const normalizedUnit = unit.toLowerCase().replace(/s$/, \"\");\n if (!validUnits.some((u) => u.replace(/s$/, \"\") === normalizedUnit)) {\n return { valid: false, error: `invalid unit \"${unit}\". Use year, month, week, day, hour, minute, or second` };\n }\n return { valid: true };\n};\nvar date_modify = (str, param, context) => {\n if (!param) {\n return str;\n }\n if (str === \"\") {\n return str;\n }\n let date2 = dayjs2(str);\n if (!date2.isValid()) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a date`, \"INVALID_FILTER_INPUT\");\n return str;\n }\n param = (cleanScalarParam(param) ?? \"\").trim();\n const regex = /^([+-])\\s*(\\d+)\\s*(\\w+)s?$/;\n const match = param.match(regex);\n if (!match) {\n return str;\n }\n const [, operation, amount, unit] = match;\n const numericAmount = parseInt(amount, 10);\n if (operation === \"+\") {\n date2 = date2.add(numericAmount, unit);\n } else {\n date2 = date2.subtract(numericAmount, unit);\n }\n return date2.format(\"YYYY-MM-DD\");\n};\n\n// src/filters/decode_uri.ts\nfunction decodeValue(value) {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\nvar decode_uri = (value, _param, context) => mapStringValues(inputValue(value, context), decodeValue);\n\n// src/filters/encode_uri.ts\nfunction encodeValue(value) {\n try {\n return encodeURIComponent(value);\n } catch {\n return value;\n }\n}\nvar encode_uri = (value, _param, context) => mapStringValues(inputValue(value, context), encodeValue);\n\n// src/filters/first.ts\nvar first = (str, _param, context) => {\n const value = arrayInputValue(str, context);\n if (!Array.isArray(value)) return value;\n return value.length > 0 ? value[0] : null;\n};\n\n// src/filters/footnote.ts\nvar footnote = (str) => {\n if (str === \"\") {\n return str;\n }\n try {\n const data = JSON.parse(str);\n if (Array.isArray(data)) {\n return data.map((item, index) => `[^${index + 1}]: ${item}`).join(\"\\n\\n\");\n } else if (typeof data === \"object\" && data !== null) {\n return Object.entries(data).map(([key, value]) => {\n const footnoteId = key.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n return `[^${footnoteId}]: ${value}`;\n }).join(\"\\n\\n\");\n }\n } catch {\n }\n return str;\n};\n\n// src/filters/strip_md.ts\nvar strip_md = (str) => {\n str = str.replace(/!\\[([^\\]]*)\\]\\([^\\)]+\\)/g, \"\");\n str = str.replace(/!\\[\\[([^\\]]+)\\]\\]/g, \"\");\n str = str.replace(/\\[([^\\]]+)\\]\\([^\\)]+\\)/g, \"$1\");\n str = str.replace(/https?:\\/\\/\\S+/g, \"\");\n str = str.replace(/(\\*\\*|__)(.*?)\\1/g, \"$2\");\n str = str.replace(/(\\*|_)(.*?)\\1/g, \"$2\");\n str = str.replace(/==(.*?)==/g, \"$1\");\n str = str.replace(/^#+\\s+/gm, \"\");\n str = str.replace(/`([^`]+)`/g, \"$1\");\n str = str.replace(/```[\\s\\S]*?```/g, \"\");\n str = str.replace(/~~(.*?)~~/g, \"$1\");\n str = str.replace(/^[-*+] (\\[[x ]\\] )?/gm, \"\");\n str = str.replace(/^([-*_]){3,}\\s*$/gm, \"\");\n str = str.replace(/^>\\s+/gm, \"\");\n str = str.replace(/\\|.*\\|/g, \"\");\n str = str.replace(/([~^])(\\w+)\\1/g, \"$2\");\n str = str.replace(/:[a-z_]+:/g, \"\");\n str = str.replace(/<[^>]+>/g, \"\");\n str = str.replace(/\\[\\s*\\]/g, \"\");\n str = str.replace(/\\[\\^[^\\]]+\\]/g, \"\");\n str = str.replace(/^\\*\\[[^\\]]+\\]:.+$/gm, \"\");\n str = str.replace(/\\[\\[([^\\]|]+)\\|?([^\\]]*)\\]\\]/g, (match, p1, p2) => p2 || p1);\n str = str.replace(/\\n{3,}/g, \"\\n\\n\");\n str = str.trim();\n return str;\n};\n\n// src/filters/fragment_link.ts\nvar fragment_link = (str, param) => {\n if (!param || !str.trim()) {\n return [str];\n }\n param = param.replace(/^(['\"])([\\s\\S]*)\\1$/, \"$2\");\n const match = param.match(/^(.*?):?((https?:\\/\\/|file:\\/\\/).*$)/);\n const linktext = String(\n match?.[1]?.trim().replace(/(['\"])/g, \"\") || \"link\"\n );\n const sourceUrl = String(match?.[2] || param);\n const extractTextFragmentParts = (selectedText) => {\n const text = strip_md(selectedText);\n const words = text.split(/\\s+/).filter(Boolean);\n if (words.length > 10) {\n const start = words.slice(0, 5).join(\" \");\n const end = words.slice(-5).join(\" \");\n return { start, end };\n } else {\n const start = words.join(\" \");\n return { start };\n }\n };\n const createTextFragmentUrl = (selectedText) => {\n const { start, end } = extractTextFragmentParts(selectedText);\n const encodedEnd = end ? \",\" + encodeURIComponent(end) : \"\";\n const textFragment = encodeURIComponent(start) + encodedEnd;\n return \"#:~:text=\" + textFragment;\n };\n try {\n const data = JSON.parse(str);\n if (Array.isArray(data)) {\n return data.map((item) => {\n if (typeof item === \"object\" && item !== null && \"text\" in item) {\n return {\n ...item,\n text: `${item.text} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n item.text\n )})`\n };\n } else {\n return `${item} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n String(item)\n )})`;\n }\n });\n } else if (typeof data === \"object\" && data !== null) {\n return Object.entries(data).map(\n ([key, value]) => `${value} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n String(value)\n )})`\n );\n } else if (typeof data === \"string\") {\n return [\n `${data} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n data\n )})`\n ];\n }\n } catch {\n }\n return [str];\n};\n\n// src/string-utils.ts\nfunction escapeMarkdown(value) {\n return value.replaceAll(\"&\", \"&amp;\").replace(/[\\\\`*_[\\]<>]/g, \"\\\\$&\").replace(/\\r\\n?|\\n/g, \" \");\n}\nfunction markdownDestination(value) {\n const normalized = value.replace(/[\\x00-\\x20\\x7f]/g, \"\");\n if (/^(?:javascript|vbscript|data):/i.test(normalized)) return \"\";\n return value.replace(/&(?=(?:#\\d+|#x[\\da-f]+|[a-z][a-z\\d]+);)/gi, \"%26\").replace(\n /[\\x00-\\x20\\x7f()\\[\\]<>\\\\\"`]/g,\n (character) => `%${character.charCodeAt(0).toString(16).toUpperCase().padStart(2, \"0\")}`\n );\n}\n\n// src/filters/image.ts\nvar image = (str, param) => {\n if (!str.trim()) {\n return str;\n }\n let altText = \"\";\n if (param) {\n altText = unquoteScalarParam(param) ?? altText;\n }\n altText = escapeMarkdown(altText);\n try {\n const data = JSON.parse(str);\n const processObject = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n if (typeof value === \"object\" && value !== null) {\n return processObject(value);\n }\n return `![${escapeMarkdown(String(value))}](${markdownDestination(key)})`;\n }).flat();\n };\n if (Array.isArray(data)) {\n return data.map((item) => {\n if (typeof item === \"object\" && item !== null) {\n return processObject(item);\n }\n return item ? `![${altText}](${markdownDestination(String(item))})` : \"\";\n }).flat();\n } else if (typeof data === \"object\" && data !== null) {\n return processObject(data);\n }\n } catch (error) {\n return `![${altText}](${markdownDestination(str)})`;\n }\n return str;\n};\n\n// src/filters/indent.ts\nvar MAX_INDENT_WIDTH = 1e3;\nvar validateIndentParams = (param) => {\n if (!param) return { valid: true };\n const width = cleanScalarParam(param) ?? \"\";\n const numericWidth = Number(width);\n return /^\\d+$/.test(width) && Number.isSafeInteger(numericWidth) && numericWidth <= MAX_INDENT_WIDTH ? { valid: true } : { valid: false, error: `requires an integer from 0 to ${MAX_INDENT_WIDTH} spaces (e.g., indent:2)` };\n};\nvar indent = (value, param) => {\n if (!validateIndentParams(param).valid) return value;\n const width = param ? Number(cleanScalarParam(param)) : 2;\n const prefix = \" \".repeat(width);\n return value.replace(/[^\\r\\n]+/g, (line) => prefix + line);\n};\n\n// src/filters/join.ts\nvar join = (str, param) => {\n if (!str || str === \"undefined\" || str === \"null\") {\n return \"\";\n }\n let array;\n try {\n array = JSON.parse(str);\n } catch {\n return str;\n }\n if (!Array.isArray(array)) {\n return str;\n }\n let separator = \",\";\n if (param) {\n separator = unquoteScalarParam(param) ?? separator;\n separator = separator.replace(/\\\\n/g, \"\\n\");\n }\n return array.join(separator);\n};\n\n// src/filters/kebab.ts\nvar kebab = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n\n// src/filters/last.ts\nvar last = (str, _param, context) => {\n const value = arrayInputValue(str, context);\n if (!Array.isArray(value)) return value;\n return value.length > 0 ? value[value.length - 1] : null;\n};\n\n// src/filters/list.ts\nvar validListTypes = [\"numbered\", \"task\", \"numbered-task\"];\nvar validateListParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n const option = cleanScalarParam(param);\n if (!option || !validListTypes.includes(option)) {\n return {\n valid: false,\n error: `invalid list type \"${option ?? \"\"}\". Use \"numbered\", \"task\", or \"numbered-task\"`\n };\n }\n return { valid: true };\n};\nvar list = (input, param) => {\n const option = cleanScalarParam(param);\n if (input === \"\") {\n return input;\n }\n const processListItem = (item, type, depth = 0) => {\n const indent2 = \"\t\".repeat(depth);\n let prefix;\n switch (type) {\n case \"numbered\":\n prefix = \"1. \";\n break;\n case \"task\":\n prefix = \"- [ ] \";\n break;\n case \"numbered-task\":\n prefix = \"1. [ ] \";\n break;\n default:\n prefix = \"- \";\n }\n if (Array.isArray(item)) {\n return processArray(item, type, depth + 1);\n }\n return `${indent2}${prefix}${item}`;\n };\n const processArray = (arr, type, depth = 0) => {\n return arr.map((item, index) => {\n let itemType = type;\n if (type === \"numbered\" || type === \"numbered-task\") {\n const number = index + 1;\n return processListItem(item, itemType, depth).replace(/^\\d+/, number.toString());\n }\n return processListItem(item, itemType, depth);\n }).join(\"\\n\");\n };\n const determineListType = (param2) => {\n switch (param2) {\n case \"numbered\":\n return \"numbered\";\n case \"task\":\n return \"task\";\n case \"numbered-task\":\n return \"numbered-task\";\n default:\n return \"bullet\";\n }\n };\n try {\n const parsedInput = typeof input === \"string\" ? JSON.parse(input) : input;\n if (Array.isArray(parsedInput)) {\n const listType = determineListType(option);\n return processArray(parsedInput, listType);\n }\n return processArray([parsedInput], determineListType(option));\n } catch {\n return processListItem(input, determineListType(option));\n }\n};\n\n// src/filters/link.ts\nvar link = (str, param) => {\n if (!str.trim()) {\n return str;\n }\n let linkText = \"link\";\n if (param) {\n linkText = unquoteScalarParam(param) ?? linkText;\n }\n linkText = escapeMarkdown(linkText);\n try {\n const data = JSON.parse(str);\n const processObject = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n if (typeof value === \"object\" && value !== null) {\n return processObject(value);\n }\n return `[${escapeMarkdown(String(value))}](${markdownDestination(key)})`;\n }).flat();\n };\n if (Array.isArray(data)) {\n const result = data.map((item) => {\n if (typeof item === \"object\" && item !== null) {\n return processObject(item);\n }\n return item ? `[${linkText}](${markdownDestination(String(item))})` : \"\";\n });\n return result.join(\"\\n\");\n } else if (typeof data === \"object\" && data !== null) {\n return processObject(data).join(\"\\n\");\n }\n } catch (error) {\n return `[${linkText}](${markdownDestination(str)})`;\n }\n return str;\n};\n\n// src/filters/length.ts\nvar length = (str, _param, context) => {\n const value = inputValue(str, context, true);\n if (Array.isArray(value)) return value.length;\n if (isPlainObject(value)) return Object.keys(value).length;\n return str.length;\n};\n\n// src/filters/lower.ts\nvar lower = (input) => {\n const toLowerCase = (str) => {\n return str.toLocaleLowerCase();\n };\n if (Array.isArray(input)) {\n return input.map(toLowerCase);\n } else {\n return toLowerCase(input);\n }\n};\n\n// src/filters/map.ts\nvar validateMapParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a property path or arrow function (e.g., map:\"name\")' };\n }\n const match = param.match(/^\\s*(\\w+)\\s*=>\\s*(.+)$/);\n if (match) return { valid: true };\n const parts = splitParams(unwrapParamList(param));\n if (parts.length !== 1 || unquoteParamToken(parts[0]) === \"\") {\n return { valid: false, error: 'requires a property path or arrow function (e.g., map:\"name\")' };\n }\n if (unquoteParamToken(parts[0]).split(\".\").some((segment) => segment === \"\")) {\n return { valid: false, error: \"property path cannot contain empty segments\" };\n }\n return { valid: true };\n};\nfunction mapWithArrow(str, param) {\n let array;\n try {\n array = JSON.parse(str);\n } catch {\n array = [str];\n }\n if (Array.isArray(array) && param) {\n const match = param.match(/^\\s*(\\w+)\\s*=>\\s*(.+)$/);\n if (!match) {\n return str;\n }\n const [, argName, expression] = match;\n const mappedArray = array.map((item) => {\n let expr = expression.trim();\n if (expr.startsWith(\"(\") && expr.endsWith(\")\")) {\n expr = expr.slice(1, -1).trim();\n }\n if (expr.startsWith(\"{\") && expr.endsWith(\"}\") || expr.startsWith('\"') && expr.endsWith('\"') || expr.startsWith(\"'\") && expr.endsWith(\"'\")) {\n const mappedItem = /* @__PURE__ */ Object.create(null);\n if (expr.startsWith(\"{\")) {\n const assignments = splitParams(expr.slice(1, -1));\n assignments.forEach((assignment) => {\n const [key, value] = splitParamPair(assignment);\n if (value === void 0) return;\n const cleanKey = key.replace(/^['\"](.+)['\"]$/, \"$1\");\n const cleanValue = evaluateExpression2(value, item, argName);\n mappedItem[cleanKey] = cleanValue;\n });\n } else {\n const stringLiteral = expr.slice(1, -1);\n return stringLiteral.replace(new RegExp(`\\\\$\\\\{${argName}\\\\}`, \"g\"), item);\n }\n return mappedItem;\n } else {\n return evaluateExpression2(expression, item, argName);\n }\n });\n return JSON.stringify(mappedArray);\n }\n return str;\n}\nfunction propertyPath(param, context) {\n const argument = context?.rawArguments?.[0];\n if (argument !== void 0) return typeof argument === \"string\" ? argument : void 0;\n return unquoteParamToken(unwrapParamList(param));\n}\nvar map = (str, param, context) => {\n if (!param) return str;\n if (/^\\s*\\w+\\s*=>\\s*(.+)$/.test(param)) return mapWithArrow(str, param);\n const path = propertyPath(param, context);\n if (!path) return collectionInputValue(str, context);\n const input = collectionInputValue(str, context);\n if (!Array.isArray(input)) return input;\n return input.map((item) => {\n const property = ownPropertyAtPath(item, path);\n return property.exists ? property.value : null;\n });\n};\nfunction evaluateExpression2(expression, item, argName) {\n if (typeof item === \"string\") {\n return item;\n }\n const result = expression.replace(new RegExp(`${argName}\\\\.([\\\\w.\\\\[\\\\]]+)`, \"g\"), (_, prop) => {\n const value = getNestedProperty(item, prop);\n return JSON.stringify(value);\n });\n try {\n return JSON.parse(result);\n } catch {\n return result.replace(/^[\"'](.+)[\"']$/, \"$1\");\n }\n}\nfunction getNestedProperty(obj, path) {\n return path.split(/[.\\[\\]]/).filter(Boolean).reduce((current, key) => {\n return ownProperty(current, key).value;\n }, obj);\n}\n\n// src/filters/merge.ts\nvar merge = (str, param, context) => {\n if (!str || str === \"undefined\" || str === \"null\") {\n return \"[]\";\n }\n let array = context?.rawValue;\n if (!Array.isArray(array)) {\n try {\n array = JSON.parse(str);\n } catch {\n array = [str];\n }\n }\n const values = Array.isArray(array) ? array : [str];\n if (!param) {\n return JSON.stringify(values);\n }\n try {\n const singleArgument = context?.rawArguments?.length === 1 ? context.rawArguments[0] : void 0;\n const list2 = typeof singleArgument === \"string\" && singleArgument.includes(\",\") ? singleArgument : param;\n const processedItems = splitParamList(list2).map(unquoteParamToken);\n return JSON.stringify([...values, ...processedItems]);\n } catch (error) {\n reportFilterWarning(context, `Could not merge values: ${errorMessage(error)}`);\n return JSON.stringify(values);\n }\n};\n\n// src/filters/nth.ts\nvar validateNthParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n if (param.includes(\":\")) {\n const [positions, basis] = param.split(\":\").map((p) => p.trim());\n const nthValues = positions.split(\",\").map((n) => parseInt(n.trim(), 10));\n const basisSize = parseInt(basis, 10);\n if (nthValues.some((n) => isNaN(n) || n < 1)) {\n return { valid: false, error: \"positions must be positive numbers (e.g., nth:1,2,3:7)\" };\n }\n if (isNaN(basisSize) || basisSize < 1) {\n return { valid: false, error: \"basis must be a positive number (e.g., nth:1,2,3:7)\" };\n }\n return { valid: true };\n }\n const expr = param.trim();\n if (/^\\d+$/.test(expr)) {\n return { valid: true };\n }\n if (/^\\d+n$/.test(expr)) {\n return { valid: true };\n }\n if (/^n\\+\\d+$/.test(expr)) {\n return { valid: true };\n }\n return { valid: false, error: \"invalid syntax. Use number (2), multiplier (5n), offset (n+7), or basis (1,2:5)\" };\n};\nvar nth = (str, params, context) => {\n const data = arrayInputValue(str, context);\n if (!Array.isArray(data)) {\n if (typeof data === \"string\" && data && data !== \"undefined\" && data !== \"null\") {\n try {\n JSON.parse(str);\n } catch {\n reportFilterWarning(context, \"Could not parse value as a JSON array\", \"INVALID_FILTER_INPUT\");\n }\n }\n return data;\n }\n if (!params) {\n return data;\n }\n if (params.includes(\":\")) {\n const [positions, basis] = params.split(\":\").map((p) => p.trim());\n const nthValues = positions.split(\",\").map((n) => parseInt(n.trim(), 10)).filter((n) => !isNaN(n) && n > 0);\n const basisSize = parseInt(basis, 10);\n return data.filter((_, index) => {\n const positionInGroup = index % basisSize + 1;\n return nthValues.includes(positionInGroup);\n });\n }\n const nthExpression = params.trim();\n if (/^\\d+$/.test(nthExpression)) {\n const position = parseInt(nthExpression, 10);\n return data.filter((_, index) => index + 1 === position);\n }\n if (/^\\d+n$/.test(nthExpression)) {\n const multiplier = parseInt(nthExpression, 10);\n return data.filter((_, index) => {\n const position = index + 1;\n return position % multiplier === 0;\n });\n }\n const nPlusBMatch = nthExpression.match(/^n\\+(\\d+)$/);\n if (nPlusBMatch) {\n const offset = parseInt(nPlusBMatch[1], 10);\n return data.filter((_, index) => {\n const position = index + 1;\n return position >= offset;\n });\n }\n return data;\n};\n\n// src/filters/number_format.ts\nvar number_format = (input, param, context) => {\n const formatNumber = (num, decimals, decPoint, thousandsSep) => {\n const parts = num.toFixed(decimals).split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSep);\n return parts.join(decPoint);\n };\n const processValue = (value, decimals, decPoint, thousandsSep) => {\n if (typeof value === \"number\" || typeof value === \"string\" && !isNaN(parseFloat(value))) {\n const num = typeof value === \"string\" ? parseFloat(value) : value;\n return formatNumber(num, decimals, decPoint, thousandsSep);\n } else if (Array.isArray(value)) {\n return value.map((item) => processValue(item, decimals, decPoint, thousandsSep));\n } else if (typeof value === \"object\" && value !== null) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = processValue(val, decimals, decPoint, thousandsSep);\n }\n return result;\n }\n return value;\n };\n const unescapeString = (str) => {\n return str.replace(/\\\\(.)/g, \"$1\");\n };\n try {\n let decimals = 0;\n let decPoint = \".\";\n let thousandsSep = \",\";\n if (param) {\n const params = splitParams(unwrapParamList(param)).map(unquoteParamToken);\n if (params.length >= 1) decimals = parseInt(params[0], 10);\n if (params.length >= 2) decPoint = unescapeString(params[1]);\n if (params.length >= 3) thousandsSep = unescapeString(params[2]);\n }\n if (isNaN(decimals)) decimals = 0;\n let parsedInput;\n try {\n parsedInput = JSON.parse(input);\n } catch {\n parsedInput = input;\n }\n const result = processValue(parsedInput, decimals, decPoint, thousandsSep);\n return typeof result === \"string\" ? result : JSON.stringify(result);\n } catch (error) {\n reportFilterWarning(context, `Could not format number: ${errorMessage(error)}`);\n return input;\n }\n};\n\n// src/filters/object.ts\nvar validObjectParams = [\"array\", \"keys\", \"values\"];\nvar validateObjectParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a parameter: \"array\", \"keys\", or \"values\"' };\n }\n const option = cleanScalarParam(param);\n if (!option || !validObjectParams.includes(option)) {\n return {\n valid: false,\n error: `invalid parameter \"${option ?? \"\"}\". Use \"array\", \"keys\", or \"values\"`\n };\n }\n return { valid: true };\n};\nvar object = (str, param, context) => {\n const option = cleanScalarParam(param);\n try {\n const obj = JSON.parse(str);\n if (typeof obj === \"object\" && obj !== null) {\n switch (option) {\n case \"array\":\n return JSON.stringify(Object.entries(obj));\n case \"keys\":\n return JSON.stringify(Object.keys(obj));\n case \"values\":\n return JSON.stringify(Object.values(obj));\n default:\n return str;\n }\n }\n } catch {\n reportFilterWarning(context, \"Could not parse value as JSON\", \"INVALID_FILTER_INPUT\");\n }\n return str;\n};\n\n// src/filters/pascal.ts\nvar pascal = (str) => str.replace(/[\\s_-]+(.)/g, (_, c) => c.toUpperCase()).replace(/^(.)/, (c) => c.toUpperCase());\n\n// src/filters/parse_json.ts\nvar parse_json = (value, _param, context) => {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\") && typeof context.rawValue !== \"string\") {\n return context.rawValue;\n }\n try {\n return JSON.parse(value);\n } catch {\n reportFilterWarning(context, \"Could not parse value as JSON\", \"INVALID_FILTER_INPUT\");\n return value;\n }\n};\n\n// src/filters/reverse.ts\nvar reverse = (str) => {\n if (!str || str === \"undefined\" || str === \"null\") {\n return \"\";\n }\n try {\n const value = JSON.parse(str);\n if (Array.isArray(value)) {\n return JSON.stringify(value.reverse());\n } else if (typeof value === \"object\" && value !== null) {\n const entries = Object.entries(value);\n const reversedEntries = entries.reverse();\n const reversedObject = Object.fromEntries(reversedEntries);\n return JSON.stringify(reversedObject);\n }\n } catch (error) {\n return str.split(\"\").reverse().join(\"\");\n }\n return str;\n};\n\n// src/filters/remove_attr.ts\nvar remove_attr = (html, removeAttributes = \"\") => {\n if (!removeAttributes) {\n return html;\n }\n const removeAttributesList = normalizeParamList(removeAttributes).map((attr) => attr.toLowerCase()).filter(Boolean);\n if (removeAttributesList.length === 0) {\n return html;\n }\n return html.replace(/<(\\w+)\\s+([^>]*?)>/g, (match, tag, attributesString) => {\n const attributeOrSlashRegex = /([a-zA-Z0-9_:-]+(?:\\s*=\\s*(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|[^'\"\\s>]+))?)|(\\s*\\/?\\s*$)/g;\n const attributeNameExtractorRegex = /^([a-zA-Z0-9_:-]+)/;\n const elementsToKeep = [];\n const allMatches = Array.from(attributesString.matchAll(attributeOrSlashRegex));\n for (const currentMatch of allMatches) {\n const fullMatchedText = currentMatch[0];\n const attributePart = currentMatch[1];\n const slashPart = currentMatch[2];\n if (attributePart) {\n const nameMatch = attributePart.match(attributeNameExtractorRegex);\n if (nameMatch) {\n const attrName = nameMatch[0];\n const shouldRemove = removeAttributesList.includes(attrName.toLowerCase());\n if (!shouldRemove) {\n elementsToKeep.push(attributePart);\n }\n } else {\n elementsToKeep.push(attributePart);\n }\n } else if (slashPart && fullMatchedText && fullMatchedText.includes(\"/\")) {\n elementsToKeep.push(fullMatchedText.trim());\n }\n }\n const cleanedAttributes = elementsToKeep.join(\" \").trim();\n return cleanedAttributes ? `<${tag} ${cleanedAttributes}>` : `<${tag}>`;\n });\n};\n\n// src/filters/remove_tags.ts\nvar remove_tags = (html, removeTags = \"\") => {\n if (!removeTags) {\n return html;\n }\n const removeTagsList = normalizeParamList(removeTags).filter(Boolean);\n if (removeTagsList.length === 0) {\n return html;\n }\n const escapedTags = removeTagsList.map((tag) => tag.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(`<\\\\/?(?:${escapedTags})\\\\b[^>]*>`, \"gi\");\n return html.replace(regex, \"\");\n};\n\n// src/filters/replace.ts\nvar validateReplaceParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires search and replacement (e.g., replace:\"old\":\"new\")' };\n }\n const replacements = splitParams(unwrapParamList(param));\n const allValid = replacements.length > 0 && replacements.every((replacement) => {\n const pair = splitReplacementPair(replacement);\n if (!pair) return false;\n const [search, replacementValue] = pair;\n const quotedSearch = /^(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*')$/.test(search.trim());\n const regexSearch = /^\\/(?:\\\\.|[^/\\\\])+\\/[gimsuy]*$/.test(search.trim());\n const quotedReplacement = replacementValue.trim() === \"\" || /^(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*')$/.test(replacementValue.trim());\n return (quotedSearch || regexSearch) && quotedReplacement;\n });\n const legacyValid = /[\"'][^\"']*[\"']\\s*:\\s*[\"'][^\"']*[\"']/.test(unwrapParamList(param)) || /[\"'][^\"']*[\"']\\s*:/.test(unwrapParamList(param)) || /\\/[^/]+\\/[gimsuy]*\\s*:/.test(unwrapParamList(param));\n if (!allValid && !legacyValid) {\n return {\n valid: false,\n error: 'values must be quoted (e.g., replace:\"old\":\"new\" or replace:\"text\":\"\")'\n };\n }\n return { valid: true };\n};\nfunction splitReplacementPair(value) {\n let quote = \"\";\n let inRegex = false;\n let escaped = false;\n for (let index = 0; index < value.length; index++) {\n const character = value[index];\n if (escaped) {\n escaped = false;\n } else if (character === \"\\\\\") {\n escaped = true;\n } else if (quote) {\n if (character === quote) quote = \"\";\n } else if (inRegex) {\n if (character === \"/\") inRegex = false;\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \"/\" && value.slice(0, index).trim() === \"\") {\n inRegex = true;\n } else if (character === \":\") {\n return [value.slice(0, index), value.slice(index + 1)];\n }\n }\n return null;\n}\nvar replace = (str, param, context) => {\n if (!param) {\n return str;\n }\n const replacements = splitParams(unwrapParamList(param));\n return replacements.reduce((acc, replacement) => {\n const legacyPair = replacement.split(/(?<=[^\\\\][\"']):(?=[\"'])/);\n const pair = splitReplacementPair(replacement) ?? (legacyPair.length >= 2 ? [legacyPair[0], legacyPair.slice(1).join(\":\")] : null);\n if (!pair) return acc;\n let [search, replace2] = pair.map(unquoteParamToken);\n replace2 = replace2 || \"\";\n const regexInfo = parseRegexPattern(search);\n if (regexInfo) {\n if (context?.allowRegex === false) {\n throw new TemplateRuntimeError(\"Regex replacements are disabled\", \"INVALID_FILTER_ARGUMENTS\");\n }\n try {\n replace2 = processEscapedCharacters(replace2);\n const regex = new RegExp(regexInfo.pattern, regexInfo.flags);\n return boundedReplace(acc, regex, replace2, context);\n } catch (error) {\n if (error instanceof TemplateRuntimeError) throw error;\n reportFilterWarning(\n context,\n `Invalid regular expression: ${errorMessage(error)}`,\n \"INVALID_FILTER_INPUT\"\n );\n return acc;\n }\n }\n search = processEscapedCharacters(search);\n replace2 = processEscapedCharacters(replace2);\n if (search === \"|\" || search === \":\") {\n const parts = acc.split(search);\n context?.checkLength?.(acc.length + (parts.length - 1) * (replace2.length - search.length));\n return parts.join(replace2);\n }\n if (search.includes(\"\\n\") || search.includes(\"\\r\") || search.includes(\"\t\")) {\n const parts = acc.split(search);\n context?.checkLength?.(acc.length + (parts.length - 1) * (replace2.length - search.length));\n return parts.join(replace2);\n }\n const searchRegex = new RegExp(search.replace(/([.*+?^${}()|[\\]\\\\])/g, \"\\\\$1\"), \"g\");\n return boundedReplace(acc, searchRegex, replace2, context);\n }, str);\n};\nfunction processEscapedCharacters(str) {\n return str.replace(/\\\\([nrt]|[^nrt])/g, (match, char) => {\n switch (char) {\n case \"n\":\n return \"\\n\";\n case \"r\":\n return \"\\r\";\n case \"t\":\n return \"\t\";\n default:\n return char;\n }\n });\n}\nfunction boundedReplace(input, regex, replacement, context) {\n if (!context?.checkLength) return input.replace(regex, replacement);\n let length2 = input.length;\n return input.replace(regex, (match, ...args) => {\n const named = typeof args.at(-1) === \"object\" ? args.pop() : void 0;\n args.pop();\n const offset = args.pop();\n const captures = args;\n let expandedLength = replacement.length;\n const expanded = replacement.replace(/\\$(\\$|&|`|'|\\d{1,2}|<[^>]*>)/g, (token, key) => {\n const substitute = () => {\n if (key === \"$\") return \"$\";\n if (key === \"&\") return match;\n if (key === \"`\") return input.slice(0, offset);\n if (key === \"'\") return input.slice(offset + match.length);\n if (key.startsWith(\"<\")) return named ? named[key.slice(1, -1)] ?? \"\" : token;\n const index = Number(key);\n if (index > 0 && index <= captures.length) return captures[index - 1] ?? \"\";\n const first2 = Number(key[0]);\n if (key.length === 2 && first2 > 0 && first2 <= captures.length) return (captures[first2 - 1] ?? \"\") + key[1];\n return token;\n };\n const value = substitute();\n expandedLength += value.length - token.length;\n context.checkLength(length2 - match.length + expandedLength);\n return value;\n });\n length2 += expanded.length - match.length;\n context.checkLength(length2);\n return expanded;\n });\n}\n\n// src/filters/replace_tags.ts\nvar cleanTag = (value) => unquoteParamToken(value).replace(/\\\\(.)/g, \"$1\");\nvar replace_tags = (html, params = \"\") => {\n const tokens = splitParamList(params).filter(Boolean);\n const transformations = [];\n for (const token of tokens) {\n const [rawSource, rawTarget] = splitParamPair(token);\n transformations.push([\n cleanTag(rawSource),\n rawTarget === void 0 ? \"\" : cleanTag(rawTarget)\n ]);\n }\n if (transformations.some(([source, target]) => !/^[a-z][\\w:-]*$/i.test(source) || target !== \"\" && !/^[a-z][\\w:-]*$/i.test(target))) {\n throw new TemplateRuntimeError(\"replace_tags requires tag names\", \"INVALID_FILTER_ARGUMENTS\");\n }\n if (transformations.length === 0) {\n return html;\n }\n let result = html;\n transformations.forEach(([source, target]) => {\n if (!source) {\n return;\n }\n const openingPattern = new RegExp(`<${source}(\\\\s+[^>]*?)?>`, \"g\");\n const closingPattern = new RegExp(`</${source}>`, \"g\");\n result = result.replace(openingPattern, (match, attributes) => {\n return target ? `<${target}${attributes || \"\"}>` : \"\";\n }).replace(closingPattern, target ? `</${target}>` : \"\");\n });\n return result;\n};\n\n// src/filters/round.ts\nvar validateRoundParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n const num = parseInt(cleanScalarParam(param) ?? \"\", 10);\n if (isNaN(num)) {\n return { valid: false, error: \"decimal places must be a number (e.g., round:2)\" };\n }\n if (num < 0) {\n return { valid: false, error: \"decimal places must be non-negative (e.g., round:2)\" };\n }\n return { valid: true };\n};\nvar round = (input, param, context) => {\n const roundNumber = (num, decimalPlaces) => {\n if (decimalPlaces === void 0) {\n const result2 = Math.round(num);\n return Number.isFinite(result2) ? result2 : void 0;\n }\n const factor = Math.pow(10, decimalPlaces);\n const result = Math.round(num * factor) / factor;\n return Number.isFinite(result) ? result : void 0;\n };\n let encounteredNonFinite = false;\n const processCollectionValue = (value, decimalPlaces) => {\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n encounteredNonFinite = true;\n return value;\n }\n const result = roundNumber(value, decimalPlaces);\n if (result === void 0) {\n encounteredNonFinite = true;\n return value;\n }\n return result;\n } else if (typeof value === \"string\") {\n const num = finiteNumber(value);\n if (num === void 0) return value;\n const result = roundNumber(num, decimalPlaces);\n if (result === void 0) {\n encounteredNonFinite = true;\n return value;\n }\n return result;\n } else if (Array.isArray(value)) {\n return value.map((item) => processCollectionValue(item, decimalPlaces));\n } else if (isPlainObject(value)) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = processCollectionValue(val, decimalPlaces);\n }\n return result;\n }\n return value;\n };\n try {\n const cleanParam = cleanScalarParam(param);\n const decimalPlaces = cleanParam ? parseInt(cleanParam, 10) : void 0;\n if (cleanParam !== void 0 && isNaN(Number(cleanParam))) {\n return collectionInputValue(input, context, true);\n }\n const value = collectionInputValue(input, context, true);\n if (value === null || value === void 0) return value;\n if (!Array.isArray(value) && !isPlainObject(value)) {\n const num = finiteNumber(value);\n if (num === void 0) {\n reportFilterWarning(context, `Could not parse \"${input}\" as a number`, \"INVALID_FILTER_INPUT\");\n return value;\n }\n const result2 = roundNumber(num, decimalPlaces);\n if (result2 === void 0) {\n reportFilterWarning(context, `Rounding produced a non-finite result for \"${input}\"`, \"INVALID_FILTER_INPUT\");\n return value;\n }\n return result2;\n }\n const result = processCollectionValue(value, decimalPlaces);\n if (encounteredNonFinite) {\n reportFilterWarning(context, \"Could not round one or more non-finite collection values\", \"INVALID_FILTER_INPUT\");\n }\n return result;\n } catch (error) {\n reportFilterWarning(context, `Could not round value: ${errorMessage(error)}`);\n return collectionInputValue(input, context, true);\n }\n};\n\n// src/filters/safe_name.ts\nvar validOsParams = [\"windows\", \"mac\", \"linux\"];\nvar validateSafeNameParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n const os = cleanScalarParam(param)?.toLowerCase();\n if (!os || !validOsParams.includes(os)) {\n return {\n valid: false,\n error: `invalid OS \"${os ?? \"\"}\". Use \"windows\", \"mac\", or \"linux\"`\n };\n }\n return { valid: true };\n};\nvar safe_name = (str, param) => {\n const os = cleanScalarParam(param)?.toLowerCase() ?? \"default\";\n let sanitized = str;\n sanitized = sanitized.replace(/[#|\\^\\[\\]]/g, \"\");\n switch (os) {\n case \"windows\":\n sanitized = sanitized.replace(/[<>:\"\\/\\\\|?*\\x00-\\x1F]/g, \"\").replace(/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i, \"_$1$2\").replace(/[\\s.]+$/, \"\");\n break;\n case \"mac\":\n sanitized = sanitized.replace(/[\\/:\\x00-\\x1F]/g, \"\").replace(/^\\./, \"_\");\n break;\n case \"linux\":\n sanitized = sanitized.replace(/[\\/\\x00-\\x1F]/g, \"\").replace(/^\\./, \"_\");\n break;\n default:\n sanitized = sanitized.replace(/[<>:\"\\/\\\\|?*:\\x00-\\x1F]/g, \"\").replace(/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i, \"_$1$2\").replace(/[\\s.]+$/, \"\").replace(/^\\./, \"_\");\n break;\n }\n sanitized = sanitized.replace(/^\\.+/, \"\").slice(0, 245);\n if (sanitized.length === 0) {\n sanitized = \"Untitled\";\n }\n return sanitized;\n};\n\n// src/filters/slice.ts\nvar paramParts = (param) => splitParams(unwrapParamList(param)).map(cleanParamToken);\nvar validateSliceParams = (param) => {\n if (!param) {\n return { valid: false, error: \"requires at least a start index (e.g., slice:0,5)\" };\n }\n const parts = paramParts(param);\n if (parts.length > 2) {\n return { valid: false, error: \"accepts at most 2 parameters: start and end\" };\n }\n for (const part of parts) {\n if (part !== \"\" && isNaN(parseInt(part, 10))) {\n return { valid: false, error: `\"${part}\" is not a valid number` };\n }\n }\n return { valid: true };\n};\nvar slice = (str, param, context) => {\n if (!param) {\n return str;\n }\n if (str === \"\") {\n return str;\n }\n const [start, end] = paramParts(param).map((p) => {\n if (p === \"\") return void 0;\n const num = parseInt(p, 10);\n return isNaN(num) ? void 0 : num;\n });\n let value;\n try {\n value = JSON.parse(str);\n } catch {\n if (str.startsWith(\"[\") || str.startsWith(\"{\")) {\n reportFilterWarning(context, \"Could not parse structured value as JSON\", \"INVALID_FILTER_INPUT\");\n }\n value = str;\n }\n if (Array.isArray(value)) {\n const slicedArray = value.slice(start, end);\n if (slicedArray.length === 1) {\n return slicedArray[0] == null ? \"\" : slicedArray[0].toString();\n }\n return JSON.stringify(slicedArray);\n } else {\n const slicedString = str.slice(start, end);\n return slicedString;\n }\n};\n\n// src/filters/snake.ts\nvar snake = (str) => str.replace(/([a-z])([A-Z])/g, \"$1_$2\").replace(/[\\s-]+/g, \"_\").toLowerCase();\n\n// src/filters/sort.ts\nfunction parseParams(param) {\n if (!param) return { direction: \"asc\" };\n const parts = splitParams(unwrapParamList(param)).map(cleanParamToken);\n if (parts.length === 1 && (parts[0] === \"asc\" || parts[0] === \"desc\")) {\n return { direction: parts[0] };\n }\n return {\n property: parts[0] || void 0,\n direction: parts[1] || \"asc\"\n };\n}\nvar validateSortParams = (param) => {\n if (!param) return { valid: true };\n const parts = splitParams(unwrapParamList(param)).map(cleanParamToken);\n if (parts.length > 2) return { valid: false, error: \"accepts at most a property and direction\" };\n if (parts.length === 2 && !parts[0]) return { valid: false, error: \"property cannot be empty\" };\n const direction = parts.length === 1 && (parts[0] === \"asc\" || parts[0] === \"desc\") ? parts[0] : parts[1] || \"asc\";\n if (direction !== \"asc\" && direction !== \"desc\") {\n return { valid: false, error: `invalid direction \"${direction}\". Use \"asc\" or \"desc\"` };\n }\n return { valid: true };\n};\nfunction propertyValue(value, property) {\n if (!property) return value;\n return property.split(\".\").reduce(\n (current, key) => current && typeof current === \"object\" ? current[key] : void 0,\n value\n );\n}\nfunction compareValues(left, right) {\n if (left === right) return 0;\n if (left === null || left === void 0) return 1;\n if (right === null || right === void 0) return -1;\n if (typeof left === \"number\" && typeof right === \"number\") return left - right;\n const leftText = typeof left === \"string\" ? left : JSON.stringify(left);\n const rightText = typeof right === \"string\" ? right : JSON.stringify(right);\n return leftText < rightText ? -1 : leftText > rightText ? 1 : 0;\n}\nvar sort = (value, param, context) => {\n const input = inputValue(value, context);\n if (!Array.isArray(input)) return input;\n const { property, direction } = parseParams(param);\n return [...input].sort((left, right) => {\n const leftValue = propertyValue(left, property);\n const rightValue = propertyValue(right, property);\n const comparison = compareValues(leftValue, rightValue);\n if (leftValue === null || leftValue === void 0 || rightValue === null || rightValue === void 0) {\n return comparison;\n }\n return direction === \"desc\" ? -comparison : comparison;\n });\n};\n\n// src/filters/split.ts\nvar split = (str, param, context) => {\n if (!param || param === \"\") {\n return JSON.stringify(str.split(\"\"));\n }\n param = unquoteScalarParam(param) ?? \"\";\n const separator = param.length === 1 || context?.allowRegex === false ? param : new RegExp(param);\n const result = str.split(separator);\n return JSON.stringify(result);\n};\n\n// src/filters/sum.ts\nvar validateSumParams = (param) => {\n if (!param) return { valid: true };\n const parts = splitParams(unwrapParamList(param));\n if (parts.length !== 1) return { valid: false, error: \"accepts at most one property path\" };\n const path = unquoteParamToken(parts[0]);\n if (!path) return { valid: false, error: \"property path cannot be empty\" };\n if (path.split(\".\").some((segment) => segment === \"\")) {\n return { valid: false, error: \"property path cannot contain empty segments\" };\n }\n return { valid: true };\n};\nvar sum = (value, param, context) => {\n const input = collectionInputValue(value, context);\n if (!Array.isArray(input)) return input;\n const args = context?.rawArguments ?? parseTypedParams(param) ?? [];\n const path = args[0];\n if (path !== void 0 && (typeof path !== \"string\" || !path)) return input;\n let total = 0;\n for (const item of input) {\n let candidate = item;\n if (typeof path === \"string\") {\n const property = ownPropertyAtPath(item, path);\n if (!property.exists) continue;\n candidate = property.value;\n }\n const number = finiteNumber(candidate);\n if (number !== void 0) total += number;\n }\n return total;\n};\n\n// src/filters/strip_attr.ts\nvar strip_attr = (html, keepAttributes = \"\") => {\n const keepAttributesList = normalizeParamList(keepAttributes).filter(Boolean);\n return html.replace(/<(\\w+)\\s+(?:[^>]*?)>/g, (match, tag) => {\n if (keepAttributesList.length === 0) {\n return `<${tag}>`;\n }\n const keepAttrs = keepAttributesList.map((attr) => {\n const escapedAttr = attr.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const regex = new RegExp(`\\\\s${escapedAttr}\\\\s*=\\\\s*(\"[^\"]*\"|'[^']*')`, \"i\");\n const attrMatch = match.match(regex);\n return attrMatch ? attrMatch[0].trim() : \"\";\n }).filter(Boolean).join(\" \");\n return keepAttrs ? `<${tag} ${keepAttrs}>` : `<${tag}>`;\n });\n};\n\n// src/filters/strip_tags.ts\nvar strip_tags = (html, keepTags = \"\") => {\n const keepTagsList = normalizeParamList(keepTags).filter(Boolean);\n let result;\n if (keepTagsList.length === 0) {\n result = html.replace(/<\\/?[^>]+(>|$)/g, \"\");\n } else {\n const escapedTags = keepTagsList.map((tag) => tag.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(`<(?!\\\\/?(?:${escapedTags})\\\\b)[^>]+>`, \"gi\");\n result = html.replace(regex, \"\");\n }\n result = result.replace(/&nbsp;/g, \" \").replace(/&amp;/g, \"&\").replace(/&lt;/g, \"<\").replace(/&gt;/g, \">\").replace(/&quot;/g, '\"').replace(/&#39;/g, \"'\").replace(/&ldquo;/g, '\"').replace(/&rdquo;/g, '\"').replace(/&lsquo;/g, \"'\").replace(/&rsquo;/g, \"'\").replace(/&mdash;/g, \"\\u2014\").replace(/&ndash;/g, \"\\u2013\").replace(/&hellip;/g, \"\\u2026\").replace(/&#(\\d+);/g, (match, dec) => String.fromCharCode(Number(dec))).replace(/&#x([0-9A-Fa-f]+);/g, (match, hex) => String.fromCharCode(parseInt(hex, 16)));\n result = result.replace(/\\n{3,}/g, \"\\n\\n\");\n return result.trim();\n};\n\n// src/filters/table.ts\nfunction parseHeaders(params) {\n if (!params) return [];\n return splitParams(unwrapParamList(params)).map(unquoteParamToken);\n}\nvar escapeCell = (cell) => cell.replace(/\\|/g, \"\\\\|\");\nvar cellWidth = (cell) => Array.from(cell).length;\nvar padCell = (cell, width) => `${cell}${\" \".repeat(width - cellWidth(cell))}`;\nfunction widestCell(rows, column, minimum) {\n let width = minimum;\n for (const row of rows) {\n width = Math.max(width, cellWidth(row[column]));\n }\n return width;\n}\nfunction widestRow(rows) {\n let width = 0;\n for (const row of rows) {\n width = Math.max(width, row.length);\n }\n return width;\n}\nfunction renderTable(headers, rows, pretty) {\n const columnCount = headers.length;\n const normalizedHeaders = headers.map((value) => escapeCell(String(value)));\n const normalizedRows = rows.map(\n (row) => [...row, ...Array(Math.max(0, columnCount - row.length)).fill(\"\")].slice(0, columnCount).map((value) => escapeCell(String(value)))\n );\n if (!pretty) {\n return [\n `| ${normalizedHeaders.join(\" | \")} |`,\n `| ${normalizedHeaders.map(() => \"-\").join(\" | \")} |`,\n ...normalizedRows.map((row) => `| ${row.join(\" | \")} |`)\n ].join(\"\\n\");\n }\n const widths = normalizedHeaders.map((header, column) => widestCell(normalizedRows, column, Math.max(3, cellWidth(header))));\n const formatRow = (row) => `| ${row.map((cell, column) => padCell(cell, widths[column])).join(\" | \")} |`;\n return [\n formatRow(normalizedHeaders),\n `| ${widths.map((width) => \"-\".repeat(width)).join(\" | \")} |`,\n ...normalizedRows.map(formatRow)\n ].join(\"\\n\");\n}\nvar formatTable = (str, params, context, pretty) => {\n if (!str || str === \"undefined\" || str === \"null\") return str;\n try {\n const data = JSON.parse(str);\n const customHeaders = parseHeaders(params);\n if (typeof data === \"object\" && data !== null && !Array.isArray(data)) {\n const entries = Object.entries(data);\n if (entries.length === 0) return str;\n return renderTable(entries[0], entries.slice(1), pretty);\n }\n if (Array.isArray(data) && data.length > 0 && Array.isArray(data[0])) {\n const maxColumns = widestRow(data);\n const headers = customHeaders.length > 0 ? [...customHeaders, ...Array(Math.max(0, maxColumns - customHeaders.length)).fill(\"\")] : Array(maxColumns).fill(\"\");\n return renderTable(headers, data, pretty);\n }\n if (Array.isArray(data) && data.length > 0 && typeof data[0] === \"object\" && data[0] !== null) {\n const headers = customHeaders.length > 0 ? customHeaders : Object.keys(data[0]);\n const rows = data.map((row) => headers.map((header) => row[header] ?? \"\"));\n return renderTable(headers, rows, pretty);\n }\n if (Array.isArray(data)) {\n if (customHeaders.length > 0) {\n const rows = [];\n for (let index = 0; index < data.length; index += customHeaders.length) {\n rows.push(data.slice(index, index + customHeaders.length));\n }\n return renderTable(customHeaders, rows, pretty);\n }\n return renderTable([\"Value\"], data.map((item) => [item]), pretty);\n }\n return str;\n } catch {\n reportFilterWarning(context, \"Could not parse value as JSON table data\", \"INVALID_FILTER_INPUT\");\n return str;\n }\n};\nvar table = (str, params, context) => formatTable(str, params, context, false);\nvar table_pretty = (str, params, context) => formatTable(str, params, context, true);\n\n// src/filters/template.ts\nvar validateTemplateParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a template string (e.g., template:\"${name}\")' };\n }\n return { valid: true };\n};\nvar template = (input, param) => {\n if (!param) {\n return typeof input === \"string\" ? input : JSON.stringify(input);\n }\n param = unquoteScalarParam(param) ?? \"\";\n let obj = [];\n if (typeof input === \"string\") {\n try {\n obj = JSON.parse(input);\n } catch {\n obj = [input];\n }\n } else {\n obj = input;\n }\n obj = Array.isArray(obj) ? obj : [obj];\n return obj.map((item) => replaceTemplateVariables(item, param)).join(\"\\n\\n\");\n};\nfunction replaceTemplateVariables(obj, template2) {\n if (typeof obj === \"string\") {\n const strValue = obj;\n try {\n obj = parseObjectString(obj);\n } catch {\n }\n if (obj.str === void 0) {\n obj.str = strValue;\n }\n }\n let result = template2.replace(/\\$\\{([\\w.]+)\\}/g, (_match, path) => {\n const value = getNestedProperty2(obj, path);\n return value !== void 0 && value !== \"undefined\" ? value : \"\";\n });\n result = result.replace(/\\\\n/g, \"\\n\");\n result = result.split(\"\\n\").filter((line) => line.trim() !== \"\").join(\"\\n\");\n return result.trim();\n}\nfunction parseObjectString(str) {\n const obj = /* @__PURE__ */ Object.create(null);\n const regex = /(\\w+):\\s*(\"(?:\\\\.|[^\"\\\\])*\"|[^,}]+)/g;\n let match;\n while ((match = regex.exec(str)) !== null) {\n let [, key, value] = match;\n if (value.startsWith('\"') && value.endsWith('\"')) {\n value = value.slice(1, -1);\n }\n obj[key] = value === \"undefined\" ? void 0 : value;\n }\n return obj;\n}\nfunction getNestedProperty2(obj, path) {\n return ownPropertyAtPath(obj, path).value;\n}\n\n// src/filters/title.ts\nvar lowercaseWords = [\"a\", \"an\", \"the\", \"and\", \"but\", \"or\", \"for\", \"nor\", \"on\", \"at\", \"to\", \"from\", \"by\", \"in\", \"of\"];\nvar title = (input, param) => {\n const toTitleCase = (str) => {\n return str.split(/\\s+/).map((word, index) => {\n if (index !== 0 && lowercaseWords.includes(word.toLowerCase())) {\n return word.toLowerCase();\n }\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n }).join(\" \");\n };\n const processValue = (value) => {\n if (typeof value === \"string\") {\n return toTitleCase(value);\n } else if (Array.isArray(value)) {\n return value.map(processValue);\n } else if (typeof value === \"object\" && value !== null) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[toTitleCase(key)] = processValue(val);\n }\n return result;\n }\n return value;\n };\n try {\n const parsedInput = JSON.parse(input);\n const result = processValue(parsedInput);\n return JSON.stringify(result);\n } catch (error) {\n return processValue(input);\n }\n};\n\n// src/filters/trim.ts\nvar trim = (str) => {\n return str.trim();\n};\n\n// src/filters/truncate.ts\nvar graphemeSegmenter = new Intl.Segmenter(void 0, { granularity: \"grapheme\" });\nfunction graphemes(value) {\n return [...graphemeSegmenter.segment(value)].map((segment) => segment.segment);\n}\nfunction paramParts2(param) {\n return param ? splitParams(unwrapParamList(param)).map(cleanParamToken) : [];\n}\nfunction parseParams2(param) {\n const parts = paramParts2(param);\n return {\n limit: Number.parseInt(parts[0] ?? \"0\", 10),\n suffix: parts[1] ?? \"\\u2026\"\n };\n}\nfunction validateParams(param, example) {\n const parts = paramParts2(param);\n if (parts.length === 0 || parts[0] === \"\") {\n return { valid: false, error: `requires a non-negative limit (e.g., ${example})` };\n }\n if (parts.length > 2) return { valid: false, error: \"accepts at most a limit and suffix\" };\n if (!/^\\d+$/.test(parts[0])) return { valid: false, error: \"limit must be a non-negative integer\" };\n return { valid: true };\n}\nvar validateTruncateParams = (param) => validateParams(param, \"truncate:100\");\nvar validateTruncatewordsParams = (param) => validateParams(param, \"truncatewords:20\");\nfunction truncateString(value, options) {\n if (options.limit === 0) return \"\";\n const characters = graphemes(value);\n if (characters.length <= options.limit) return value;\n const suffix = graphemes(options.suffix).slice(0, options.limit);\n const contentLimit = Math.max(0, options.limit - suffix.length);\n return `${characters.slice(0, contentLimit).join(\"\")}${suffix.join(\"\")}`;\n}\nfunction truncateWordsString(value, options) {\n if (options.limit === 0) return \"\";\n const words = [...value.matchAll(/\\S+/g)];\n if (words.length <= options.limit) return value;\n const finalWord = words[options.limit - 1];\n return `${value.slice(0, finalWord.index + finalWord[0].length)}${options.suffix}`;\n}\nfunction truncateValue(value, param, context, formatter) {\n const options = parseParams2(param);\n return mapStringValues(inputValue(value, context), (item) => formatter(item, options));\n}\nvar truncate = (value, param, context) => truncateValue(value, param, context, truncateString);\nvar truncatewords = (value, param, context) => truncateValue(value, param, context, truncateWordsString);\n\n// src/filters/uncamel.ts\nvar uncamel = (str) => {\n const spaced = str.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\");\n return spaced.replace(/([A-Z])([A-Z][a-z])/g, \"$1 $2\").toLowerCase();\n};\n\n// src/filters/unescape.ts\nvar unescape = (str) => str.replace(/\\\\\"/g, '\"').replace(/\\\\n/g, \"\\n\");\n\n// src/filters/unique.ts\nvar unique = (input) => {\n try {\n const parsed = JSON.parse(input);\n if (Array.isArray(parsed)) {\n if (parsed.every((item) => typeof item !== \"object\")) {\n return JSON.stringify([...new Set(parsed)]);\n }\n const seen = /* @__PURE__ */ new Set();\n const uniqueArray = parsed.filter((item) => {\n const stringified = JSON.stringify(item);\n if (seen.has(stringified)) {\n return false;\n }\n seen.add(stringified);\n return true;\n });\n return JSON.stringify(uniqueArray);\n }\n if (typeof parsed === \"object\" && parsed !== null) {\n const reverseEntries = Object.entries(parsed).reverse();\n const seen = /* @__PURE__ */ new Set();\n const uniqueEntries = reverseEntries.filter(([_, value]) => {\n const stringified = JSON.stringify(value);\n if (seen.has(stringified)) {\n return false;\n }\n seen.add(stringified);\n return true;\n }).reverse();\n return JSON.stringify(Object.fromEntries(uniqueEntries));\n }\n return input;\n } catch {\n return input;\n }\n};\n\n// src/filters/upper.ts\nvar upper = (input) => {\n const toUpperCase = (str) => {\n return str.toLocaleUpperCase();\n };\n if (Array.isArray(input)) {\n return input.map(toUpperCase);\n } else {\n return toUpperCase(input);\n }\n};\n\n// src/filters/wikilink.ts\nvar wikiReference = (str, param, prefix) => {\n if (!str.trim()) {\n return str;\n }\n let alias = \"\";\n if (param) {\n alias = unquoteScalarParam(param) ?? alias;\n }\n try {\n const data = JSON.parse(str);\n const processObject = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n if (typeof value === \"object\" && value !== null) {\n return processObject(value);\n }\n return `${prefix}[[${key}|${value}]]`;\n }).flat();\n };\n if (Array.isArray(data)) {\n const result = data.flatMap((item) => {\n if (typeof item === \"object\" && item !== null) {\n return processObject(item);\n }\n return item ? alias ? `${prefix}[[${item}|${alias}]]` : `${prefix}[[${item}]]` : \"\";\n });\n return JSON.stringify(result);\n } else if (typeof data === \"object\" && data !== null) {\n return JSON.stringify(processObject(data));\n }\n } catch (error) {\n return alias ? `${prefix}[[${str}|${alias}]]` : `${prefix}[[${str}]]`;\n }\n return str;\n};\nvar wikilink = (str, param, context) => wikiReference(Array.isArray(context?.rawValue) ? JSON.stringify(context.rawValue) : str, param, \"\");\nvar embed = (str, param, context) => wikiReference(Array.isArray(context?.rawValue) ? JSON.stringify(context.rawValue) : str, param, \"!\");\n\n// src/filters/duration.ts\nimport dayjs3 from \"dayjs\";\nimport durationPlugin from \"dayjs/plugin/duration.js\";\ndayjs3.extend(durationPlugin);\nvar duration = (str, param, context) => {\n if (!str) {\n return str;\n }\n try {\n str = str.replace(/^[\"'](.*)[\"']$/g, \"$1\");\n const matches = str.match(/^P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?)?$/);\n if (!matches) {\n const seconds2 = parseInt(str, 10);\n if (!isNaN(seconds2)) {\n return formatDuration(dayjs3.duration(seconds2, \"seconds\"), param);\n }\n return str;\n }\n const [, years, months, days, hours, minutes, seconds] = matches;\n const totalSeconds = (years ? parseInt(years) * 365 * 24 * 3600 : 0) + (months ? parseInt(months) * 30 * 24 * 3600 : 0) + (days ? parseInt(days) * 24 * 3600 : 0) + (hours ? parseInt(hours) * 3600 : 0) + (minutes ? parseInt(minutes) * 60 : 0) + (seconds ? parseInt(seconds) : 0);\n const dur = dayjs3.duration(totalSeconds, \"seconds\");\n return formatDuration(dur, param);\n } catch (error) {\n reportFilterWarning(context, `Could not format duration: ${errorMessage(error)}`);\n return str;\n }\n};\nfunction formatDuration(dur, format) {\n if (!format) {\n if (dur.asHours() >= 1) {\n format = \"HH:mm:ss\";\n } else {\n format = \"mm:ss\";\n }\n }\n format = format.replace(/^[\"'(](.*)[\"')]$/g, \"$1\");\n const hours = Math.floor(dur.asHours());\n const minutes = dur.minutes();\n const seconds = dur.seconds();\n const parts = {\n \"HH\": padZero(hours),\n \"H\": hours.toString(),\n \"mm\": padZero(minutes),\n \"m\": minutes.toString(),\n \"ss\": padZero(seconds),\n \"s\": seconds.toString()\n };\n return format.replace(/HH|H|mm|m|ss|s/g, (match) => parts[match].toString());\n}\nfunction padZero(num) {\n return num.toString().padStart(2, \"0\");\n}\n\n// src/filters/yaml.ts\nvar validateYamlParams = (param) => {\n return !param || cleanScalarParam(param) === \"flow\" ? { valid: true } : { valid: false, error: 'accepts only \"flow\"; omit the parameter for block YAML' };\n};\nfunction propertyKey(param) {\n if (!param) return void 0;\n const parts = splitParams(unwrapParamList(param));\n return parts.length === 1 ? cleanParamToken(parts[0]) : void 0;\n}\nvar validateYamlPropertyParams = (param) => {\n return propertyKey(param)?.trim() ? { valid: true } : { valid: false, error: 'requires one non-empty property name (e.g., yaml_property:\"director\")' };\n};\nfunction flow(value) {\n return JSON.stringify(value).replace(\n /[\\u007f-\\u009f\\u2028\\u2029]/g,\n (character) => `\\\\u${character.charCodeAt(0).toString(16).padStart(4, \"0\")}`\n );\n}\nfunction keyText(key) {\n return /^[a-z_][\\w-]*$/i.test(key) && !/^(?:true|false|null|yes|no|on|off|y|n)$/i.test(key) ? key : flow(key);\n}\nfunction isBlock(value) {\n return value !== null && typeof value === \"object\" && Object.keys(value).length > 0;\n}\nfunction block(value) {\n if (Array.isArray(value)) {\n return value.length === 0 ? \"[]\" : value.map((item) => `- ${block(item).replace(/\\n/g, \"\\n \")}`).join(\"\\n\");\n }\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n return entries.length === 0 ? \"{}\" : entries.map(([key, item]) => isBlock(item) ? `${keyText(key)}:\n ${block(item).replace(/\\n/g, \"\\n \")}` : `${keyText(key)}: ${block(item)}`).join(\"\\n\");\n }\n return flow(value);\n}\nfunction containsNonFiniteNumber(value) {\n if (typeof value === \"number\") return !Number.isFinite(value);\n if (Array.isArray(value)) return value.some(containsNonFiniteNumber);\n if (value !== null && typeof value === \"object\") {\n return Object.values(value).some(containsNonFiniteNumber);\n }\n return false;\n}\nfunction collection(value, context) {\n try {\n if ((Array.isArray(context?.rawValue) || isPlainObject(context?.rawValue)) && containsNonFiniteNumber(context.rawValue)) {\n reportFilterWarning(\n context,\n \"Could not serialize a collection containing a number outside the finite JavaScript range\",\n \"INVALID_FILTER_INPUT\"\n );\n return void 0;\n }\n const parsed = JSON.parse(Array.isArray(context?.rawValue) ? JSON.stringify(context.rawValue) : value);\n if (parsed !== null && typeof parsed === \"object\") {\n if (containsNonFiniteNumber(parsed)) {\n reportFilterWarning(\n context,\n \"Could not serialize a JSON collection containing a number outside the finite JavaScript range\",\n \"INVALID_FILTER_INPUT\"\n );\n return void 0;\n }\n return parsed;\n }\n } catch {\n }\n return void 0;\n}\nfunction scalar(value, context) {\n const rawValue = context?.rawValue;\n if (rawValue === null || typeof rawValue === \"boolean\" || typeof rawValue === \"number\" && Number.isFinite(rawValue)) {\n return flow(rawValue);\n }\n return flow(value);\n}\nvar yaml = (value, param, context) => {\n const parsed = collection(value, context);\n return parsed ? cleanScalarParam(param) === \"flow\" ? flow(parsed) : block(parsed) : scalar(value, context);\n};\nvar yaml_property = (value, param, context) => {\n const key = propertyKey(param);\n if (!key?.trim()) return value;\n const parsed = collection(value, context);\n return parsed ? block({ [key]: parsed }) : `${keyText(key)}: ${scalar(value, context)}`;\n};\n\n// src/filters/where.ts\nvar validateWhereParams = (param) => {\n if (!param) return { valid: false, error: \"requires a property path and value\" };\n const parts = splitParams(unwrapParamList(param));\n if (parts.length !== 2) return { valid: false, error: \"requires exactly a property path and value\" };\n const path = unquoteParamToken(parts[0]);\n if (!path) return { valid: false, error: \"property path cannot be empty\" };\n if (path.split(\".\").some((segment) => segment === \"\")) {\n return { valid: false, error: \"property path cannot contain empty segments\" };\n }\n return { valid: true };\n};\nfunction isScalar(value) {\n return value === null || [\"string\", \"number\", \"boolean\"].includes(typeof value);\n}\nvar where = (value, param, context) => {\n const input = collectionInputValue(value, context);\n if (!Array.isArray(input)) return input;\n const args = context?.rawArguments ?? parseTypedParams(param) ?? [];\n const [path, expected] = args;\n if (typeof path !== \"string\" || !path || !isScalar(expected)) return input;\n return input.filter((item) => {\n const property = ownPropertyAtPath(item, path);\n return property.exists && property.value === expected;\n });\n};\n\n// src/filters/index.ts\nvar filterMetadata = {\n // Filters with validators\n calc: { example: 'calc:\"+10\"', validateParams: validateCalcParams },\n code: { example: 'code:\"typescript\"', validateParams: validateCodeParams },\n code_block: { example: 'code_block:\"typescript\"', validateParams: validateCodeParams },\n date_modify: { example: 'date_modify:\"+1 day\"', validateParams: validateDateModifyParams },\n hr: { example: \"hr:before\", validateParams: validateHrParams },\n highlight: { example: \"highlight:blue\", validateParams: validateHighlightParams },\n map: { example: \"map:x => x.name\", validateParams: validateMapParams },\n replace: { example: 'replace:\"old\":\"new\"', validateParams: validateReplaceParams },\n slice: { example: \"slice:0,5\", validateParams: validateSliceParams },\n sort: { example: 'sort:(\"name\", \"desc\")', validateParams: validateSortParams },\n sum: { example: 'sum:\"amount\"', validateParams: validateSumParams },\n template: { example: 'template:\"${name}\"', validateParams: validateTemplateParams },\n truncate: { example: 'truncate:(100, \"\\u2026\")', validateParams: validateTruncateParams },\n truncatewords: { example: 'truncatewords:(20, \"\\u2026\")', validateParams: validateTruncatewordsParams },\n where: { example: 'where:(\"published\", true)', validateParams: validateWhereParams },\n // Filters with optional parameters (examples for documentation)\n blockquote: {},\n bold: { example: \"bold:_\", validateParams: validateBoldParams },\n callout: { example: \"callout:info\" },\n camel: {},\n capitalize: {},\n compact: {},\n comment: {},\n date: { example: 'date:\"YYYY-MM-DD\"' },\n decode_uri: {},\n duration: {},\n embed: { example: 'embed:\"Preview\"' },\n encode_uri: {},\n escape_md: {},\n first: {},\n footnote: {},\n fragment_link: {},\n h1: {},\n h2: {},\n h3: {},\n h4: {},\n h5: {},\n h6: {},\n hard_break: {},\n image: {},\n indent: { example: \"indent:2\", validateParams: validateIndentParams },\n italic: { example: \"italic:_\", validateParams: validateItalicParams },\n join: { example: 'join:\", \"' },\n kebab: {},\n last: {},\n length: {},\n link: {},\n list: { example: \"list:numbered\", validateParams: validateListParams },\n lower: {},\n math: {},\n math_block: {},\n merge: {},\n nth: { example: \"nth:2\", validateParams: validateNthParams },\n number_format: {},\n object: { example: 'object:\"keys\"', validateParams: validateObjectParams },\n pascal: {},\n parse_json: {},\n remove_attr: {},\n remove_tags: {},\n replace_tags: {},\n reverse: {},\n round: { example: \"round:2\", validateParams: validateRoundParams },\n safe_name: { example: \"safe_name:windows\", validateParams: validateSafeNameParams },\n snake: {},\n split: { example: 'split:\",\"' },\n strip_attr: {},\n strip_md: {},\n strip_tags: {},\n stripmd: {},\n strike: {},\n table: {},\n table_pretty: {},\n title: {},\n trim: {},\n uncamel: {},\n unescape: {},\n unique: {},\n upper: {},\n wikilink: {},\n yaml: { example: \"yaml:flow\", validateParams: validateYamlParams },\n yaml_property: { example: 'yaml_property:\"director\"', validateParams: validateYamlPropertyParams }\n};\nvar standardFilterMetadata = Object.freeze(\n Object.fromEntries(\n Object.entries(filterMetadata).map(([name, metadata]) => [name, Object.freeze({ ...metadata })])\n )\n);\nvar filters = {\n blockquote,\n bold,\n calc,\n callout,\n camel,\n capitalize,\n compact,\n code,\n code_block,\n comment,\n date_modify,\n date,\n decode_uri,\n duration,\n embed,\n encode_uri,\n escape_md,\n first,\n footnote,\n fragment_link,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hard_break,\n highlight,\n hr,\n image,\n indent,\n italic,\n join,\n kebab,\n last,\n length,\n link,\n list,\n lower,\n map,\n math,\n math_block,\n merge,\n number_format,\n nth,\n object,\n pascal,\n parse_json,\n reverse,\n remove_attr,\n remove_tags,\n replace,\n replace_tags,\n round,\n safe_name,\n slice,\n snake,\n sort,\n split,\n sum,\n strip_attr,\n strip_md,\n strip_tags,\n stripmd: strip_md,\n // an alias for strip_md\n strike,\n table,\n table_pretty,\n template,\n title,\n trim,\n truncate,\n truncatewords,\n uncamel,\n unescape,\n unique,\n upper,\n wikilink,\n yaml,\n yaml_property,\n where\n};\nfunction asTemplateFilter(name, filter) {\n const wrapped = (value, param, context) => filter(value, param === \"\" ? void 0 : param, context);\n wrapped.metadata = standardFilterMetadata[name] ?? {};\n return wrapped;\n}\nvar standardFilters = Object.freeze(\n Object.fromEntries(\n Object.entries(filters).map(([name, filter]) => [name, asTemplateFilter(name, filter)])\n )\n);\nfunction splitFilterString(filterString) {\n const filters2 = [];\n const state = createParserState();\n for (let i = 0; i < filterString.length; i++) {\n const char = filterString[i];\n if (char === \"|\" && !state.escapeNext && !state.inQuote && !state.inRegex && state.curlyDepth === 0 && state.parenDepth === 0) {\n filters2.push(state.current.trim());\n state.current = \"\";\n } else {\n processCharacter(char, state);\n }\n }\n if (state.current) {\n filters2.push(state.current.trim());\n }\n return filters2;\n}\nfunction parseFilterString(filterString) {\n const parts = [];\n const state = createParserState();\n for (let i = 0; i < filterString.length; i++) {\n const char = filterString[i];\n if (char === \":\" && !state.escapeNext && !state.inQuote && !state.inRegex && state.parenDepth === 0 && parts.length === 0) {\n parts.push(state.current.trim());\n state.current = \"\";\n } else {\n processCharacter(char, state);\n }\n }\n if (state.current) {\n parts.push(state.current.trim());\n }\n return parts;\n}\nfunction isThenable(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\") && typeof value.then === \"function\";\n}\nfunction applyFiltersWithRegistry(value, filterString, registry, context) {\n if (!filterString) {\n return typeof value === \"string\" ? value : JSON.stringify(value) ?? \"\";\n }\n let processedValue = value;\n for (const filterExpression of splitFilterString(filterString)) {\n const [name, ...params] = parseFilterString(filterExpression);\n const filter = Object.prototype.hasOwnProperty.call(registry, name) ? registry[name] : void 0;\n if (!filter) continue;\n const stringInput = typeof processedValue === \"string\" ? processedValue : JSON.stringify(processedValue) ?? \"\";\n const output = filter(stringInput, params.join(\":\"), {\n ...context,\n rawValue: processedValue,\n rawArguments: parseTypedParams(params.join(\":\"))\n });\n if (isThenable(output)) {\n throw new TypeError(`Filter \"${name}\" is asynchronous; use engine.render() for async filters`);\n }\n if (typeof output === \"string\" && (output.startsWith(\"[\") || output.startsWith(\"{\"))) {\n try {\n processedValue = JSON.parse(output);\n continue;\n } catch {\n }\n }\n processedValue = output;\n }\n if (processedValue === void 0 || processedValue === null) return \"\";\n return typeof processedValue === \"string\" ? processedValue : JSON.stringify(processedValue) ?? \"\";\n}\n\nexport {\n TemplateRuntimeError,\n TemplateRenderError,\n defaultRenderLimits,\n tokenize,\n parse,\n validateVariables,\n validateFilters,\n createEngine,\n standardFilterMetadata,\n standardFilters,\n applyFiltersWithRegistry\n};\n//# sourceMappingURL=chunk-HIM7QCSR.js.map","/**\n * Knap template support for the markdown chart.\n *\n * A markdown portlet with a query renders its content as a Knap template rather\n * than as literal markdown, so a dashboard can carry a written summary that is\n * computed from live data instead of typed by hand.\n *\n * Knap resolves `a.b` as nested member access, so a cube-qualified result key\n * such as `Employees.avgSalary` is unreachable from a `for` loop or from the\n * `map` / `where` filters — those see a missing `Employees` object and yield\n * nothing. Every row is therefore offered three ways:\n *\n * rows aliased keys (`employees_avg_salary`) — loops and arithmetic\n * labelled human field labels as keys — `{{ labelled | table }}` headers\n * data the raw dotted keys — `{{ data[0][\"Employees.avgSalary\"] }}`\n *\n * `first` and `last` exist because Knap's filters stringify on assignment:\n * `{% set top = rows | sort:\"x\" %}` makes `top` a string, so a template cannot\n * sort and then index. The query's own ordering has to be surfaced directly.\n */\n\nimport {\n createEngine,\n parse,\n standardFilters,\n type TemplateEngine,\n type TemplateVariables\n} from 'knap'\n\n/** One result field, in the three namings a template can address it by. */\nexport interface MarkdownTemplateField {\n /** The raw cube-qualified key, e.g. `Employees.avgSalary`. */\n key: string\n /** The template-safe alias, e.g. `employees_avg_salary`. */\n alias: string\n /** The human-readable label, e.g. `Avg Salary`. */\n label: string\n}\n\n/** The variables a markdown template is rendered against. */\nexport interface MarkdownTemplateContext {\n rows: Record<string, unknown>[]\n labelled: Record<string, unknown>[]\n data: Record<string, unknown>[]\n rowCount: number\n first: Record<string, unknown> | null\n last: Record<string, unknown> | null\n fields: MarkdownTemplateField[]\n}\n\n/** A rendered template, or the diagnostics explaining why it did not render. */\nexport interface MarkdownTemplateResult {\n output: string\n errors: MarkdownTemplateDiagnostic[]\n /**\n * References the template makes that resolve to nothing. Knap renders an\n * unknown name as an empty string, so a misspelt field produces a blank\n * heading rather than any complaint — the failure is invisible at exactly the\n * moment the author needs to see it.\n */\n warnings: MarkdownTemplateDiagnostic[]\n}\n\nexport interface MarkdownTemplateDiagnostic {\n message: string\n line: number\n column: number\n}\n\n/**\n * Turn one segment of a field name into lower snake case.\n *\n * Splitting on camel-case boundaries is what keeps `avgSalary` readable as\n * `avg_salary`; a plain lower-casing would give `avgsalary`, which is both\n * hard to guess and hard to read back in a template.\n */\nfunction snakeSegment(segment: string): string {\n return segment\n .replace(/([a-z0-9])([A-Z])/g, '$1_$2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/[^A-Za-z0-9]+/g, '_')\n .toLowerCase()\n}\n\n/**\n * Derive the template alias for a cube-qualified field key.\n *\n * `Employees.avgSalary` becomes `employees_avg_salary`. A key that would start\n * with a digit is prefixed, since Knap identifiers cannot.\n */\nexport function aliasForField(key: string): string {\n const alias = key\n .split('.')\n .map(snakeSegment)\n .filter(Boolean)\n .join('_')\n .replace(/_+/g, '_')\n .replace(/^_|_$/g, '')\n\n if (!alias) return 'field'\n return /^[0-9]/.test(alias) ? `_${alias}` : alias\n}\n\n/**\n * Claim a name, suffixing it until it is unique.\n *\n * Two fields must never collapse onto one template variable — a silently lost\n * column is far worse than an ugly `_2`.\n */\nfunction claimUnique(name: string, taken: Set<string>): string {\n if (!taken.has(name)) {\n taken.add(name)\n return name\n }\n let suffix = 2\n while (taken.has(`${name}_${suffix}`)) suffix++\n const unique = `${name}_${suffix}`\n taken.add(unique)\n return unique\n}\n\n/**\n * Collect the result's field keys in a stable order.\n *\n * Driven by the rows rather than by the query, so a field the engine did not\n * return simply is not offered, and a field only some rows carry still is.\n */\nfunction collectKeys(rows: Record<string, unknown>[]): string[] {\n const keys: string[] = []\n const seen = new Set<string>()\n for (const row of rows) {\n for (const key of Object.keys(row)) {\n if (!seen.has(key)) {\n seen.add(key)\n keys.push(key)\n }\n }\n }\n return keys\n}\n\n/**\n * Build the template variables for a set of result rows.\n *\n * @param rows - raw result rows, as `resultSet.rawData()` returns them\n * @param getFieldLabel - resolves a field key to its human label; pass the\n * value of `useCubeFieldLabel()` so labels match the rest of the app\n */\nexport function buildTemplateContext(\n rows: Record<string, unknown>[],\n getFieldLabel: (key: string) => string = (key) => key\n): MarkdownTemplateContext {\n const keys = collectKeys(rows)\n\n const aliasTaken = new Set<string>()\n const labelTaken = new Set<string>()\n const fields: MarkdownTemplateField[] = keys.map((key) => ({\n key,\n alias: claimUnique(aliasForField(key), aliasTaken),\n label: claimUnique(safeLabel(getFieldLabel, key), labelTaken)\n }))\n\n const project = (pick: (field: MarkdownTemplateField) => string) =>\n rows.map((row) => {\n const projected: Record<string, unknown> = {}\n for (const field of fields) {\n if (field.key in row) projected[pick(field)] = row[field.key]\n }\n return projected\n })\n\n const aliased = project((field) => field.alias)\n\n return {\n rows: aliased,\n labelled: project((field) => field.label),\n data: rows,\n rowCount: rows.length,\n first: aliased[0] ?? null,\n last: aliased.length > 0 ? aliased[aliased.length - 1] : null,\n fields\n }\n}\n\n/**\n * Resolve a field label without letting a provider failure break the chart.\n * Falls back to the raw key, which is always meaningful.\n */\nfunction safeLabel(getFieldLabel: (key: string) => string, key: string): string {\n try {\n return getFieldLabel(key) || key\n } catch {\n return key\n }\n}\n\n/** The variables every template is given, whatever the query returned. */\nconst CONTEXT_NAMES = ['rows', 'labelled', 'data', 'rowCount', 'first', 'last', 'fields']\n\n/** Variables whose members are result fields, so `x.alias` must be a real one. */\nconst ROW_SHAPED = ['first', 'last']\n\n/** The members a `fields` entry carries. */\nconst FIELD_MEMBERS = ['key', 'alias', 'label']\n\n/** A Knap identifier, which carries its dotted access as a `path`. */\ninterface IdentifierNode {\n type: 'identifier'\n name: string\n path?: string[]\n line: number\n column: number\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n\nfunction isIdentifier(node: unknown): node is IdentifierNode {\n return isRecord(node) && node.type === 'identifier' && typeof node.name === 'string'\n}\n\n/** Depth-first walk over the parsed template, visiting every node once. */\nfunction walkNodes(node: unknown, visit: (node: Record<string, unknown>) => void): void {\n if (Array.isArray(node)) {\n for (const child of node) walkNodes(child, visit)\n return\n }\n if (!isRecord(node)) return\n visit(node)\n for (const value of Object.values(node)) walkNodes(value, visit)\n}\n\n/**\n * Map each `{% for %}` iterator to what it iterates.\n *\n * A loop variable is only checkable once we know its source: `row` in\n * `for row in rows` holds a result row, so its members are field aliases, while\n * `f` in `for f in fields` holds metadata instead.\n */\nfunction collectLoopSources(ast: unknown): Map<string, string> {\n const sources = new Map<string, string>()\n walkNodes(ast, (node) => {\n if (node.type !== 'for' || typeof node.iterator !== 'string') return\n const iterable = node.iterable\n sources.set(node.iterator, isIdentifier(iterable) ? iterable.name : '')\n })\n return sources\n}\n\n/** What a root variable holds, which decides how its members are checked. */\ntype RootKind =\n /** A row under aliases — members must be real aliases. */\n | { kind: 'aliased' }\n /** A `fields` entry — members are the metadata keys. */\n | { kind: 'metadata' }\n /** A raw row with dotted keys — dotted access never resolves on it. */\n | { kind: 'raw' }\n /** Not checkable, e.g. `labelled`, whose keys contain spaces. */\n | { kind: 'skip' }\n\nfunction rootKind(root: string, loopSources: Map<string, string>): RootKind {\n if (ROW_SHAPED.includes(root)) return { kind: 'aliased' }\n\n switch (loopSources.get(root)) {\n case 'rows': return { kind: 'aliased' }\n case 'fields': return { kind: 'metadata' }\n case 'data': return { kind: 'raw' }\n default: return { kind: 'skip' }\n }\n}\n\n/**\n * Find references that will silently render as nothing.\n *\n * Two mistakes account for nearly all of them: naming a variable the context\n * does not provide, and reading a field off a row under a name that is not its\n * alias. Both look identical in the output — a blank space where a value should\n * be — so they are reported with the names that would have worked.\n */\nexport function findUnknownReferences(\n template: string,\n context: MarkdownTemplateContext\n): MarkdownTemplateDiagnostic[] {\n const { ast, errors } = parse(template)\n // A template that does not parse has real errors to fix first.\n if (errors.length > 0) return []\n\n const aliases = context.fields.map((field) => field.alias)\n const loopSources = collectLoopSources(ast)\n const knownRoots = new Set([...CONTEXT_NAMES, ...loopSources.keys()])\n const available = aliases.length > 0 ? aliases.join(', ') : CONTEXT_NAMES.join(', ')\n\n const scope: ReferenceScope = { aliases, loopSources, knownRoots, available }\n const diagnostics: MarkdownTemplateDiagnostic[] = []\n const reported = new Set<string>()\n\n walkNodes(ast, (node) => {\n if (!isIdentifier(node)) return\n const message = describeReference(node.path ?? [node.name], scope)\n if (message) addOnce(diagnostics, reported, node, message)\n })\n\n return diagnostics\n}\n\n/** What a template may legitimately name, derived from the context and its loops. */\ninterface ReferenceScope {\n aliases: string[]\n loopSources: Map<string, string>\n knownRoots: Set<string>\n /** The alias list as prose, for the \"Available: …\" half of a message. */\n available: string\n}\n\n/** The problem with one reference, or null if there is none. */\nfunction describeReference(path: string[], scope: ReferenceScope): string | null {\n const [root, member] = path\n\n if (!scope.knownRoots.has(root)) {\n return `Unknown variable \"${root}\". Available: ${CONTEXT_NAMES.join(', ')}.`\n }\n if (member === undefined) return null\n\n return describeMember(path, member, scope)\n}\n\n/** The problem with reading `member` off a known root, or null if there is none. */\nfunction describeMember(path: string[], member: string, scope: ReferenceScope): string | null {\n const root = path[0]\n\n switch (rootKind(root, scope.loopSources).kind) {\n case 'raw':\n // `data` keeps the cube-qualified keys, and Knap reads `r.Employees.count`\n // as two levels of nesting rather than one literal key, so it resolves to\n // nothing. Bracket syntax is the only way in.\n return `\"${root}\" holds raw rows, so dotted access does not resolve. `\n + `Use ${root}[\"${path.slice(1).join('.')}\"], or loop over rows and use ${root}.${scope.aliases[0] ?? 'alias'}.`\n case 'aliased':\n return unknownField(member, scope.aliases, scope.available)\n case 'metadata':\n return unknownField(member, FIELD_MEMBERS, FIELD_MEMBERS.join(', '))\n case 'skip':\n return null\n }\n}\n\n/** \"Unknown field\" with the names that would have worked, or null if it is known. */\nfunction unknownField(member: string, known: string[], available: string): string | null {\n return known.includes(member) ? null : `Unknown field \"${member}\". Available: ${available}.`\n}\n\n/** Record a diagnostic once per name, so a loop does not repeat the same advice. */\nfunction addOnce(\n diagnostics: MarkdownTemplateDiagnostic[],\n reported: Set<string>,\n node: IdentifierNode,\n message: string\n): void {\n if (reported.has(message)) return\n reported.add(message)\n diagnostics.push({ message, line: node.line, column: node.column })\n}\n\n/**\n * Render limits for a dashboard portlet.\n *\n * Knap's defaults allow a five-megabyte output, which is not a size any portlet\n * should reach. These are tightened so that a runaway loop over a large result\n * fails with a diagnostic rather than locking up the browser tab.\n */\nconst RENDER_LIMITS = {\n maxTemplateLength: 100_000,\n maxOutputLength: 500_000,\n maxValueLength: 100_000,\n maxOperations: 500_000,\n maxDepth: 50\n}\n\nlet engine: TemplateEngine | null = null\n\n/**\n * The shared Knap engine.\n *\n * `allowRegex` is off: Knap's own guidance is that native regexes need worker\n * or process isolation before they are safe on untrusted input, and a template\n * whose variables come from the warehouse is not hand-typed input.\n */\nfunction getEngine(): TemplateEngine {\n if (!engine) {\n engine = createEngine({ filters: standardFilters, allowRegex: false })\n }\n return engine\n}\n\n/**\n * Check a template for syntax errors and unknown filters without rendering it.\n * Synchronous, so an editor can show diagnostics as the author types.\n */\nexport function validateTemplate(template: string): MarkdownTemplateDiagnostic[] {\n if (!template.trim()) return []\n try {\n return getEngine()\n .validate(template)\n .map((error) => ({ message: error.message, line: error.line, column: error.column }))\n } catch (error) {\n return [{ message: toMessage(error), line: 1, column: 1 }]\n }\n}\n\n/**\n * Render a markdown template against result rows.\n *\n * Never throws. A broken template reports its diagnostics so the portlet can\n * show them in place, rather than taking the dashboard down with it.\n */\nexport async function renderMarkdownTemplate(\n template: string,\n context: MarkdownTemplateContext\n): Promise<MarkdownTemplateResult> {\n try {\n // Listed field by field rather than spread: an interface is not assignable\n // to Knap's `Record<string, unknown>` variables, and writing them out keeps\n // this the one authoritative list of what a template can reference.\n const variables: TemplateVariables = {\n rows: context.rows,\n labelled: context.labelled,\n data: context.data,\n rowCount: context.rowCount,\n first: context.first,\n last: context.last,\n fields: context.fields\n }\n\n const result = await getEngine().render(template, { variables }, { limits: RENDER_LIMITS })\n const errors = result.errors.map((error) => ({\n message: error.message,\n line: error.line,\n column: error.column\n }))\n return {\n output: result.output,\n errors,\n // Only worth computing when the template ran: a parse failure has real\n // errors to fix first, and every reference would look unresolved.\n warnings: errors.length > 0 ? [] : findUnknownReferences(template, context)\n }\n } catch (error) {\n return {\n output: '',\n errors: [{ message: toMessage(error), line: 1, column: 1 }],\n warnings: []\n }\n }\n}\n\nfunction toMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error)\n}\n","/**\n * Presentation helpers and the template hook for MarkdownChart.\n *\n * The chart resolves a lot of small styling choices from its display config —\n * heading scale, alignment, accent border — and, since gaining a template mode,\n * also runs an async render. Both live here so the component itself stays a\n * readable sequence of \"read config, render body\".\n */\n\nimport { useContext, useEffect, useMemo, useState } from 'react'\nimport { sanitizer } from 'markdown-to-jsx'\nimport type { CSSProperties } from 'react'\nimport { CubeMetaContext, type CubeMetaContextValue } from '../../providers/CubeMetaContext.js'\nimport { queryHasMembers } from '../../../shared/query-shape.js'\nimport type { CubeQuery } from '../../types.js'\nimport {\n buildTemplateContext,\n renderMarkdownTemplate,\n type MarkdownTemplateDiagnostic,\n type MarkdownTemplateResult\n} from './markdownTemplate.js'\n\n/** Heading scale per fontSize setting. */\nconst HEADER_SIZES: Record<string, Record<number, string>> = {\n small: { 1: 'dc:text-lg', 2: 'dc:text-base', 3: 'dc:text-sm' },\n medium: { 1: 'dc:text-3xl', 2: 'dc:text-2xl', 3: 'dc:text-xl' },\n large: { 1: 'dc:text-5xl', 2: 'dc:text-4xl', 3: 'dc:text-3xl' }\n}\n\nconst HEADER_MARGINS: Record<number, string> = { 1: 'dc:mb-4', 2: 'dc:mb-3', 3: 'dc:mb-2' }\n\nconst BODY_SIZES: Record<string, string> = {\n small: 'dc:text-sm',\n medium: 'dc:text-lg',\n large: 'dc:text-xl'\n}\n\nconst ALIGNMENTS: Record<string, string> = {\n left: 'dc:text-left',\n center: 'dc:text-center',\n right: 'dc:text-right'\n}\n\n/** Body text size class for a fontSize setting. */\nexport function bodySizeClass(fontSize: string): string {\n return BODY_SIZES[fontSize] ?? BODY_SIZES.medium\n}\n\n/** Text alignment class for an alignment setting. */\nexport function alignmentClass(alignment: string): string {\n return ALIGNMENTS[alignment] ?? ALIGNMENTS.left\n}\n\n/** Heading class pair for one level, falling back to the medium scale. */\nfunction headingProps(fontSize: string, level: 1 | 2 | 3, accentColor: string) {\n const size = HEADER_SIZES[fontSize]?.[level] ?? HEADER_SIZES.medium[level]\n return {\n props: {\n className: `dc:font-bold ${size} ${HEADER_MARGINS[level]}`,\n style: { color: accentColor }\n }\n }\n}\n\n/**\n * markdown-to-jsx options for the chart's themed elements.\n *\n * The `sanitizer` is markdown-to-jsx's own, named rather than left implicit:\n * template output can carry warehouse values into link and image destinations,\n * so the protocol policy should be visible in our code.\n */\nexport function buildMarkdownOptions(accentColor: string, fontSize: string) {\n return {\n sanitizer: (value: string) => sanitizer(value),\n overrides: {\n h1: headingProps(fontSize, 1, accentColor),\n h2: headingProps(fontSize, 2, accentColor),\n h3: headingProps(fontSize, 3, accentColor),\n p: { props: { className: 'dc:mb-3 dc:leading-relaxed text-dc-text' } },\n strong: { props: { className: 'dc:font-bold text-dc-text' } },\n em: { props: { className: 'dc:italic text-dc-text' } },\n a: {\n props: {\n className: 'dc:hover:underline dc:transition-colors',\n target: '_blank',\n rel: 'nofollow noopener noreferrer',\n style: { color: accentColor }\n }\n },\n code: { props: { className: 'dc:px-1 dc:py-0.5 dc:rounded-sm dc:text-xs bg-dc-surface-secondary text-dc-accent dc:font-mono' } },\n pre: { props: { className: 'dc:rounded-lg dc:p-3 dc:my-2 dc:overflow-x-auto dc:text-xs bg-dc-surface-secondary text-dc-text dc:font-mono' } },\n ul: { props: { className: 'dc:list-disc dc:ml-6 dc:mb-3 text-dc-text dc:space-y-1' } },\n ol: { props: { className: 'dc:list-decimal dc:ml-6 dc:mb-3 text-dc-text dc:space-y-1' } },\n li: { props: { className: 'dc:mb-1 text-dc-text' } },\n blockquote: { props: { className: 'dc:border-l-4 border-dc-accent dc:pl-3 dc:my-2 dc:italic text-dc-text-secondary' } },\n hr: {\n props: {\n className: 'dc:my-4 dc:border-none',\n style: { height: '2px', backgroundColor: accentColor, opacity: 0.3 }\n }\n },\n table: { props: { className: 'dc:w-full dc:border-collapse dc:my-3 dc:text-sm' } },\n thead: { props: { className: 'bg-dc-surface-secondary' } },\n th: { props: { className: 'dc:px-3 dc:py-2 dc:text-left dc:font-semibold dc:text-xs text-dc-text-secondary dc:uppercase dc:tracking-wider border-dc-border dc:border-b' } },\n td: { props: { className: 'dc:px-3 dc:py-2 text-dc-text border-dc-border dc:border-b' } },\n tr: { props: { className: 'dc:hover:opacity-80' } }\n }\n }\n}\n\n/** The accent stripe, on whichever side the config names. */\nexport function buildAccentBorderStyle(\n accentBorder: string,\n accentColor: string,\n transparentBackground: boolean\n): CSSProperties {\n if (accentBorder === 'none') return {}\n\n const side = accentBorder.charAt(0).toUpperCase() + accentBorder.slice(1)\n const style: CSSProperties = {\n [`border${side}`]: `4px solid ${accentColor}`\n }\n // A transparent block has no padding of its own, so the stripe would sit\n // flush against the text.\n if (transparentBackground && accentBorder === 'left') {\n style.paddingLeft = '12px'\n }\n return style\n}\n\n/** The palette colour at `index`, or the chart default. */\nexport function resolveAccentColor(\n colors: string[] | undefined,\n index: number\n): string {\n return colors && index < colors.length ? colors[index] : '#8884d8'\n}\n\n/** Rows arrive as `unknown[]`; only plain objects can become template variables. */\nexport function toTemplateRows(data: unknown): Record<string, unknown>[] {\n if (!Array.isArray(data)) return []\n return data.filter(\n (row): row is Record<string, unknown> =>\n typeof row === 'object' && row !== null && !Array.isArray(row)\n )\n}\n\nexport interface MarkdownTemplateState {\n /** Whether the content is a template rather than literal markdown. */\n isTemplate: boolean\n /** The rendered body, or null before the first async render lands. */\n output: string | null\n errors: MarkdownTemplateDiagnostic[]\n /** References that resolved to nothing, reported alongside the output. */\n warnings: MarkdownTemplateDiagnostic[]\n}\n\n/**\n * Render the chart's content as a Knap template when a query is attached.\n *\n * A real query is what distinguishes the two modes, and it has to be the\n * members rather than the object: several callers pass `{}` for \"no query\", and\n * treating that as a template would silently reinterpret every text block.\n */\nexport function useMarkdownTemplate(\n content: string,\n data: unknown,\n queryObject: CubeQuery | undefined\n): MarkdownTemplateState {\n const isTemplate = queryHasMembers(queryObject)\n const rows = useMemo(() => toTemplateRows(data), [data])\n\n // Field labels give `{{ labelled | table }}` readable column headers. Read\n // from context directly rather than through useCubeFieldLabel, which throws\n // outside a CubeProvider — the chart also renders in previews and in the MCP\n // app, where losing labels is fine but crashing is not.\n const metaContext = useContext(CubeMetaContext) as CubeMetaContextValue | null\n const getFieldLabel = metaContext?.getFieldLabel\n\n const [result, setResult] = useState<MarkdownTemplateResult | null>(null)\n\n useEffect(() => {\n if (!isTemplate || !content.trim()) {\n setResult(null)\n return\n }\n\n let cancelled = false\n const context = buildTemplateContext(rows, getFieldLabel)\n void renderMarkdownTemplate(content, context).then((rendered) => {\n if (!cancelled) setResult(rendered)\n })\n\n return () => {\n cancelled = true\n }\n }, [isTemplate, content, rows, getFieldLabel])\n\n return {\n isTemplate,\n output: result?.output ?? null,\n errors: result?.errors ?? [],\n warnings: result?.warnings ?? []\n }\n}\n","import React, { useMemo } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport Markdown from 'markdown-to-jsx'\nimport type { ChartProps } from '../../types.js'\nimport type { MarkdownTemplateDiagnostic } from './markdownTemplate.js'\nimport {\n alignmentClass,\n bodySizeClass,\n buildAccentBorderStyle,\n buildMarkdownOptions,\n resolveAccentColor,\n useMarkdownTemplate\n} from './MarkdownChart.helpers.js'\n\n/**\n * A template that failed to parse or render reports its diagnostics in place.\n * Showing them beats showing nothing: the author is usually looking straight at\n * the portlet while editing, and a thrown error would take the dashboard down.\n */\nfunction Diagnostics({ heading, items, tone }: {\n heading: string\n items: MarkdownTemplateDiagnostic[]\n tone: 'error' | 'warning'\n}) {\n return (\n <>\n <div className={`dc:font-semibold dc:mb-2 ${tone === 'error' ? 'text-dc-error' : 'text-dc-warning'}`}>\n {heading}\n </div>\n <ul className=\"dc:list-disc dc:ml-5 dc:space-y-1 dc:text-xs text-dc-text-secondary\">\n {items.map((item, index) => (\n <li key={`${item.line}:${item.column}:${index}`}>\n <span className=\"dc:font-mono\">{`${item.line}:${item.column}`}</span>\n {` ${item.message}`}\n </li>\n ))}\n </ul>\n </>\n )\n}\n\nconst MarkdownChart = React.memo(function MarkdownChart({\n data,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const { t } = useTranslation()\n const content = displayConfig.content || ''\n const fontSize = displayConfig.fontSize || 'medium'\n const transparentBackground = !!displayConfig.transparentBackground\n\n const accentColor = resolveAccentColor(colorPalette?.colors, displayConfig.accentColorIndex ?? 0)\n\n // With a query attached the content is a Knap template over the result rows\n // rather than literal markdown. Without one this is inert.\n const template = useMarkdownTemplate(content, data, queryObject)\n\n const markdownOptions = useMemo(\n () => buildMarkdownOptions(accentColor, fontSize),\n [accentColor, fontSize]\n )\n\n if (!content.trim()) {\n if (transparentBackground) return null\n\n return (\n <div\n className=\"dc:flex dc:items-center dc:justify-center dc:w-full dc:h-full\"\n style={{ height: height === \"100%\" ? \"100%\" : height }}\n >\n <div className=\"dc:text-center text-dc-text-muted\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.markdown.noContent')}</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">{t('chart.runtime.markdown.addContent')}</div>\n </div>\n </div>\n )\n }\n\n const containerStyle = {\n height: height === \"100%\" ? \"100%\" : height,\n ...buildAccentBorderStyle(displayConfig.accentBorder || 'none', accentColor, transparentBackground)\n }\n const padding = transparentBackground ? '' : 'dc:p-4 '\n\n if (template.errors.length > 0) {\n return (\n <div\n className={`dc-markdown-content dc:w-full dc:overflow-auto ${padding}dc:text-sm`}\n style={containerStyle}\n >\n <Diagnostics\n heading={t('chart.runtime.markdown.templateError')}\n items={template.errors}\n tone=\"error\"\n />\n </div>\n )\n }\n\n // In template mode the rendered output replaces the raw content. Before the\n // first async render lands there is nothing to show, so the body is empty for\n // one paint rather than flashing the un-rendered template source.\n const body = template.isTemplate ? (template.output ?? '') : content\n const alignment = alignmentClass(displayConfig.alignment || 'left')\n\n return (\n <div\n className={`dc-markdown-content dc:w-full dc:overflow-auto ${padding}${bodySizeClass(fontSize)} ${alignment}`}\n style={containerStyle}\n >\n {/* Shown above the body, not instead of it: the rest of the narrative is\n usually correct, and the blank it leaves behind is the only other clue\n the author gets. */}\n {template.warnings.length > 0 ? (\n <div className=\"dc:mb-3 dc:pb-2 dc:text-sm border-dc-border dc:border-b\">\n <Diagnostics\n heading={t('chart.runtime.markdown.templateWarning')}\n items={template.warnings}\n tone=\"warning\"\n />\n </div>\n ) : null}\n {body ? <Markdown options={markdownOptions}>{body}</Markdown> : null}\n </div>\n )\n})\n\nexport default MarkdownChart\n"],"ignoreList":[1,2,3,4,5,6,7,8,9,10],"mappings":"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"}
1
+ {"version":3,"file":"chart-markdown-DtgpU3xd.js","names":["pi","t","Ri","hr","dayjs","customParseFormat","isoWeek","weekOfYear","advancedFormat","dayjs2","customParseFormat2","isoWeek2","weekOfYear2","advancedFormat2","dayjs3","durationPlugin","sanitizer","_Fragment","Markdown","__toESM","__exportAll","__commonJSMin","useTranslation","CubeMetaContext","rr","React","Fragment$1","queryHasMembers","query","count","value","e","t","n","r","d","N","k","Er","M","re","Oe","_e","ur","U","lr","Ht","F","Cr","me","ke","he","ae","xt","qe","Ke","ht","Ge","st","pr","$t","Pr","qr","Mt","on","Wn","zn","Zn","gt","jr","ar","ge","Dr","Ir","Or","ye","Lr","Bt","ir","fr","Qn","Vn","Yn","qn","An","ln","Pt","W","z","J","ie","ce","Ct","_r","v","oa","ea","a","i","xi","o","Ii","Oi","Li","fn","Aa","Nr","t$1","jn","dr","Ve","je","xe","gr","ra","nt","Xr","ta","rt","na","yi","Rr","yr","la","Ca","fa","et","_a","da","Xt","ca","Mi","ua","tt","_n","Ra","A","C","_","Bi","aa","dn","u","c","Ha","Jr","ha","Pi","sa","ia","Jt","$a","Di","Dt","cn","ga","un","Ka","Ga","$n","Nt","Xi","Ta","Rn","Sa","Fa","Ea","Ua","Wa","za","Ji","Ki","Gi","Fi","Ui","gn","Na","wr","R","s","T","I","O","f","h","g","S","p","H","w","E","m","y","x","B","cr","Wi","Za","Ft","_t","or","vt","ka","bn","vn","Tn","Ut","Ae","q","St","wa","er","Wr","oe","te","Le","zi","Zi","dt","Qi","Fr","ma","ba","pa","Vi","l","D","Ia","Yi","qi","L","Z","ne","ve","Ur","Qa","Kr","ft","Oa","La","P","Q","Pe","Ee","ue","He","Fe","X","be","j","se","le","K","we","$e","Ce","Re","We","Te","Me","Be","ze","V","Ne","Y","pe","Ze","b","fe","tr","ee","sr","de","Se","Ye","De","Xe","Je","zr","xr","Ie","Zr","mt","br","Qr","Mr","vr","nr","Tr","ot","Vr","$r","zt","kr","Gr","ji","Zt","Sn","Va","eo","Ue","At","Ar","lt","ii","oi","Ai","yn","xn","Vt","Ci","Mn","_i","di","ct","Sr","Bn","Pn","bt","Yt","Dn","qt","Xn","Jn","pt","ui","jt","en","Kn","Gn","It","rn","Qe","Br","tn","Fn","Ot","Yr","ut","yt","Hi","hi","si","$i","gi","vi","Ti","nn","Un","Rt","Ei","an","Ni","ki","wi","mi","ya","xa","ro","to","no","mr","ao","pn","io","oo","Ao","lo","Ma","Ba","Co","fo","Kt","Pa","En","Da","Nn","Xa","kn","Hn","Hr","_o","hn","Wt","Gt","sn","Ja","Ya","Qt","wn","co","uo","Ro","mn","at","Ho","ho","so","Tt","$o","ja","kt","In","it","On","hr$1","ei","ri","vo","To","So","wt","Eo","Fo","parseRegexPattern","match","pattern","unwrapParamList","trimmed","quote","escaped","depth","index","character","unquoteParamToken","decodeStringEscape","decodeParamEscapes","cleanParamToken","unquoteScalarParam","cleanScalarParam","unquoted","splitParamList","tokens","splitParams","normalizeParamList","token","parseTypedParamToken","splitParamPair","number","parseTypedParams","parenDepth","curlyDepth","bracketDepth","parts","current","reportFilterWarning","errorMessage","error","require_dayjs_min","exports","module","$","require_isoWeek","require_weekOfYear","require_customParseFormat","require_advancedFormat","require_duration","import_dayjs_min","import_isoWeek","import_weekOfYear","import_customParseFormat","import_advancedFormat","import_duration","TemplateRuntimeError","message","code2","line","column","TemplateRenderError","errors","defaultRenderLimits","resolveLimits","result","limits","name","limitError","RenderBudget","length2","pending","size","entries","value2","key","property","KEYWORDS","\"if\"","\"elseif\"","\"else\"","\"endif\"","\"for\"","\"in\"","\"endfor\"","\"set\"","\"and\"","\"or\"","\"not\"","\"contains\"","\"true\"","\"false\"","\"null\"","CHAR_OPEN_BRACE","CHAR_PERCENT","CHAR_HASH","tokenize","state","tokenizeText","startPos","startLine","startColumn","input","brace","next","isVariable","isTag","isComment","advanceTo","end","advance","tokenizeVariable","skipWhitespace","lookAhead","nextChar","advanceChar","varStartIndex","actualIndex","varStartToken","tokenizeTag","tagStartIndex","tagStartToken","tokenizeExpression","mode","char","isDigit","isIdentifierStart","tokenizeString","rawValue","tokenizeEscapedArgument","tokenizeNumber","tokenizeIdentifier","isIdentifierChar","tokenizeCssSelector","lowerValue","keywordType","inString","str","target","lastNewline","newlines","isWhitespace","parse","options","parseTokens","parseFailure","ast","parseTemplate","child","withDepth","parse2","nodes","isAtEnd","node","parseNode","peek","parseText","parseVariable","parseTag","advance2","check","startToken","trimLeft","first2","expression","parseExpression","skipToEndOfVariable","trimRight","keywordToken","parseIfStatement","parseForStatement","parseSetStatement","skipToEndOfTag","condition","consequent","parseBody","elseifs","checkTagKeyword","consumeTagStart","elseifCondition","elseifBody","alternate","consumeTagEnd","iterator","iterable","body","variable","parseBodyInner","stopKeywords","trimClosingLine","after","standalone","last2","parseNullishExpression","left","parseFilterExpression","opToken","right","parseFilterArgument","savedPos","idToken","braceDepth","parsePrimaryExpression","formatString","val","combined","isStringPair","numberToken","parseOrExpression","filterToken","args","arg","formatStr","nextArg","parseOrExpressionInner","parseAndExpression","parseNotExpression","parseNotExpressionInner","argument","parseComparisonExpression","parsePostfixExpression","op","\"op_eq\"","\"op_neq\"","\"op_gt\"","\"op_lt\"","\"op_gte\"","\"op_lte\"","\"op_contains\"","dot","property2","part","bracketToken","expr","strToken","numToken","boolToken","nullToken","rest","type","keywords","nextPos","levenshteinDistance","matrix","expressionToString","base","filterArgs","argsToParamString","isLiteralFilterArgument","findSimilarFilter","bestMatch","bestDistance","filterName","filterNames","distance","collectFiltersFromExpression","usages","collectFilters","processNode","elseif","validateFilters","knownFilterNames","registryMetadata","usage","similar","meta","paramString","ownProperty","descriptor","ownPropertyAtPath","path","segment","renderAST","output","context","nodeOutput","renderNode","appendNodeOutput","renderText","renderVariable","renderIf","renderFor","renderSet","text","trimLeadingWhitespace","valueToString","evaluateExpression","toRenderError","isTruthy","renderNodes","iterableValue","iterableArray","parsed","results","outputLength","item","loop","loopContext","trimTrailingWhitespace","evaluateLiteral","evaluateIdentifier","evaluateBinary","evaluateUnary","evaluateFilter","evaluateMember","resolveVariable","object2","left2","evaluateContains","argValue","rawArguments","stringValue","isQuotedString","searchValue","wrappedValue","variables","getNestedValue","keys","obj","arrayKey","indexStr","baseValue","prefix","normalizeParserError","metadataForRegistry","filters2","filter","createEngine","filterMetadata2","parseTemplate2","template2","validate","templateOrAst","render","renderOptions","budget","validationErrors","warnings","warningKeys","resolverContext","rendered","validateResolvedParams","validation","param","templateWarning","warning","warningKey","blockquote","processBlockquote","processArray","arr","parsedInput","finiteNumber","isPlainObject","prototype","inputValue","collectionText","allowLeadingWhitespace","collectionInputValue","arrayInputValue","mapStringValues","formatter","markdownFilter","wrapInline","open","content","start","close","splitBlankLinePadding","leading","withoutLeading","trailing","isMultiline","formatHeading","level","h1","h2","h3","h4","h5","h6","markdownPunctuation","escape_md","hard_break","validateMarkerParam","marker","markers","validateBoldParams","validateItalicParams","bold","italic","strike","highlightColorMarkers","resolveHighlightMarker","color","validateHighlightParams","highlight","appendBlock","block2","prependBlock","validateHrParams","position","hr","longestBacktickRun","formatInlineCode","delimiter","padding","formatCodeBlock","fence","language","validateCodeParams","code","code_block","formatMathBlock","math","math_block","comment","validateCalcParams","operation","validOperators","operator","valueStr","calc","hasRawValue","originalValue","num","callout","title2","foldState","params","calloutHeader","camel","letter","capitalize","capitalizeString","parseAndCapitalize","capitalized","isEmpty","compact","date","inputDate","outputFormat","inputFormat","date2","validUnits","validateDateModifyParams","unit","normalizedUnit","date_modify","amount","numericAmount","decodeValue","decode_uri","encodeValue","encode_uri","first","footnote","data","strip_md","p2","p1","fragment_link","linktext","sourceUrl","extractTextFragmentParts","words","selectedText","createTextFragmentUrl","encodedEnd","escapeMarkdown","markdownDestination","normalized","image","altText","processObject","MAX_INDENT_WIDTH","validateIndentParams","width","numericWidth","indent","join","array","separator","kebab","last","validListTypes","validateListParams","option","list","processListItem","indent2","itemType","determineListType","param2","link","linkText","length","lower","toLowerCase","validateMapParams","mapWithArrow","argName","mappedArray","mappedItem","assignment","cleanKey","cleanValue","evaluateExpression2","propertyPath","map","getNestedProperty","prop","merge","values","singleArgument","processedItems","validateNthParams","positions","basis","nthValues","basisSize","nth","positionInGroup","nthExpression","multiplier","nPlusBMatch","offset","number_format","formatNumber","decimals","thousandsSep","decPoint","processValue","unescapeString","validObjectParams","validateObjectParams","object","pascal","parse_json","reverse","reversedEntries","reversedObject","remove_attr","removeAttributes","html","removeAttributesList","attr","attributeOrSlashRegex","attributeNameExtractorRegex","elementsToKeep","allMatches","attributesString","currentMatch","fullMatchedText","attributePart","slashPart","nameMatch","cleanedAttributes","tag","remove_tags","removeTags","removeTagsList","escapedTags","regex","validateReplaceParams","replacements","allValid","pair","splitReplacementPair","replacement","search","replacementValue","quotedSearch","regexSearch","quotedReplacement","legacyValid","inRegex","replace","legacyPair","acc","replace2","regexInfo","processEscapedCharacters","boundedReplace","named","captures","expandedLength","expanded","cleanTag","replace_tags","transformations","rawSource","rawTarget","source","openingPattern","closingPattern","attributes","validateRoundParams","round","roundNumber","decimalPlaces","result2","factor","encounteredNonFinite","processCollectionValue","cleanParam","validOsParams","validateSafeNameParams","os","safe_name","sanitized","paramParts","validateSliceParams","slice","slicedArray","snake","parseParams","validateSortParams","direction","propertyValue","compareValues","leftText","rightText","sort","leftValue","rightValue","comparison","split","validateSumParams","sum","total","candidate","strip_attr","keepAttributesList","keepAttributes","keepAttrs","escapedAttr","attrMatch","strip_tags","keepTagsList","keepTags","dec","hex","parseHeaders","escapeCell","cell","cellWidth","padCell","widestCell","minimum","row","rows","widestRow","renderTable","columnCount","headers","normalizedHeaders","normalizedRows","pretty","widths","header","formatRow","formatTable","customHeaders","maxColumns","table","table_pretty","validateTemplateParams","template","replaceTemplateVariables","strValue","parseObjectString","getNestedProperty2","lowercaseWords","title","toTitleCase","word","trim","graphemeSegmenter","graphemes","paramParts2","parseParams2","validateParams","example","validateTruncateParams","validateTruncatewordsParams","truncateString","characters","suffix","contentLimit","truncateWordsString","finalWord","truncateValue","truncate","truncatewords","uncamel","unescape","unique","seen","uniqueArray","stringified","reverseEntries","uniqueEntries","upper","toUpperCase","wikiReference","alias","wikilink","embed","duration","matches","seconds2","formatDuration","years","months","days","hours","minutes","seconds","totalSeconds","format","dur","\"HH\"","padZero","\"H\"","\"mm\"","\"m\"","\"ss\"","\"s\"","validateYamlParams","propertyKey","validateYamlPropertyParams","flow","keyText","isBlock","block","containsNonFiniteNumber","collection","scalar","yaml","yaml_property","validateWhereParams","isScalar","where","expected","standardFilterMetadata","metadata","filters","asTemplateFilter","wrapped","standardFilters","snakeSegment","aliasForField","claimUnique","taken","collectKeys","buildTemplateContext","aliasTaken","labelTaken","fields","safeLabel","getFieldLabel","project","projected","field","pick","aliased","CONTEXT_NAMES","ROW_SHAPED","FIELD_MEMBERS","isRecord","isIdentifier","walkNodes","visit","collectLoopSources","sources","rootKind","root","loopSources","findUnknownReferences","aliases","scope","diagnostics","reported","describeReference","addOnce","member","describeMember","unknownField","known","available","RENDER_LIMITS","engine","getEngine","renderMarkdownTemplate","toMessage","HEADER_SIZES","HEADER_MARGINS","BODY_SIZES","ALIGNMENTS","bodySizeClass","fontSize","alignmentClass","alignment","headingProps","accentColor","buildMarkdownOptions","buildAccentBorderStyle","accentBorder","style","transparentBackground","resolveAccentColor","colors","toTemplateRows","useMarkdownTemplate","isTemplate","queryObject","useMemo","useContext","setResult","useState","useEffect","cancelled","MarkdownChart_exports","MarkdownChart","Diagnostics","tone","heading","items","displayConfig","colorPalette","markdownOptions","height","containerStyle"],"sources":["../../../src/shared/query-shape.ts","../../../node_modules/markdown-to-jsx/dist/entities.browser.js","../../../node_modules/markdown-to-jsx/dist/index.js","../../../node_modules/knap/dist/chunk-DOF2LXGV.js","../../../node_modules/dayjs/dayjs.min.js","../../../node_modules/dayjs/plugin/isoWeek.js","../../../node_modules/dayjs/plugin/weekOfYear.js","../../../node_modules/dayjs/plugin/customParseFormat.js","../../../node_modules/dayjs/plugin/advancedFormat.js","../../../node_modules/dayjs/plugin/duration.js","../../../node_modules/knap/dist/chunk-HIM7QCSR.js","../../../src/client/components/charts/markdownTemplate.ts","../../../src/client/components/charts/MarkdownChart.helpers.ts","../../../src/client/components/charts/MarkdownChart.tsx"],"sourcesContent":["/**\n * Shape questions about a query that both the client and the server ask.\n *\n * Kept here rather than duplicated because the answer decides a user-visible\n * behaviour in three places: whether a portlet runs a query at all, whether a\n * markdown portlet renders its content as a data template, and whether the\n * agent writes a query onto a markdown portlet when saving a dashboard.\n */\n\n/** The parts of a query that make it worth running. */\ninterface QueryMembers {\n measures?: unknown\n dimensions?: unknown\n timeDimensions?: unknown\n}\n\n/**\n * Whether a query asks for anything the engine could run.\n *\n * A content-first chart such as markdown does not *require* a query, but it may\n * still carry one. Only the member lists count: an empty object, an object of\n * nothing but filters, and `undefined` all mean \"no query\".\n */\nexport function queryHasMembers(query: QueryMembers | null | undefined): boolean {\n if (!query || typeof query !== 'object') return false\n const count = (value: unknown) => (Array.isArray(value) ? value.length : 0)\n return (\n count(query.measures) > 0\n || count(query.dimensions) > 0\n || count(query.timeDimensions) > 0\n )\n}\n","var e;function t(r){if(!e){if(typeof document>\"u\")return;e=document.createElement(\"textarea\")}var n=`&${r};`;e.innerHTML=n;var d=e.value;return d===n?void 0:d}var i={};export{i as NAMED_CODES_TO_UNICODE,t as decodeEntity};\n","var N=32,k=9,Er=13,M=10,re=96,Oe=126,_e=91,ur=94,U=62,lr=35,Ht=37,F=45,Cr=61,me=92,ke=42,he=95,ae=60,xt=64,qe=93,Ke=33,ht=38,Ge=58,st=70,pr=102,$t=104,Pr=119,qr=116,Mt=112,on=115,Wn=160,zn=12,Zn=44,gt=59,jr=63,ar=46,ge=47,Dr=39,Ir=34,Or=43,ye=124,Lr=123,Bt=125,ir=40,fr=41,Qn=78,Vn=110,Yn=79,qn=111,An=120,ln=88,Pt=30,W=48,z=57,J=65,G=90,ie=97,ce=122,Ct=128,_r=32,bi={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22},v=bi;import{decodeEntity as pi}from\"markdown-to-jsx/entities\";function oa(e){if(!ea(e,\"---\"))return null;let t=3;for(;t<e.length&&(e[t]===\" \"||e[t]===\"\t\");)t++;if(t<e.length&&e[t]===\"\\r\"&&t++,t>=e.length||e[t]!==`\n`)return null;t++;let r=!1;for(;t<e.length;){let n=t;for(;t<e.length&&e[t]!==`\n`&&e[t]!==\"\\r\";)t++;if(t>=e.length)break;let a=t;if(e[t]===\"\\r\"&&t++,t<e.length&&e[t]===`\n`&&t++,ea(e,\"---\",n))return{endPos:t,hasValidYaml:r};if(!r){let i=xi(e,n,a);if(i<a){let o=e.charCodeAt(i);if(o>=ie&&o<=ce||o>=J&&o<=G||o>=W&&o<=z||o===he){for(i++;i<a&&(o=e.charCodeAt(i),o>=ie&&o<=ce||o>=J&&o<=G||o>=W&&o<=z||o===he||o===F||o===ar);)i++;i<a&&e.charCodeAt(i)===Ge&&(i++,i>=a?r=!0:(o=e.charCodeAt(i),(o===N||o===k)&&(r=!0)))}}}}return null}var Ii=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,Oi={class:\"className\",for:\"htmlFor\",allowfullscreen:\"allowFullScreen\",allowtransparency:\"allowTransparency\",autocomplete:\"autoComplete\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",charset:\"charSet\",classid:\"classId\",colspan:\"colSpan\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",crossorigin:\"crossOrigin\",enctype:\"encType\",formaction:\"formAction\",formenctype:\"formEncType\",formmethod:\"formMethod\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",hreflang:\"hrefLang\",inputmode:\"inputMode\",keyparams:\"keyParams\",keytype:\"keyType\",marginheight:\"marginHeight\",marginwidth:\"marginWidth\",maxlength:\"maxLength\",mediagroup:\"mediaGroup\",minlength:\"minLength\",novalidate:\"noValidate\",radiogroup:\"radioGroup\",readonly:\"readOnly\",rowspan:\"rowSpan\",spellcheck:\"spellCheck\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",tabindex:\"tabIndex\",usemap:\"useMap\",viewbox:\"viewBox\"},Li={};function fn(e){if(!e)return Li;var t={};for(var r in e){var n=r.toLowerCase(),a=Oi[n];if(a)t[a]=e[r];else{var i=r.indexOf(\":\");i===-1?t[r]=e[r]:t[r.slice(0,i)+r[i+1].toUpperCase()+r.slice(i+2)]=e[r]}}return t}var Aa=/(\\n|^[-*]\\s|^#|^ {2,}|^-{2,}|^>\\s|^<(div|p|h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|td|th|dl|dt|dd|hr|address|article|aside|details|dialog|figure|figcaption|footer|form|header|main|menu|nav|section|summary|textarea|fieldset|legend|center|dir|hgroup|marquee|search|output|template)\\b)/i;function Nr(e){return e.indexOf(\"&\")===-1?e:e.replace(Ii,(t,r)=>{var n=pi(r);if(n)return n;if(r[0]===\"#\"){var a=r[1]===\"x\"||r[1]===\"X\"?Number.parseInt(r.slice(2),16):Number.parseInt(r.slice(1),10);return a===0||a>=55296&&a<=57343||a>1114111?\"\\uFFFD\":a<=65535?String.fromCharCode(a):String.fromCharCode(55296+(a-65536>>10),56320+(a-65536&1023))}return t})}var jn=/(javascript|vbscript|data(?!:image)):/i;function dr(e){if(jn.test(e))return null;if(e.indexOf(\"%\")===-1)return e;try{let t=decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,\"\");if(jn.test(t))return null}catch{return null}return e}var Ve={},je,xe;for(je=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"a\";for(Ve[231]=Ve[199]=\"c\",Ve[240]=Ve[208]=\"d\",je=[200,201,202,203,233,232,234,235],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"e\";for(je=[207,239,206,238,205,237,204,236],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"i\";for(Ve[209]=Ve[241]=\"n\",je=[248,216,339,338,213,245,212,244,211,243,210,242],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"o\";for(je=[220,252,219,251,218,250,217,249],xe=0;xe<je.length;xe++)Ve[je[xe]]=\"u\";Ve[376]=Ve[255]=Ve[221]=Ve[253]=\"y\";function gr(e){for(var t=\"\",r=-1,n=e.length,a=0;a<n;a++){var i=e.charCodeAt(a);if(i>=ie&&i<=ce||i>=W&&i<=z){r<0&&(r=a);continue}if(i>=J&&i<=G){r>=0&&(t+=e.slice(r,a),r=-1),t+=String.fromCharCode(i+_r);continue}if(i===N||i===F){r>=0&&(t+=e.slice(r,a),r=-1),t+=\"-\";continue}r>=0&&(t+=e.slice(r,a),r=-1);var o=Ve[i];o&&(t+=o)}return r>=0&&(t+=e.slice(r)),t}function ea(e,t,r){return e.startsWith(t,r)}var ra=new Set([\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\",\"circle\",\"ellipse\",\"line\",\"path\",\"polygon\",\"polyline\",\"rect\",\"use\",\"stop\",\"animate\",\"set\"]);function nt(e){let t=e.toLowerCase();if(ra.has(t))return!0;let r=t.indexOf(\":\");return r!==-1?(t=t.slice(r+1),ra.has(t)):!1}var Xr=1,ta=2,rt=4,na=8,yi=16,Rr=32,yr=64,la=(()=>{var e=new Uint8Array(128),t;for(e[k]=Xr,e[M]=Xr|ta,e[zn]=Xr,e[Er]=Xr|ta,e[N]=Xr,t=Ke;t<=ge;t++)e[t]=rt;for(t=Ge;t<=xt;t++)e[t]=rt;for(t=_e;t<=re;t++)e[t]=rt;for(t=Lr;t<=Oe;t++)e[t]=rt;for(t=W;t<=z;t++)e[t]=yi;for(t=J;t<=G;t++)e[t]=na;for(t=ie;t<=ce;t++)e[t]=na;return e})(),Ca=/[\\p{P}\\p{S}]/u,fa=/\\p{Zs}/u,et=[];function _a(e){var t=e.indexOf(\"\\r\"),r=e.indexOf(\"\\0\");if(t===-1&&r===-1)return e;var n=e.length;et.length=0;var a=0,i=0;for(t===-1?i=r:r===-1?i=t:i=t<r?t:r;i<n;i++){var o=e.charCodeAt(i);o===Er?(a<i&&et.push(e.slice(a,i)),i+1<n&&e.charCodeAt(i+1)===M&&i++,et.push(`\n`),a=i+1):o===0&&(a<i&&et.push(e.slice(a,i)),et.push(\"\\uFFFD\"),a=i+1)}return a<n&&et.push(e.slice(a)),et.join(\"\")}function da(e){return e.replace(/>\\s+</g,\"><\").replace(/\\n+/g,\" \").trim()}function xi(e,t,r){let n=r??e.length;for(;t<n&&(e[t]===\" \"||e[t]===\"\t\");)t++;return t}function Xt(e){if(!e)return!1;for(var t in e)return!0;return!1}function ca(e){return{attrs:{},children:[{type:v.text,text:e}],c:!0,type:v.htmlBlock,tag:\"header\"}}var Mi=/^\\n+/;function ua(e){for(var t=e.length;t>0&&(e[t-1]===`\n`||e[t-1]===\"\\r\");)t--;return`${e.slice(0,t).replace(Mi,\"\")}\n\n`}function tt(e){if((e.type===v.htmlSelfClosing||e.type===v.htmlBlock)&&e.a)return[];if(e.type===v.paragraph){var t=e.children;return t?t.flatMap(tt):[]}return e.type===v.text?e.text?.trim()?[e]:[]:e.type===v.htmlBlock&&e.children?[{...e,children:e.children?.flatMap(tt)}]:[e]}function _n(e){for(var t=0;t<e.length;t++){if(e[t].type===v.htmlBlock){var r=e[t],n=!1;if(r.c&&t===e.length-1){var a=r.j===void 0?r.a?r.e||\"\":(r.e||\"\")+(r.h||\"\"):r.j,i=`</${String(r.tag).toLowerCase()}>`,o=a.toLowerCase().indexOf(i);if(o!==-1){var A=a.slice(o+i.length).replace(/<\\/[a-z][a-z0-9-]*\\s*>/gi,\"\");A.trim()&&(n=!0)}}n||(r.c=!1)}\"children\"in e[t]&&e[t].children&&_n(e[t].children)}}function Ra(e,t){for(var r=0;r<e.length;r++){var n=e[r];if(n.type===v.paragraph&&n.children)for(var a=n.children,i=0;i<a.length;i++){var o=a[i];if(o.type===v.htmlSelfClosing&&o.a&&o.tag.toLowerCase()===t){var A=e.slice(0,r);i>0&&A.push({type:v.paragraph,children:a.slice(0,i)});var C=[];if(i+1<a.length){var l=a.slice(i+1).filter(_=>!(_.type===v.htmlSelfClosing&&_.a));l.length>0&&(C=l)}return C=C.concat(e.slice(r+1)),{found:!0,beforeClose:A,afterClose:C}}}if((n.type===v.htmlSelfClosing||n.type===v.htmlBlock)&&n.a&&n.tag.toLowerCase()===t)return{found:!0,beforeClose:e.slice(0,r),afterClose:e.slice(r+1)}}return{found:!1,beforeClose:e,afterClose:[]}}function Bi(e){var t=\"\";for(var r in e){var n=e[r];n===!0?t+=` ${r}`:n!==void 0&&n!=null&&n!==!1&&(t+=` ${r}=\"${String(n)}\"`)}return t}function aa(e,t,r,n){var a;return t===void 0?a=Bi(r):a=t.length>0&&t.charCodeAt(0)>N?` ${t}`:t,`<${e}${a}${n}`}function dn(e){var t=e.tag,r=e.type===v.htmlSelfClosing,n=e,a=n.b,i=`</${t}>`;if(!r&&n.a)return{kind:\"literal\",literal:(n.h||i)+(n.e||\"\")};if(r){var o=e;return o.a?{kind:\"literal\",literal:o.h||i}:o.m?{kind:\"literal\",literal:o.m}:{kind:\"literal\",literal:aa(t,a,e.attrs,\" />\")}}var A=aa(t,a,e.attrs,\">\"),C=n.children,l=C!=null&&C.length>0;if(n.c&&n.j!==void 0)return l?{kind:\"sandwich\",open:A,close:i}:{kind:\"literal\",literal:n.j};if(n.c&&!l)return{kind:\"literal\",literal:A+(n.e||\"\")+(n.h||i)};if(C!=null&&C.length>0){for(var _=\"\",d=0;d<C.length;d++){var u=C[d];if(u.type!==v.text)return{kind:\"sandwich\",open:A,close:i};_+=u.text}return{kind:\"literal\",literal:A+_+i}}var c=n.e||\"\";return c&&c.indexOf(i)!==-1?{kind:\"literal\",literal:A+c}:{kind:\"literal\",literal:A+c+i}}function Ha(e,t,r){var n=[],a=e,i=r;if(a&&n.push(a),Array.isArray(t))for(var o=0;o<t.length;o++)n.push(t[o]);else t!=null&&n.push(t);i&&n.push(i);for(var A=[],C=0;C<n.length;C++){var l=n[C];typeof l==\"string\"&&A.length>0&&typeof A.at(-1)==\"string\"?A[A.length-1]=A.at(-1)+l:A.push(l)}return A}function Jr(e){return e==null||e.tagfilter!==!1}function ha(e,t,r,n){var a=t(e,r,n);return a===null?null:Pi(a)}function sa(e){var t=[];if(!e)return t;for(var r in e)r.charCodeAt(0)===94&&t.push({identifier:r,footnote:e[r].target});return t}function ia(e){for(var t=0,r=e.length;t<r;){var n=e.charCodeAt(t);if(n>=J&&n<=G)return e.toLowerCase();t++}return e}function Jt(e,t,r){if(t.indexOf(\".\")===-1){var n=e?.[t];if(n)return n;if(e){var a=ia(t);if(a!==t){var i=e[a];if(i)return i}}return r}for(var o=e,A=t.split(\".\"),C=0,l=!1;C<A.length;){if(o=o?.[A[C]],o===void 0){l=C===0;break}C++}if(l&&e){var _=ia(A[0]);if(_!==A[0])for(o=e[_],C=1;o!==void 0&&C<A.length;)o=o?.[A[C]],C++}return o||r}function Pi(e){for(var t=!1,r=0;r<e.length;r++){var n=e.charCodeAt(r);if(n<=N||n===Ir||n===Ht||n===ae||n===U||n===_e||n===me||n===qe||n===ur||n===re||n>=123){t=!0;break}}if(!t)return e;for(var a=\"\",r=0;r<e.length;r++){var n=e.charCodeAt(r);if(n===Ht&&r+2<e.length){var i=e.charCodeAt(r+1),o=e.charCodeAt(r+2);if((i>=W&&i<=z||i>=J&&i<=st||i>=ie&&i<=pr)&&(o>=W&&o<=z||o>=J&&o<=st||o>=ie&&o<=pr)){a+=e[r]+e[r+1]+e[r+2],r+=2;continue}}if(n>=55296&&n<=57343){if(n<=56319&&r+1<e.length){var A=e.charCodeAt(r+1);if(A>=56320&&A<=57343){a+=encodeURI(e[r]+e[r+1]),r++;continue}}a+=e[r];continue}a+=encodeURI(e[r])}return a}function $a(...e){return e.filter(Boolean).join(\" \")}var Di=new Set([\"title\",\"textarea\",\"style\",\"xmp\",\"iframe\",\"noembed\",\"noframes\",\"script\",\"plaintext\"]),Dt=/<(\\/?)(title|textarea|style|xmp|iframe|noembed|noframes|script|plaintext)(\\s|>|\\/)/gi;function cn(e){return Di.has(e.toLowerCase())}function ga(e){return Dt.lastIndex=0,Dt.test(e)}function un(e){return Dt.lastIndex=0,e.replace(Dt,(t,r,n,a)=>`&lt;${r}${n}${a}`)}function Et(e,t){var r=e||{},n=r.slugify,a;if(n){var i=n;a=o=>i(o,gr)}else a=gr;return{disableAutoLink:r.disableAutoLink,disableFrontmatter:r.disableFrontmatter,disableParsingRawHTML:r.disableParsingRawHTML,enforceAtxHeadings:r.enforceAtxHeadings,evalUnserializableExpressions:r.evalUnserializableExpressions,forceBlock:r.forceBlock,forceInline:t===void 0?r.forceInline:t,ignoreHTMLBlocks:r.ignoreHTMLBlocks,optimizeForStreaming:r.optimizeForStreaming,preserveFrontmatter:r.preserveFrontmatter,sanitizer:r.sanitizer||dr,slugify:a,tagfilter:Jr(r)}}var Ka=/^<([a-zA-Z][a-zA-Z0-9-]*)\\s[^>]*>/,Ga=/^<[A-Z]/,$n=[\"script\",\"pre\",\"style\",\"textarea\"],Nt=new Set($n),Xi=/<(?:pre|script|style|textarea)\\b/i,Ta=/<(?:pre|script|style|textarea)\\b/iy,Rn=/^(\\s{0,3}#[#\\s]|\\s{0,3}[-*+]\\s|\\s{0,3}\\d+\\.\\s|\\s{0,3}>\\s|\\s{0,3}```)/m,Sa=/^<([a-z][^ >/\\n\\r]*) ?([^>]*?)>/im,Fa=new Uint8Array(128);(()=>{for(var e=[re,ke,he,Oe,Cr,_e,Ke,ae,me,ht,M,$t,Pr,pr],t=0;t<e.length;t++)Fa[e[t]]=1})();var Ea=/([a-zA-Z_][a-zA-Z0-9_-]*)=(?:\"([^\"]*)\"|'([^']*)')/g;function Ua(e){return Nt.has(e)}function Wa(e){return Xi.test(e)}function za(e,t,r){for(var n=t,a=r;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;if(n>=a)return!1;e.charCodeAt(n)===ye&&n++;for(var i=0;n<a;){for(;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;if(n>=a)break;if(e.charCodeAt(n)===ye&&i>0){for(var o=n+1;o<a&&(e.charCodeAt(o)===N||e.charCodeAt(o)===k);)o++;if(o>=a)return!0}if(e.charCodeAt(n)===Ge&&n++,n>=a||e.charCodeAt(n)!==F)return!1;for(;n<a&&e.charCodeAt(n)===F;)n++;for(n<a&&e.charCodeAt(n)===Ge&&n++,i++;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;if(n<a)if(e.charCodeAt(n)===ye)n++;else return!1}return i>0}var Ji=/[\\u0000-\\u001F\\u007F]/g,Ki={action:1,background:1,cite:1,data:1,formaction:1,href:1,longdesc:1,poster:1,src:1,\"xlink:href\":1},Gi=/&#(x[0-9a-f]+|[0-9]+);?/gi;function Fi(e){return e.indexOf(\"&#\")===-1?e:e.replace(Gi,(t,r)=>{var n=r.charCodeAt(0)===An||r.charCodeAt(0)===ln?Number.parseInt(r.slice(1),16):Number.parseInt(r,10);return n>0&&n<=1114111?String.fromCodePoint(n):t})}function Ui(e,t,r){if(r&&t.charCodeAt(0)===Lr)return!1;var n=e.charCodeAt(0),a=e.charCodeAt(1);if((n===qn||n===Yn)&&(a===Vn||a===Qn))return!(r&&t===\"\");var i=e.toLowerCase();if(i===\"srcdoc\")return!0;if(i===\"style\")return/url\\s*\\(\\s*(javascript|vbscript|data:(?!image\\/))/i.test(t);if(Ki[i]===1){var o=Fi(Nr(t));if(dr(o)===null)return!0;var A=o.replace(Ji,\"\");return A!==o&&dr(A)===null}return!1}function gn(e){return\"<\"+(e.f?\"/\":\"\")+e.tag+e.g+e.b+(e.n?e.r?\" />\":\"/>\":\">\")}function Na(e,t,r,n){for(var a=[],i=t,o=0;o<n.length;o+=2){var A=n[o];if(A>i){var C=e.slice(i,A).trim();C&&a.push(C)}i=n[o+1]}if(i<r){var l=e.slice(i,r).trim();l&&a.push(l)}return a.join(\" \")}function wr(e,t){if(e.charCodeAt(t)!==ae)return null;let r=t+1,n=e.length,a=!1;e.charCodeAt(r)===ge&&(r++,a=!0);let i=r,o=e.charCodeAt(r);if(!(o>=ie&&o<=ce||o>=J&&o<=G))return null;for(;r<n&&(e.charCodeAt(r)>=ie&&e.charCodeAt(r)<=ce||e.charCodeAt(r)>=J&&e.charCodeAt(r)<=G||e.charCodeAt(r)>=W&&e.charCodeAt(r)<=z||e.charCodeAt(r)===F);)r++;let A=e.slice(i,r);if(!A)return null;let C=A.charCodeAt(0),l=C>=J&&C<=G||A.indexOf(\"-\")!==-1,_=r;for(;r<n&&(e.charCodeAt(r)===N||e.charCodeAt(r)===k||e.charCodeAt(r)===M);)r++;let d=e.slice(_,r);if(r===_&&r<n){var u=e.charCodeAt(r);if(u!==U&&u!==ge)return null}let c=r,R={},s=!1;for(var T=null;r<n;){let I=e.charCodeAt(r);if(I===U){let O=T?Na(e,c,r,T):e.slice(c,r);return{r:s,u:l,f:a,b:O,q:T!=null,n:!1,g:d,attrs:R,end:r+1,tag:A}}if(I===N||I===k||I===M){r++;continue}if(I===ge&&r+1<n&&e.charCodeAt(r+1)===U){s=r>c&&e.charCodeAt(r-1)===N;let O=T?Na(e,c,r,T):e.slice(c,r);return{r:s,u:l,f:a,b:O,q:T!=null,n:!0,g:d,attrs:R,end:r+2,tag:A}}var f=r,h=e.charCodeAt(r);if(!(h>=ie&&h<=ce||h>=J&&h<=G||h===he||h===Ge))return null;for(r++;r<n;){var g=e.charCodeAt(r);if(g>=ie&&g<=ce||g>=J&&g<=G||g>=W&&g<=z||g===he||g===ar||g===Ge||g===F)r++;else break}for(var S=e.slice(f,r),p=r;r<n&&(e.charCodeAt(r)===N||e.charCodeAt(r)===k);)r++;var H,w;if(e.charCodeAt(r)===Cr){for(r++;r<n&&(e.charCodeAt(r)===N||e.charCodeAt(r)===k);)r++;var E=e.charCodeAt(r);if(E===Ir||E===Dr){r++;for(var m=r;r<n&&e.charCodeAt(r)!==E;)r++;if(r>=n)return null;if(H=e.slice(m,r),r++,r<n){var y=e.charCodeAt(r);if(y!==N&&y!==k&&y!==M&&y!==U&&y!==ge)return null}w=r}else if(E===Lr){var x=1,m=r;for(r++;r<n&&x>0;){var g=e.charCodeAt(r);g===Lr?x++:g===Bt&&x--,r++}H=e.slice(m,r),w=r}else{for(var m=r;r<n;){var B=e.charCodeAt(r);if(B===N||B===k||B===U||B===M||B===Ir||B===Dr||B===Cr||B===ae||B===re)break;r++}if(r===m)return null;H=e.slice(m,r),w=r}}else H=\"\",w=p;Ui(S,H,l)?(T===null&&(T=[]),T.push(f,w)):R[S]=H}return null}function cr(e){var t=e.indexOf(\"<\");if(t===-1)return e;for(var r=\"\",n=0,a=!1;t!==-1;){var i=wr(e,t);i?(i.q&&(r+=e.slice(n,t)+gn(i),n=i.end,a=!0),t=e.indexOf(\"<\",i.end)):t=e.indexOf(\"<\",t+1)}return a?r+e.slice(n):e}function Wi(e,t,r){if(!r.optimizeForStreaming&&e.indexOf(\"[\")===-1)return!1;for(var n=0,a=e.length,i=!1,o=!1;n<a;){for(var A=e.indexOf(`\n`,n),C=A<0?a:A,l=n,_=0;l<C&&_<4;)if(e.charCodeAt(l)===N)_++,l++;else if(e.charCodeAt(l)===k)_+=4,l++;else break;if(l>=C){i=!1,n=A<0?a:A+1;continue}if(_<4){var d=e.charCodeAt(l);if(d===re||d===Oe){for(var u=d,c=0,R=l;R<C&&e.charCodeAt(R)===u;)c++,R++;if(c>=3){var s=!0;if(u===re){for(var T=R;T<C;T++)if(e.charCodeAt(T)===re){s=!1;break}}if(s){i=!1;for(var f=A<0?a:A+1;f<a;){for(var h=f,g=0;h<a&&g<4;){var S=e.charCodeAt(h);if(S===N)g++,h++;else if(S===k)g+=4,h++;else break}if(g<4&&h<a&&e.charCodeAt(h)===u){for(var p=0;h<a&&e.charCodeAt(h)===u;)p++,h++;if(p>=c){for(;h<a&&(e.charCodeAt(h)===N||e.charCodeAt(h)===k);)h++;if(h>=a||e.charCodeAt(h)===M){n=h>=a?a:h+1;break}}}for(;f<a&&e.charCodeAt(f)!==M;)f++;f<a&&f++}f>=a&&(n=a,o=!0);continue}}}}for(var H=l;H<C&&e.charCodeAt(H)===U;){H++,H<C&&e.charCodeAt(H)===N&&H++;for(var w=0;H<C&&w<4;)if(e.charCodeAt(H)===N)w++,H++;else if(e.charCodeAt(H)===k)w+=4,H++;else break;if(w>=4)break;i=!1}if(!i&&_<4&&H<C&&e.charCodeAt(H)===_e&&!(H+1<a&&e.charCodeAt(H+1)===ur)){var E=Za(e,H,t);if(E){n=E,i=!1;continue}}var m=e.charCodeAt(l);if(m===lr&&_<4)i=!1;else if(_<4&&(m===F||m===ke||m===he)){for(var y=l,x=0;y<C;){var B=e.charCodeAt(y);if(B===m)x++;else if(B!==N&&B!==k)break;y++}i=!(x>=3&&y>=C)}else i=!0;n=A<0?a:A+1}return o}function Za(e,t,r){let n=e.length;if(e.charCodeAt(t)!==_e)return null;let a=t+1<n&&e.charCodeAt(t+1)===ur,i=t+1;for(;i<n;){var o=e.charCodeAt(i);if(o===qe){i++;break}if(o===_e)return null;o===me&&i+1<n&&i++,i++}if(i>n||e.charCodeAt(i-1)!==qe)return null;let A=e.slice(t+1,i-1);if(A.length>999)return null;let C=Ft(A);if(!C||i>=n||e.charCodeAt(i)!==Ge)return null;i++;let l=!1;for(;i<n;){let I=e.charCodeAt(i);if(I===N||I===k)i++;else if(I===M&&!l)l=!0,i++;else break}if(a){let I=e.indexOf(`\n`,i),O=I<0?n:I,D=e.slice(i,O).trim();return r[C]={target:D,title:void 0},I<0?n:I+1}var _;if(i<n&&e.charCodeAt(i)===ae){i++;for(var d=i;i<n&&e.charCodeAt(i)!==U&&e.charCodeAt(i)!==M;)e.charCodeAt(i)===me&&i+1<n&&i++,i++;if(i>=n||e.charCodeAt(i)!==U)return null;_=e.slice(d,i),i++;for(var u=e.indexOf(`\n`,i),c=u<0?n:u,R=i;R<c&&(e.charCodeAt(R)===N||e.charCodeAt(R)===k);)R++;if(R<c){if(R===i)return null;var s=e.charCodeAt(R);if(s!==Ir&&s!==Dr&&s!==ir)return null}}else{for(var d=i,T=0;i<n;){var o=e.charCodeAt(i);if(o===ir)T++;else if(o===fr){if(T===0)break;T--}else{if(o===N||o===k||o===M)break;o===me&&i+1<n&&i++}i++}if(_=e.slice(d,i),!_)return null}for(;i<n&&(e.charCodeAt(i)===N||e.charCodeAt(i)===k);)i++;var f=e.indexOf(`\n`,i),h=f<0?n:f,g,S=!1,p=i,H=i;if(i===h&&i<n)for(H=i+1;H<n&&(e.charCodeAt(H)===N||e.charCodeAt(H)===k);)H++;if(H<n){var w=e.charCodeAt(H);if(w===Ir||w===Dr||w===ir){for(var E=w===ir?41:w,m=H+1,y=m;m<n;){var x=e.charCodeAt(m);if(x===E){for(var B=m+1;B<n&&(e.charCodeAt(B)===N||e.charCodeAt(B)===k);)B++;(B>=n||e.charCodeAt(B)===M)&&(g=e.slice(y,m),S=!0,p=B<n?B+1:n);break}if(x===me&&m+1<n){m+=2;continue}if(x===M&&m+1<n&&e.charCodeAt(m+1)===M)break;m++}if(!S&&H===i)return null}}if(S)return r[C]||(r[C]={target:Nr(_t(_)),title:g===void 0?g:Nr(_t(g))}),p;for(;i<h&&(e.charCodeAt(i)===N||e.charCodeAt(i)===k);)i++;return i<h?null:(r[C]||(r[C]={target:Nr(_t(_)),title:g}),f<0?n:f+1)}var or=new Uint8Array(la);for(or[lr]|=Rr,or[U]|=Rr,or[F]|=Rr|yr,or[Or]|=Rr,or[ke]|=Rr|yr,or[he]|=Rr|yr,or[re]|=Rr|yr,or[Oe]|=Rr|yr,or[ae]|=Rr|yr,or[_e]|=yr,or[Ke]|=yr,or[ye]|=Rr,vt=W;vt<=z;vt++)or[vt]|=Rr;var vt;function ka(e){if(e.indexOf(\"[\")<0&&e.indexOf(\"]\")<0)return!1;for(var t=0;t<e.length;t++){if(e.charCodeAt(t)===me){t++;continue}if(e.charCodeAt(t)===_e||e.charCodeAt(t)===qe)return!0}return!1}function Ft(e){for(var t=e.length,r=!0,n=t>0,a=0;a<t;a++){var i=e.charCodeAt(a);if(i===N){if(r){n=!1;break}r=!0}else if(i<33||i>126||i>=J&&i<=G){n=!1;break}else r=!1}if(n&&!r)return e;var o=e.replace(/\\s+/g,\" \").trim();return o.indexOf(\"\\u1E9E\")!==-1?o.replace(/\\u1E9E/g,\"ss\").toLowerCase():o.toLowerCase()}function bn(e){return e<Ct?or[e]:e===Wn?Xr:0}function _t(e){return e.indexOf(\"\\\\\")===-1?e:e.replace(/\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g,\"$1\")}var vn=null,Tn=-1,Ut=-1;function Ae(e,t){if(t>=Tn&&t<=Ut&&e===vn)return Ut;var r=e.indexOf(`\n`,t),n=r<0?e.length:r;return vn=e,Tn=t,Ut=n,n}function q(e,t){let r=Ae(e,t);return r<e.length?r+1:r}function St(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==N&&n!==k)break;t++}return t}function wa(e,t){let r=q(e,t);for(;r<e.length;){let n=Ae(e,r);if(er(e,r,n))return r;r=q(e,r)}return e.length}function Wr(e,t,r,n){let a=0;for(;t+a<r&&e.charCodeAt(t+a)===n;)a++;return a}var oe=0,te=0;function Le(e,t,r){for(oe=0,te=0;t+te<r;){let n=e.charCodeAt(t+te);if(n===k)oe+=4-oe%4;else if(n===N)oe++;else break;te++}}function er(e,t,r){return St(e,t,r)>=r}function zi(e,t){if(!e)return e;var r=t.v||(t.v=Object.create(null)),n=r[e];if(n===void 0)return r[e]=0,e;for(var a=n+1,i=`${e}-${a}`;r[i]!==void 0;)a++,i=`${e}-${a}`;return r[e]=a,r[i]=0,i}function Zi(e,t,r,n){let a=Ae(e,t);if(Le(e,t,a),oe>3)return null;let i=t+te;if(e.charCodeAt(i)!==lr)return null;let o=Wr(e,i,a,35);if(o<1||o>6||(i+=o,i<a&&e.charCodeAt(i)!==N&&e.charCodeAt(i)!==k))return null;i=St(e,i,a);for(var A=a;A>i&&e.charCodeAt(A-1)===N;)A--;for(var C=A;A>i&&e.charCodeAt(A-1)===lr;)A--;if(A<C)if(A===i||e.charCodeAt(A-1)===N)for(;A>i&&e.charCodeAt(A-1)===N;)A--;else A=C;let l=e.slice(i,A),_=dt(l,!1,r,n);return{node:{type:v.heading,level:o,children:_,id:\"\"},end:q(e,a)}}function Qi(e,t,r){var n=e.charCodeAt(t);if(n!==Cr&&n!==F)return!1;for(var a=t;a<r&&e.charCodeAt(a)===n;)a++;for(;a<r&&(e.charCodeAt(a)===N||e.charCodeAt(a)===k);)a++;return a>=r}function Fr(e,t){let r=Ae(e,t);if(Le(e,t,r),oe>3)return null;let n=t+te,a=e.charCodeAt(n);if(a!==F&&a!==ke&&a!==he)return null;let i=0;for(;n<r;){let o=e.charCodeAt(n);if(o===a)i++;else if(o!==N&&o!==k)return null;n++}return i<3?null:{node:{type:v.breakThematic},end:q(e,r)}}var ma=0,ba=0,pa=\"\";function Vi(e,t,r){let n=Ae(e,t);if(Le(e,t,n),oe>3)return null;let a=oe,i=te,o=t+te,A=e.charCodeAt(o);if(A!==re&&A!==Oe)return null;let C=Wr(e,o,n,A);if(C<3)return null;o+=C;let l=St(e,o,n),_=n;if(A===re){for(let D=l;D<n;D++)if(e.charCodeAt(D)===re)return null}for(;_>l&&(e.charCodeAt(_-1)===N||e.charCodeAt(_-1)===k);)_--;let d=e.slice(l,_),u=\"\",c=\"\",R=d.indexOf(\" \");R===-1?u=d:(u=d.slice(0,R),c=d.slice(R+1).trim()),u=_t(u);var s;if(c){Ea.lastIndex=0;for(var T;(T=Ea.exec(c))!=null;)s||(s={}),s[T[1]]=T[2]===void 0?T[3]:T[2]}let f=q(e,n),{length:h,length:g}=e;var S;A===ma&&C===ba?S=pa:(S=String.fromCharCode(A).repeat(C),ma=A,ba=C,pa=S);for(var p=f;p<e.length;){var H=e.indexOf(S,p);if(H===-1)break;for(var w=H,E=0;w>0&&E<4&&e.charCodeAt(w-1)===N;)w--,E++;if(E<=3&&(w===0||e.charCodeAt(w-1)===M)){for(var m=H+C;m<e.length&&e.charCodeAt(m)===A;)m++;var y=Ae(e,m);if(er(e,m,y)){h=w,g=q(e,y);break}}p=H+1}var x;if(a===0)x=h>f&&e.charCodeAt(h-1)===M?e.slice(f,h-1):e.slice(f,h);else{x=\"\";for(var B=f;B<h;){var I=Ae(e,B);Le(e,B,I);var O=Math.min(te,a);x+=`${e.slice(B+O,I)}\n`,B=q(e,I)}x.length>0&&x.charCodeAt(x.length-1)===M&&(x=x.slice(0,-1))}return{node:{type:v.codeBlock,lang:u||void 0,text:x,infoString:c||void 0,attrs:s},end:g}}function Ia(e,t,r){for(var n=0,a=t;a<r&&n<4;)e.charCodeAt(a)===k?n+=4-n%4:n++,a++;if(n<4)return\"\";for(var i=\"\",o=4;o<n;o++)i+=\" \";return i+e.slice(a,r)}function Yi(e,t){let r=Ae(e,t);if(Le(e,t,r),oe<4)return null;let n=\"\",a=t;for(;a<e.length;){let u=Ae(e,a);if(Le(e,a,u),er(e,a,u)){for(var i=`${Ia(e,a,u)}\n`,o=q(e,u);o<e.length;){var A=Ae(e,o);if(er(e,o,A)){i+=`${Ia(e,o,A)}\n`,o=q(e,A);continue}Le(e,o,A),oe>=4&&(n+=i,a=o);break}if(a!==o)break;continue}if(oe<4)break;let c=0,R=0;var C=0;for(let s=a;s<u&&R<4;s++){if(e.charCodeAt(s)===k){var l=4-R%4;R+l>4&&(C=R+l-4),R+=l}else R++;c++}var _=\"\";if(C>0)for(var d=0;d<C;d++)_+=\" \";_+=e.slice(a+c,u),n+=`${_}\n`,a=q(e,u)}for(;n.length>0&&n.charCodeAt(n.length-1)===M;)n=n.slice(0,-1);return n?{node:{type:v.codeBlock,lang:void 0,text:n,infoString:void 0,attrs:void 0},end:a}:null}function qi(e,t,r,n){let a=Ae(e,t);if(Le(e,t,a),oe>3)return null;let i=t+te;if(e.charCodeAt(i)!==U)return null;let o=\"\",A=t,C,l=!1,_=!1,d=!1;for(;A<e.length;){let L=Ae(e,A);Le(e,A,L);let Z=A+te;if(e.charCodeAt(Z)===U){let ne=Z+1;var u=oe+1,c=!1;if(ne<L){var R=e.charCodeAt(ne);R===N?(ne++,u++,c=!0):R===k&&(c=!0)}for(var s=\"\",T=!1,f=ne;f<L;f++)if(e.charCodeAt(f)===k){T=!0;break}if(T){var h=u;if(c&&ne<L&&e.charCodeAt(ne)===k){for(var g=4-h%4,S=0;S<g-1;S++)s+=\" \";h+=g,ne++}for(var p=ne;p<L;p++)if(e.charCodeAt(p)===k){for(var H=4-h%4,w=0;w<H;w++)s+=\" \";h+=H}else s+=e[p],h++}else s=e.slice(ne,L);if(!(o||C)){let ve=s.match(/^\\[!([A-Za-z]+)\\]\\s*$/);if(ve){C=ve[1].toUpperCase(),A=q(e,L);continue}}o+=`${s}\n`;var E=s.trimStart();E.startsWith(\"```\")||E.startsWith(\"~~~\")?d=!d:(s.startsWith(\" \")||s.startsWith(\"\t\"))&&(d=!0),_=E.length>0,A=q(e,L)}else if(o&&!er(e,A,L)&&_){if(oe<4){var m=A+te,y=m<L?e.charCodeAt(m):0;if(y===lr||y===U||y===re||y===Oe||y===ae||(y===F||y===ke||y===he)&&Fr(e,A)||(y===F||y===ke||y===Or)&&m+1<L&&(e.charCodeAt(m+1)===N||e.charCodeAt(m+1)===k))break;if(y>=W&&y<=z){for(var x=m;x<L&&e.charCodeAt(x)>=W&&e.charCodeAt(x)<=z;)x++;if(x<L&&(e.charCodeAt(x)===ar||e.charCodeAt(x)===fr))break}}if(d)break;o+=`${e.slice(A,L)}\n`,l=!0,A=q(e,L)}else break}if(!(o||C))return null;var{inBlockQuote:B,l:I}=r;r.inBlockQuote=!0,l&&(r.l=!0);var O=r.i;r.i=O||!er(e,A,e.length);let D=Ur(o||\"\",r,n);return r.i=O,r.inBlockQuote=B,r.l=I,{node:{type:v.blockQuote,children:D,alert:C||void 0},end:A}}function Qa(e,t,r){for(var n=0,a=t;a<r;a++)e.charCodeAt(a)===k?n+=4-n%4:n++;return n}function Kr(e,t,r){if(Le(e,t,r),oe>3)return null;var n=t+te;if(n>=r)return null;var a=e.charCodeAt(n),i=oe,o=n,A=n;if(a===F||a===ke||a===Or){if(o=n+1,o<r&&e.charCodeAt(o)!==N&&e.charCodeAt(o)!==k&&e.charCodeAt(o)!==M)return null}else if(a>=W&&a<=z){for(;A<r&&A-n<9;){var C=e.charCodeAt(A);if(C<W||C>z)break;A++}if(A>n&&A<r){var l=e.charCodeAt(A);if(l===ar||l===fr){if(o=A+1,o<r&&e.charCodeAt(o)!==N&&e.charCodeAt(o)!==k&&e.charCodeAt(o)!==M)return null}else return null}else return null}else return null;var _=o,d=Qa(e,t,o),u=0,c=_,R=d;if(_>=r)return{ordered:a>=W&&a<=z,marker:a>=W&&a<=z?e[A]:e[n],start:a>=W&&a<=z?Number.parseInt(e.slice(n,A),10):void 0,contentStart:_,contentCol:d+1,markerCol:i,isEmpty:!0};for(;c<r&&(e.charCodeAt(c)===N||e.charCodeAt(c)===k);){if(e.charCodeAt(c)===k){var s=4-R%4;R+=s}else R++;c++,u++}var T=c>=r,f=R-d;return T||f>4?(R=d+1,c=_+1,u=1):u===0&&(R=d+1,c=_,u=1),{ordered:a>=W&&a<=z,marker:a>=W&&a<=z?e[A]:e[n],start:a>=W&&a<=z?Number.parseInt(e.slice(n,A),10):void 0,contentStart:c,contentCol:R,markerCol:i,isEmpty:T}}var ft=0;function Oa(e,t,r,n){var a=0,i=t;for(ft=0;i<r&&a<n;){var o=e.charCodeAt(i);if(o===k){var A=4-a%4;if(a+A>n){ft=a+A-n,i++,a=n;break}a+=A}else if(o===N)a++;else break;i++}return i}function La(e,t,r,n){var a=Ae(e,t),i=Kr(e,t,a);if(!i)return null;var o=[],A=t,C=i.contentCol,l=\"\",_=i.isEmpty,d=!1,u=!1;if(!i.isEmpty){for(var c=!1,R=i.contentStart;R<a;R++)if(e.charCodeAt(R)===k){c=!0;break}if(c){var s=\"\",T=Qa(e,t,i.contentStart),f=T-i.contentCol;if(f>0)for(var h=0;h<f;h++)s+=\" \";for(var g=i.contentStart;g<a;g++)if(e.charCodeAt(g)===k){for(var S=4-T%4,p=0;p<S;p++)s+=\" \";T+=S}else s+=e[g],T++;l=`${s}\n`}else l=`${e.slice(i.contentStart,a)}\n`}for(A=q(e,a);A<e.length;){var H=Ae(e,A);Le(e,A,H);var w=e.charCodeAt(A+te);if(oe<C&&(w===F||w===ke||w===he)&&oe<=3&&Fr(e,A))break;var E=Kr(e,A,H);if(E&&E.ordered===i.ordered&&E.marker===i.marker&&E.markerCol<C){o.push({contentCol:C,raw:l,hasBlankAfter:d,isEmpty:_}),d&&(u=!0),C=E.contentCol,_=E.isEmpty,d=!1,l=E.isEmpty?\"\":`${e.slice(E.contentStart,H)}\n`,A=q(e,H);continue}if(er(e,A,H)){var m=Oa(e,A,H,C);if(ft>0||m<H){for(var y=\"\",x=0;x<ft;x++)y+=\" \";l+=`${y+e.slice(m,H)}\n`}else l+=`\n`;A=q(e,H);for(var B=!1,I=0;I<l.length;I++){var O=l.charCodeAt(I);if(O!==M&&O!==Er&&O!==N&&O!==k){B=!0;break}}if(_&&!B)if(A<e.length){var D=Ae(e,A),P=Kr(e,A,D);if(!P||P.ordered!==i.ordered||P.marker!==i.marker)break;d=!0}else break;if(A<e.length){var L=Ae(e,A);Le(e,A,L);var Z=e.charCodeAt(A+te);if((Z===F||Z===ke||Z===he)&&oe<=3&&Fr(e,A))break;var ne=Kr(e,A,L);if(ne&&ne.ordered===i.ordered&&ne.marker===i.marker&&ne.markerCol<C){d=!0;continue}if(!er(e,A,L)&&oe<C)break}continue}if(oe>=C){var ve=Oa(e,A,H,C);if(ft>0){for(var Q=\"\",Pe=C,Ee=0;Ee<ft;Ee++)Q+=\" \",Pe++;for(var ue=ve;ue<H;ue++)if(e.charCodeAt(ue)===k){for(var He=4-Pe%4,Fe=0;Fe<He;Fe++)Q+=\" \";Pe+=He}else Q+=e[ue],Pe++;l+=`${Q}\n`}else l+=`${e.slice(ve,H)}\n`;A=q(e,H);continue}for(var X=!1,be=0;be<l.length;be++){var j=l.charCodeAt(be);if(j!==M&&j!==Er&&j!==N&&j!==k){X=!0;break}}if(!d&&X&&!_){var se=A+te,le=e.charCodeAt(se),Ue=le===lr||le===U||le===ae||le===re||le===Oe||(le===F||le===ke||le===he||le===Or)&&(Fr(e,A)!=null||Kr(e,A,H)!=null)||le>=W&&le<=z&&Kr(e,A,H)!=null;if(!Ue){l+=`\u001e${e.slice(se,H)}\n`,A=q(e,H);continue}}break}if(o.push({contentCol:C,raw:l,hasBlankAfter:d,isEmpty:_}),o.length===0)return null;var K=u;if(!K)for(var we=0;we<o.length;we++){if(o[we].hasBlankAfter&&we<o.length-1){K=!0;break}if(!o[we].isEmpty){for(var $e=o[we].raw,Ce=$e.length,Re=0,We=!1,Te=!1,Me=!1,Be=!1,ze=0,V=0,Ne=-1;Re<Ce;){var Y=$e.indexOf(`\n`,Re);if(Y<0&&(Y=Ce),Be){Le($e,Re,Y);for(var pe=$e.slice(Re+te,Y),Ze=0;Ze<pe.length&&pe.charCodeAt(Ze)===ze;)Ze++;Ze>=V&&pe.slice(Ze).trim()===\"\"&&(Be=!1),Re=Y<Ce?Y+1:Ce;continue}if(er($e,Re,Y)){Ne>=0?Me=!0:We&&(Te=!0),Re=Y<Ce?Y+1:Ce;continue}if(Le($e,Re,Y),Ne>=0){if(oe>=Ne){Re=Y<Ce?Y+1:Ce;continue}var b=Kr($e,Re,Y);if(b&&b.markerCol<Ne&&b.contentCol<=Ne){Re=Y<Ce?Y+1:Ce;continue}if(b){Re=Y<Ce?Y+1:Ce;continue}Ne=-1,Me&&(Te=!0,Me=!1)}var fe=$e.slice(Re+te,Y),tr=fe.charCodeAt(0);if((tr===re||tr===Oe)&&oe<=3){for(var ee=0;ee<fe.length&&fe.charCodeAt(ee)===tr;)ee++;if(ee>=3){if(Te&&We){K=!0;break}Be=!0,ze=tr,V=ee,We=!0,Re=Y<Ce?Y+1:Ce;continue}}var sr=oe<=3?Kr($e,Re,Y):null;if(sr&&We){if(Te){K=!0;break}Ne=sr.contentCol,Me=!1,Re=Y<Ce?Y+1:Ce,We=!0;continue}if(Te){K=!0;break}We=!0,Re=Y<Ce?Y+1:Ce}if(K)break}}for(var de=[],Se=0;Se<o.length;Se++){for(var Ye=o[Se],De=Ye.raw,Xe=De.length;Xe>0&&De.charCodeAt(Xe-1)===M;)Xe--;var Je=Xe<De.length?De.slice(0,Xe):De,zr=null;if(Je.length>=3&&Je.charCodeAt(0)===_e){var xr=Je[1];(xr===\" \"||xr===\"x\"||xr===\"X\")&&Je.charCodeAt(2)===qe&&(zr={type:v.gfmTask,completed:xr===\"x\"||xr===\"X\"},Je=Je.slice(3))}var Ie;if(Ye.isEmpty&&Je.trim()===\"\")Ie=[];else if(K){var Zr=r.inList;r.inList=!0;var mt=r.i;r.i=mt||Se!==o.length-1,Ie=Ur(Je,r,n),r.i=mt,r.inList=Zr}else{var br=r.inList;r.inList=!0;var Qr=r.i;if(r.i=Qr||Se!==o.length-1,Ie=Ur(Je,r,n),r.i=Qr,r.inList=br,Ie.length===1&&Ie[0].type===v.paragraph)Ie=Ie[0].children;else if(r.p){var Mr=[];r.p.push({src:Ie,dest:Mr,unwrap:!0}),Ie=Mr}else{for(var vr=[],nr=0;nr<Ie.length;nr++)if(Ie[nr].type===v.paragraph)for(var Tr=Ie[nr].children,ot=0;ot<Tr.length;ot++)vr.push(Tr[ot]);else vr.push(Ie[nr]);Ie=vr}}if(zr){var Vr=[zr,{type:v.text,text:\" \"}];if(r.p)r.p.push({src:Ie,dest:Vr,unwrap:!1});else for(var $r=0;$r<Ie.length;$r++)Vr.push(Ie[$r]);de.push(Vr)}else de.push(Ie)}return{node:{type:i.ordered?v.orderedList:v.unorderedList,start:i.ordered?i.start:void 0,items:de},end:A}}var zt=new Set([\"address\",\"article\",\"aside\",\"base\",\"basefont\",\"blockquote\",\"body\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hr\",\"html\",\"iframe\",\"legend\",\"li\",\"link\",\"main\",\"menu\",\"menuitem\",\"nav\",\"noframes\",\"ol\",\"optgroup\",\"option\",\"p\",\"param\",\"search\",\"section\",\"summary\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\"]);function kr(e,t,r){let n={};for(let[o,A]of Object.entries(e)){let C=o.toLowerCase();if(C===\"style\"&&typeof A==\"string\"){let l={},_=[],d=0,u=0;for(let R=0;R<A.length;R++){let s=A.charCodeAt(R);s===ir?d++:s===fr?d--:s===gt&&d===0&&(_.push(A.slice(u,R)),u=R+1)}u<A.length&&_.push(A.slice(u));let c=!1;_.forEach(R=>{let s=R.indexOf(\":\");if(s===-1)return;let T=R.slice(0,s).trim(),f=R.slice(s+1).trim();if(T&&f){if(/url\\s*\\(\\s*(javascript|vbscript|data:(?!image\\/))/i.test(f)){c=!0;return}let h=T.indexOf(\"-\")===-1?T:T.replace(/-([a-z])/g,(g,S)=>S.toUpperCase());l[h]=f}}),!c&&Object.keys(l).length>0&&(n[o]=l)}else if((C===\"href\"||C===\"src\")&&r?.sanitizer){let l=r.sanitizer(A,t,C);l!=null&&(n[o]=l)}else if(A===\"\")n[o]=!0;else if(A.length>=2&&A.charCodeAt(0)===Lr&&A.charCodeAt(A.length-1)===Bt){var a=A.slice(1,-1);if(a.length>0){var i=a.charCodeAt(0);if(i===_e||i===Lr)try{n[o]=JSON.parse(a);continue}catch{}}if(a===\"true\"){n[o]=!0;continue}if(a===\"false\"){n[o]=!1;continue}if(r?.evalUnserializableExpressions)try{n[o]=(0,eval)(`(${a})`);continue}catch{}n[o]=a}else n[o]=A}return n}function Gr(e,t,r){let n=t.length;if(n===0)return r;var a=t.charCodeAt(0),i=a>=J&&a<=G||a>=ie&&a<=ce;if(!i){for(var o=String.fromCharCode(a),A=e.length-n,C=r;C<=A;){var l=e.indexOf(o,C);if(l===-1||l>A)return-1;for(var _=!0,d=1;d<n;d++){var u=e.charCodeAt(l+d),c=t.charCodeAt(d);if(u>=J&&u<=G&&(u+=_r),c>=J&&c<=G&&(c+=_r),u!==c){_=!1;break}}if(_)return l;C=l+1}return-1}a>=J&&a<=G&&(a+=_r);for(let s=r;s<=e.length-n;s++){var R=e.charCodeAt(s);if(R>=J&&R<=G&&(R+=_r),R!==a)continue;let T=!0;for(let f=1;f<n;f++){let h=e.charCodeAt(s+f),g=t.charCodeAt(f);if(h>=J&&h<=G&&(h+=_r),g>=J&&g<=G&&(g+=_r),h!==g){T=!1;break}}if(T)return s}return-1}function ji(e,t,r){let n=t.length;var a=t.charCodeAt(0);a>=J&&a<=G&&(a+=_r);for(let o=Math.min(r,e.length-n);o>=0;o--){var i=e.charCodeAt(o);if(i>=J&&i<=G&&(i+=_r),i!==a)continue;let A=!0;for(let C=1;C<n;C++){let l=e.charCodeAt(o+C),_=t.charCodeAt(C);if(l>=J&&l<=G&&(l+=_r),_>=J&&_<=G&&(_+=_r),l!==_){A=!1;break}}if(A)return o}return-1}var Zt=-1;function Sn(e,t,r){let n=r.toLowerCase(),a=`<${n}`,i=`</${n}`,o=1,A=t,C=e.length;for(Zt=-1;A<C&&o>0;){let d=Gr(e,a,A),u=Gr(e,i,A);if(u===-1)return-1;if(d!==-1&&d<u){let c=wr(e,d);c?(c.tag.toLowerCase()===n&&!c.f&&!c.n&&!nt(c.tag)&&o++,A=c.end):A=d+1}else{var l=u+i.length,_=l<C?e.charCodeAt(l):62;if((_===U||_===N||_===k||_===M)&&(o--,o===0)){Zt=u;let c=u+i.length;for(;c<C&&e.charCodeAt(c)!==U;)c++;return c+1}A=u+1}}return-1}function Va(e,t,r,n){if(n.ignoreHTMLBlocks||n.disableParsingRawHTML)return null;var a=Ae(e,t);if(Le(e,t,a),oe>3&&!r.inHTML)return null;var i=t+te;if(e.charCodeAt(i)!==ae)return null;var o=e.indexOf(\">\",i+1);if(o!==-1&&o<a){var A=e.slice(i+1,o);if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(A)||/^[^\\s@]+@[^\\s@]+$/.test(A))return null}var C=eo(e,i);if(C>=1&&C<=5){var l=e.length;if(C===1){for(var _=e.length,d=0;d<$n.length;d++){var u=Gr(e,`</${$n[d]}>`,i);u>=0&&u<_&&(_=u)}if(_<e.length){var c=e.indexOf(\">\",_);l=c>=0?q(e,c+1):e.length}}else{var R=C===2?\"-->\":C===3?\"?>\":C===4?\">\":\"]]>\",s=e.indexOf(R,i);s>=0&&(l=q(e,s+R.length))}var T=e.slice(i,l);if(C>=2)return{node:{type:v.htmlComment,text:T,s:!1,raw:!0},end:l};var f=\"div\",h=T.match(/^<\\/?([a-zA-Z][a-zA-Z0-9-]*)/);h&&(f=h[1]);var g=wr(e,i),S={},p;g&&!g.f&&(S=kr(g.attrs,f,n),p=g.g+g.b);var H=[],w=f.toLowerCase(),E=`</${w}`,m=Gr(T,E,0),y=\"\",x,B,I;if(g?.f){I=T.slice(0,g.end-i);for(var O=T.slice(g.end-i);O.length>0&&O.charCodeAt(O.length-1)===M;)O=O.slice(0,-1);O&&(B=cr(O))}else if(g&&!g.f){var D=g.end-i;if(m===-1){for(var P=T;P.length>0&&P.charCodeAt(P.length-1)===M;)P=P.slice(0,-1);x=cr(P)}else{var L=D;T.charCodeAt(L)===M&&L++;for(var Z=m;Z>L;){var ne=T.charCodeAt(Z-1);if(ne!==N&&ne!==k&&ne!==M&&ne!==Er)break;Z--}var ve=T.slice(L,Z);ve&&(B=cr(ve));for(var Q=T.slice(m);Q.length>0&&Q.charCodeAt(Q.length-1)===M;)Q=Q.slice(0,-1);I=cr(Q),y=T.slice(D,m).trim()}}var Pe=g?g.f:!1;return{node:{type:v.htmlBlock,tag:f,attrs:S,b:p,children:H,e:B,h:I,j:x,text:y,c:!0,a:Pe},end:l}}if(C===6||C===7){var Ee=wa(e,t),ue=Ee<e.length?Ee:e.length,He=e.slice(i,ue),Fe=Ee<e.length?q(e,Ee):e.length,X=wr(e,i);if(X){var be=X.tag,j=be.toLowerCase(),se=X.f;if(se){var le=e.slice(X.end,ue);return{node:{type:v.htmlBlock,tag:be,attrs:{},children:[],h:e.slice(i,X.end),e:le?cr(le):void 0,text:le,c:!0,a:!0},end:Fe}}if(X.n||nt(be))return{node:{type:v.htmlBlock,tag:be,attrs:kr(X.attrs,be,n),b:X.g+X.b,children:[],text:\"\",c:!1,a:!1},end:X.end<e.length&&e.charCodeAt(X.end)===M?X.end+1:X.end};var Ue=r.d||0,K=e.slice(i,ue),we=-1,$e=-1,Ce=!1;if(Ue<10){for(var Re=`</${j}`,We=X.end-i,Te=1,Me=We;Me<K.length&&Te>0;){var Be=Gr(K,`<${j}`,Me),ze=Gr(K,Re,Me);if(ze===-1)break;if(Be!==-1&&Be<ze){var V=Be+j.length+1;if(V<K.length){var Ne=K.charCodeAt(V);(Ne===N||Ne===k||Ne===M||Ne===U||Ne===ge)&&Te++}Me=Be+1}else{var Y=ze+Re.length;if(Y<K.length){var pe=K.charCodeAt(Y);if((pe===U||pe===N||pe===k||pe===M)&&(Te--,Te===0)){we=ze;for(var Ze=Y;Ze<K.length&&K.charCodeAt(Ze)!==U;)Ze++;$e=Ze+1;break}}else if(Te--,Te===0){we=ze,$e=K.length;break}Me=ze+1}}if(we===-1&&!X.f&&(C===6||X.u)){var b=Sn(e,X.end,j);if(b!==-1){for(var fe=Zt,tr=X.end,ee=!1,sr=!1,de=!1,Se=0,Ye=!1,De=!1,Xe=tr;Xe<fe;){var Je=e.charCodeAt(Xe);if(Je===M)De&&(ee=!0),Ye||Se++,De=!0,Xe++;else if(Je===N||Je===k)Xe++;else{if(!Ye&&(Ye=!0,Se>=2&&Je===ae)){de=!0;break}if(De=!1,Je===ae){var zr=e.charCodeAt(Xe+1)|32;if((zr===Mt||zr===on||zr===qr)&&(Ta.lastIndex=Xe,Ta.test(e))){sr=!0;break}}Xe++}}if(ee&&!de&&!sr){var xr=Ae(e,b);ue=xr,Fe=q(e,xr),K=e.slice(i,ue),He=e.slice(i,ue),we=fe-i,$e=b-i,Ce=!0}}}}var Ie=X.b.indexOf(`\n`)!==-1||X.g.indexOf(`\n`)!==-1,Zr=!1;if(we!==-1){var mt=K.slice($e).trim();Zr=mt.length===0}var br=!1,Qr=ue,Mr=Fe;if(we!==-1){var vr=i+$e,nr=Ae(e,vr-1);if(vr<nr){for(var Tr=vr;Tr<nr&&(e.charCodeAt(Tr)===N||e.charCodeAt(Tr)===k);)Tr++;if(Tr<nr&&e.charCodeAt(Tr)===ae){var ot=wr(e,Tr);ot&&!ot.f&&(br=!0,Qr=vr,Mr=vr,Zr=!0)}}if(!br){var Vr=q(e,nr);if(Vr<ue){for(var $r=Vr;$r<ue&&(e.charCodeAt($r)===N||e.charCodeAt($r)===k);)$r++;if($r<ue&&e.charCodeAt($r)===ae){var ni=wr(e,$r);ni&&(br=!0,Qr=nr,Mr=Vr,Zr=!0)}}}if(!br&&r.inHTML){br=!0,Qr=nr,Mr=q(e,nr);var ai=e.slice(vr,nr).trim();Zr=ai.length===0}}var At=[],Ar=\"\";if(we!==-1){Ar=K.slice(X.end-i,we);var lt=Ar.trim();if(lt){var{inline:ii,inHTML:oi,d:Ai}=r;r.inHTML=!0,r.d=Ue+1;var li=j===\"p\";if(li)r.inline=!0,At=dt(lt,!1,r,n);else{var yn=Ar.indexOf(`\n\n`)!==-1,xn=Rn.test(lt),Vt=Sa.test(lt),Ci=yn||xn||r.inHTML&&Vt,fi=Ar.length>=2&&Ar.charCodeAt(0)===M&&Ar.charCodeAt(Ar.length-1)===M&&!yn;fi&&!xn&&!Vt?At=[{type:v.text,text:lt}]:Ci||Vt?(r.inline=!1,At=Ur(Ar,r,n)):(r.inline=!0,At=dt(lt,!1,r,n))}r.inline=ii,r.inHTML=oi,r.d=Ai}}var Mn=!1;if(C===6&&we!==-1&&!r.inHTML&&!Ie){var _i=/<[a-zA-Z][^>]*>/.test(Ar),di=Ar.indexOf(`\n\n`)!==-1||Rn.test(Ar);_i&&!di&&(Mn=!0)}var ci=!Ce&&(r.inHTML||C===7||Ie||!Zr||Mn);if(ci){var ct,Sr,Bn=!1;if(we!==-1&&br){var Pn=!1;if(r.inHTML&&$e<K.length){for(var bt=$e;bt<K.length&&K.charCodeAt(bt)!==M;)bt++;var Yt=K.slice($e,bt).trim();Pn=Yt.length>1&&Yt.charCodeAt(0)===ae&&Yt.charCodeAt(1)!==ge}Sr=Pn?K.slice(X.end-i):Ar,Bn=!0}else(C===7||r.inHTML)&&we!==-1?(Sr=K.slice(X.end-i),Sr.charCodeAt(0)===M&&(Sr=Sr.slice(1))):br?ct=e.slice(i,Qr):Ie?ct=He:(Sr=K.slice(X.end-i),Sr.charCodeAt(0)===M&&(Sr=Sr.slice(1)));var Dn=ct!==void 0,qt=cr(ct===void 0?Sr||\"\":ct),Xn={type:v.htmlBlock,tag:be,attrs:kr(X.attrs,be,n),b:X.g+X.b,children:At,e:Dn?void 0:qt,j:Dn?qt:void 0,text:qt,c:!0,a:!1};return Bn&&(Xn.x=!0),{node:Xn,end:Mr}}var Jn=cr(Ar);return{node:{type:v.htmlBlock,tag:be,attrs:kr(X.attrs,be,n),b:X.g+X.b,children:At,e:Ce?void 0:Jn,text:Jn,c:!1,a:!1},end:Mr}}var pt=He.match(/^<(\\/?)([a-zA-Z][a-zA-Z0-9-]*)/),ui=pt?pt[2]:\"div\",jt=pt?pt[1]===\"/\":!1,en,Kn,Gn,It=\"\";if(jt){var rn=He.indexOf(\">\");rn===-1?en=He:(en=He.slice(0,rn+1),It=He.slice(rn+1),It&&(Kn=cr(It)))}else Gn=cr(He);return{node:{type:v.htmlBlock,tag:ui,attrs:{},children:[],e:Kn,h:en,j:Gn,text:jt?It:He,c:!0,a:jt},end:Fe}}var Qe=wr(e,i);if(!Qe)return null;var Br=Qe.tag,tn=Br.toLowerCase(),Fn=Br.charCodeAt(0),Ot=Fn>=J&&Fn<=G;if(!(Ot||zt.has(tn)||Nt.has(tn)||tn.includes(\"-\")))return null;if(Qe.f)return{node:{type:v.htmlSelfClosing,tag:Br,attrs:{},h:e.slice(i,Qe.end),a:!0},end:Qe.end};var Yr=Sn(e,Qe.end,Br),ut=[];if(Yr!==-1){var Ri=Zt,Lt=e.slice(Qe.end,Ri),yt=Lt.trim();if(yt){var Hi=Lt.indexOf(`\n\n`)!==-1,hi=Rn.test(yt),si=Sa.test(yt),{inline:$i,inHTML:gi,d:vi}=r;r.inHTML=!0,r.d=(r.d||0)+1,Hi||hi||si?(r.inline=!1,ut=Ur(Lt,r,n)):(r.inline=!0,ut=dt(yt,!1,r,n)),r.inline=$i,r.inHTML=gi,r.d=vi}var Ti=Ae(e,Yr),Si=e.slice(Yr,Ti).trim(),nn=Si?Yr:q(e,Yr),Un=Ot?e.slice(i,Yr):e.slice(i,nn),No=Ot?Yr:nn;return{node:{type:v.htmlBlock,tag:Br,attrs:kr(Qe.attrs,Br,n),b:Qe.g+Qe.b,children:ut,j:cr(Un),text:Ot?Lt:Un,c:!0,a:!1},end:nn}}var Rt=wa(e,Qe.end),Ei=Rt<e.length?q(e,Rt):Rt,an=e.slice(Qe.end,Rt);if(an.trim()){var{inline:Ni,inHTML:ki,d:wi}=r;r.inline=!1,r.inHTML=!0,r.d=(r.d||0)+1,ut=Ur(an,r,n),r.inline=Ni,r.inHTML=ki,r.d=wi}var mi=e.slice(Qe.end,Rt);return{node:{type:v.htmlBlock,tag:Br,attrs:kr(Qe.attrs,Br,n),b:Qe.g+Qe.b,children:ut,e:cr(mi),text:an,c:!0,a:!1},end:Ei}}function eo(e,t){if(e.charCodeAt(t)!==ae)return 0;var r=t+1,n=e.length;if(e.charCodeAt(r)===Ke&&e.charCodeAt(r+1)===F&&e.charCodeAt(r+2)===F)return 2;if(e.charCodeAt(r)===jr)return 3;if(e.charCodeAt(r)===Ke){var a=e.charCodeAt(r+1);if(a>=J&&a<=G)return 4;if(e.slice(r+1,r+8)===\"[CDATA[\")return 5}for(var i=e.charCodeAt(r)===ge,o=i?r+1:r,A=o;A<n;){var C=e.charCodeAt(A);if(C>=J&&C<=G||C>=ie&&C<=ce||C>=W&&C<=z||C===F)A++;else break}if(A===o)return 0;var l=e.slice(o,A);if(Nt.has(l.toLowerCase())){if(i)return 0;var _=e.charCodeAt(A);return _===N||_===k||_===U||_===M||A>=n?1:0}if(zt.has(l.toLowerCase())){if(i){for(var d=A;d<n&&(e.charCodeAt(d)===N||e.charCodeAt(d)===k);)d++;return d<n&&e.charCodeAt(d)===U?6:0}var u=A<n?e.charCodeAt(A):-1;return u===N||u===k||u===U||u===M||u===ge||u===-1?6:0}if(i){for(var c=A;c<n&&(e.charCodeAt(c)===N||e.charCodeAt(c)===k);)c++;if(c<n&&e.charCodeAt(c)===U){var R=Ae(e,t),s=e.slice(c+1,R).trim();if(s===\"\")return 7}}else{var T=Ae(e,t),f=wr(e,t);if(f&&f.end<=T){var h=e.slice(f.end,T).trim();if(h===\"\")return 7}}return 0}function ya(e,t,r){for(var n=0,a=e.length;n<a&&(e.charCodeAt(n)===N||e.charCodeAt(n)===k);)n++;for(;a>n&&(e.charCodeAt(a-1)===N||e.charCodeAt(a-1)===k);)a--;n<a&&e.charCodeAt(n)===ye&&n++,a>n&&e.charCodeAt(a-1)===ye&&(a-2<n||e.charCodeAt(a-2)!==me)&&a--;for(var i=[],o=n,A=!1,C=[],l=n;l<a;){var _=e.charCodeAt(l);if(_===me&&l+1<a){e.charCodeAt(l+1)===ye?(A||(A=!0,C=[]),C.push(e.slice(o,l)),C.push(\"|\"),l+=2,o=l):l+=2;continue}if(_===re){for(var d=0;l<a&&e.charCodeAt(l)===re;)d++,l++;for(var u=!1;l<a&&!u;){for(var c=0;l<a&&e.charCodeAt(l)===re;)c++,l++;c===d?u=!0:c===0&&l++}continue}if(_===ye){var R=A?(C.push(e.slice(o,l)),C.join(\"\")):e.slice(o,l);i.push(R.trim()),l++,o=l,A=!1,C=[];continue}l++}var s=A?(C.push(e.slice(o,a)),C.join(\"\")):e.slice(o,a);return i.push(s.trim()),i.map(T=>{var f=T.indexOf(\"\\\\|\")===-1?T:T.replace(/\\\\\\|/g,\"|\");return f?dt(f,!1,t,r):[]})}function xa(e,t,r,n){let a=Ae(e,t);var i=e.indexOf(\"|\",t);if(i<0||i>=a)return null;let o=q(e,a);if(o>=e.length)return null;let A=Ae(e,o);if(!za(e,o,A))return null;let C=e.slice(t,a),l=e.slice(o,A);for(var _=[],d=0,u=l.length;d<u&&(l.charCodeAt(d)===N||l.charCodeAt(d)===k);)d++;for(d<u&&l.charCodeAt(d)===ye&&d++;d<u;){for(;d<u&&(l.charCodeAt(d)===N||l.charCodeAt(d)===k);)d++;if(d>=u||l.charCodeAt(d)===ye)break;var c=l.charCodeAt(d)===Ge;for(c&&d++;d<u&&l.charCodeAt(d)===F;)d++;var R=d<u&&l.charCodeAt(d)===Ge;for(R&&d++,_.push(c&&R?\"center\":R?\"right\":c?\"left\":null);d<u&&(l.charCodeAt(d)===N||l.charCodeAt(d)===k);)d++;d<u&&l.charCodeAt(d)===ye&&d++}let s=ya(C,r,n);if(_.length!==s.length)return null;let T=[],f=q(e,A);for(;f<e.length;){let w=Ae(e,f),E=e.slice(f,w);if(er(e,f,w))break;if(Le(e,f,w),oe<4){var h=e.charCodeAt(f+te);if(h===U||h===lr||(h===F||h===ke||h===he)&&Fr(e,f))break;if(h===re||h===Oe){for(var g=f+te,S=0;g<w&&e.charCodeAt(g)===h;)S++,g++;if(S>=3)break}}T.push(ya(E,r,n)),f=q(e,w)}if(n.optimizeForStreaming&&T.length===0)return null;for(var p=s.length,H=0;H<T.length;H++)if(T[H].length<p)for(;T[H].length<p;)T[H].push([]);else T[H].length>p&&(T[H].length=p);return{node:{type:v.table,header:s,cells:T,align:_},end:f}}function ro(e,t,r){var n=Ae(e,t);if(Le(e,t,n),oe>3)return null;var a=t+te;if(e.charCodeAt(a)!==_e)return null;if(a+1<e.length&&e.charCodeAt(a+1)===ur){var i=to(e,a,r);return i||null}r.refs||(r.refs=Object.create(null));var o=Za(e,a,r.refs);return o===null?null:{node:{type:v.refCollection},end:o}}function to(e,t,r){var n=e.length;if(e.charCodeAt(t)!==_e||t+1>=n||e.charCodeAt(t+1)!==ur)return null;for(var a=t+2,i=a;a<n&&e.charCodeAt(a)!==qe;){if(e.charCodeAt(a)===M)return null;a++}if(a>=n)return null;var o=`^${e.slice(i,a)}`.toLowerCase();if(a++,a>=n||e.charCodeAt(a)!==Ge)return null;for(a++;a<n&&(e.charCodeAt(a)===N||e.charCodeAt(a)===k);)a++;if(a<n&&e.charCodeAt(a)===M)for(a++;a<n&&(e.charCodeAt(a)===N||e.charCodeAt(a)===k);)a++;var A=e.indexOf(`\n`,a);A<0&&(A=n);for(var C=e.slice(a,A).trim(),l=A<n?A+1:n;l<n;){var _=Ae(e,l);if(Le(e,l,_),oe>=2&&!er(e,l,_))C+=`\n${e.slice(l,_)}`,l=q(e,_);else if(er(e,l,_)){var d=q(e,_);if(d<n){var u=Ae(e,d);if(Le(e,d,u),oe>=2){C+=`\n`,l=q(e,_);continue}}break}else break}var c=r.refs;return c&&!c[o]&&(c[o]={target:C,title:void 0}),{node:{type:v.footnote},end:l}}function no(e,t,r,n){let a=t,i=0,o=0,A=-1;for(;a<e.length;){let I=A>=0?A:Ae(e,a);if(A=-1,er(e,a,I))break;if(Le(e,a,I),oe<4&&o>0&&!r.l){let D=e.charCodeAt(a+te);if(D===Cr||D===F){let P=a+te;for(;P<I&&e.charCodeAt(P)===D;)P++;for(;P<I&&(e.charCodeAt(P)===N||e.charCodeAt(P)===k);)P++;if(P>=I){i=D===Cr?1:2,a=q(e,I);break}}}o=I;let O=q(e,I);if(O<e.length){if(e.charCodeAt(O)===Pt){var C=Ae(e,O);a=q(e,C),o=C;continue}let D=Ae(e,O);if(A=D,Le(e,O,D),oe<4){let P=e.charCodeAt(O+te);if(P===U){a=O;break}if(P===lr){for(var l=O+te,_=0;l<D&&e.charCodeAt(l)===lr&&_<=6;)_++,l++;if(_>=1&&_<=6&&(l>=D||e.charCodeAt(l)===N||e.charCodeAt(l)===k)){a=O;break}}if(P===re||P===Oe){for(var d=O+te,u=0;d<D&&e.charCodeAt(d)===P;)u++,d++;if(u>=3){a=O;break}}if(P===ae){var c=O+te+1,R=c<D?e.charCodeAt(c):0,s=R===Ke||R===jr;if(!s&&R===ge){for(var T=c+1,f=T;f<D&&(e.charCodeAt(f)>=J&&e.charCodeAt(f)<=G||e.charCodeAt(f)>=ie&&e.charCodeAt(f)<=ce||e.charCodeAt(f)>=W&&e.charCodeAt(f)<=z||e.charCodeAt(f)===F);)f++;f>T&&(s=zt.has(e.slice(T,f).toLowerCase()))}else if(!s){for(var h=c;h<D&&(e.charCodeAt(h)>=J&&e.charCodeAt(h)<=G||e.charCodeAt(h)>=ie&&e.charCodeAt(h)<=ce||e.charCodeAt(h)>=W&&e.charCodeAt(h)<=z||e.charCodeAt(h)===F);)h++;if(h>c){var g=e.slice(c,h).toLowerCase();s=zt.has(g)||Nt.has(g)}}if(s&&Va(e,O,r,n)){a=O;break}}if(P===F||P===ke||P===Or){let L=O+te+1;if(L<D&&(e.charCodeAt(L)===N||e.charCodeAt(L)===k)){var S=St(e,L,D);if(S<D&&!Fr(e,O)){a=O;break}}}if(P>=W&&P<=z){let L=O+te;for(;L<D&&e.charCodeAt(L)>=W&&e.charCodeAt(L)<=z;)L++;if(L<D&&(e.charCodeAt(L)===ar||e.charCodeAt(L)===fr)&&L-(O+te)===1&&e.charCodeAt(O+te)===49){var p=L+1;if(p<D&&(e.charCodeAt(p)===N||e.charCodeAt(p)===k)){var H=St(e,p,D);if(H<D){a=O;break}}}}if(P===ye){let L=q(e,D);if(L<e.length){let Z=Ae(e,L);if(za(e,L,Z)){a=O;break}}}if((P===F||P===ke||P===he)&&Fr(e,O)){if(P!==F){a=O;break}let L=0,Z=O+te;for(;Z<D&&e.charCodeAt(Z)===F;)L++,Z++;for(;Z<D&&(e.charCodeAt(Z)===N||e.charCodeAt(Z)===k);)Z++;if(Z<D){a=O;break}}}}a=q(e,I)}for(var w=i?o:a;w>t&&(e.charCodeAt(w-1)===M||e.charCodeAt(w-1)===Er||e.charCodeAt(w-1)===N||e.charCodeAt(w-1)===k);)w--;for(var E=t;E<w&&(e.charCodeAt(E)===N||e.charCodeAt(E)===k);)E++;if(E>=w)return null;for(var m=!1,y=E;y<w;y++)if(e.charCodeAt(y)===Pt){m=!0;break}var x=m?e.slice(E,w).replace(/\\u001E/g,\"\"):e.slice(E,w);if(!x)return null;let B=dt(x,!0,r,n);return i?{node:{type:v.heading,level:i,children:B,id:\"\"},end:a}:{node:{type:v.paragraph,children:B},end:a}}function dt(e,t,r,n){var a=r.t;if(!a){var i=r.k;r.k=t;var o=mr(e,0,e.length,r,n);return r.k=i,o}var A=[];return a.push({dest:A,text:e,breaks:t,inline:r.inline,inAnchor:r.inAnchor,inHTML:r.inHTML,htmlDepth:r.d,inList:r.inList,inBlockQuote:r.inBlockQuote,noSetext:r.l,depth:r.o}),A}function ao(e,t,r){if(e.charCodeAt(t)!==re)return null;let n=Wr(e,t,r,96),a=t+n;for(;a<r;){let i=e.indexOf(\"`\",a);if(i<0||i>=r)return null;let o=Wr(e,i,r,96);if(o===n){let A=e.slice(t+n,i);return A.indexOf(`\n`)!==-1&&(A=A.replace(/\\n/g,\" \")),A.length>0&&A[0]===\" \"&&A.at(-1)===\" \"&&A.trim().length>0&&(A=A.slice(1,-1)),{node:{type:v.codeInline,text:A},end:i+o}}a=i+o}return null}function pn(e,t,r){if(e.charCodeAt(t)!==re)return t;let n=Wr(e,t,r,96),a=t+n;for(;a<r;){let i=e.indexOf(\"`\",a);if(i<0||i>=r)return t;let o=Wr(e,i,r,96);if(o===n)return i+o;a=i+o}return t}function io(e,t,r){if(e.charCodeAt(t)!==ae)return t;if(t+1<r&&e.charCodeAt(t+1)===ge){let l=t+2;for(;l<r&&e.charCodeAt(l)!==U;)l++;return l<r?l+1:t}if(t+3<r&&e.charCodeAt(t+1)===Ke&&e.charCodeAt(t+2)===F&&e.charCodeAt(t+3)===F){let l=e.indexOf(\"-->\",t+4);return l>=0?l+3:t}let n=t+1,a=n;for(;n<r;){let l=e.charCodeAt(n);if(l>=J&&l<=G||l>=ie&&l<=ce||l>=W&&l<=z||l===F)n++;else break}if(n===a)return t;let i=e.slice(a,n).toLowerCase(),o=!1;for(;n<r;){let l=e.charCodeAt(n);if(l===U){n++;break}if(l===ge&&n+1<r&&e.charCodeAt(n+1)===U){n+=2,o=!0;break}if(l===Ir||l===Dr){var A=l;for(n++;n<r&&e.charCodeAt(n)!==A;)n++;n<r&&n++;continue}if(l===M)return t;n++}if(o||nt(i))return n;let C=1;for(;n<r&&C>0;)if(e.charCodeAt(n)===ae)if(n+1<r&&e.charCodeAt(n+1)===ge){let l=n+2,_=l;for(;_<r&&(e.charCodeAt(_)>=J&&e.charCodeAt(_)<=G||e.charCodeAt(_)>=ie&&e.charCodeAt(_)<=ce);)_++;if(e.slice(l,_).toLowerCase()===i){for(;_<r&&e.charCodeAt(_)!==U;)_++;if(_<r&&_++,C--,C===0)return _}n=_}else{let l=n+1,_=l;for(;_<r&&(e.charCodeAt(_)>=J&&e.charCodeAt(_)<=G||e.charCodeAt(_)>=ie&&e.charCodeAt(_)<=ce);)_++;e.slice(l,_).toLowerCase()===i&&C++,n++}else n++;return n}function oo(e,t,r){let a=e.charCodeAt(t)===Ke?t+1:t;if(e.charCodeAt(a)!==_e)return t;let i=1,o=a+1;for(;o<r&&i>0;){let C=e.charCodeAt(o);if(C===me&&o+1<r){o+=2;continue}C===_e?i++:C===qe&&i--,o++}if(i!==0||o>=r)return t;let A=e.charCodeAt(o);if(A===ir){let C=1;for(o++;o<r&&C>0;){let l=e.charCodeAt(o);if(l===me&&o+1<r){o+=2;continue}l===ir?C++:l===fr&&C--,o++}return C===0?o:t}if(A===_e){let C=1;for(o++;o<r&&C>0;){let l=e.charCodeAt(o);l===_e?C++:l===qe&&C--,o++}return C===0?o:t}return t}function Ao(e,t,r,n,a){if(e.charCodeAt(t)!==Oe||t+1>=r||e.charCodeAt(t+1)!==Oe)return null;let i=t+2;for(;i+1<r;){let o=e.charCodeAt(i);if(o===re){let A=pn(e,i,r);if(A>i){i=A;continue}}if(o===Oe&&e.charCodeAt(i+1)===Oe){let A=e.slice(t+2,i),C=mr(A,0,A.length,n,a);return{node:{type:v.textFormatted,tag:\"del\",children:C},end:i+2}}o===me&&i+1<r&&i++,i++}return null}function lo(e,t,r,n,a){if(e.charCodeAt(t)!==Cr||t+1>=r||e.charCodeAt(t+1)!==Cr)return null;let i=t+2;for(;i+1<r;){let o=e.charCodeAt(i);if(o===re){let A=pn(e,i,r);if(A>i){i=A;continue}}if(o===Cr&&e.charCodeAt(i+1)===Cr&&i>t+2){let A=e.slice(t+2,i),C=mr(A,0,A.length,n,a);return{node:{type:v.textFormatted,tag:\"mark\",children:C},end:i+2}}o===me&&i+1<r&&i++,i++}return null}function Ma(e,t,r){return e<Ct?!!(bn(e)&rt):Ca.test(t[r])}function Ba(e,t,r){return e<Ct?!!(bn(e)&Xr):fa.test(t[r])}function Co(e,t,r){var n=e.charCodeAt(t);if(n!==ke&&n!==he)return null;var a=Wr(e,t,r,n);if(a===0)return null;var i=t>0?e.charCodeAt(t-1):32,o=t+a<r?e.charCodeAt(t+a):32,A=Ba(i,e,t-1),C=Ba(o,e,t+a),l=t>0?Ma(i,e,t-1):!1,_=t+a<r?Ma(o,e,t+a):!1,d=!C&&(!_||A||l),u=!A&&(!l||C||_),c,R;return n===ke?(c=d,R=u):(c=d&&(!u||l),R=u&&(!d||_)),{len:a,canOpen:c,canClose:R}}function fo(e,t,r,n){if(t.length!==0){for(var a=e.length,i=Array(a),o=null,A=null,C=0;C<a;C++){var l={node:e[C],prev:A,next:null};A?A.next=l:o=l,i[C]=l,A=l}for(var _=Array(t.length),d=0;d<t.length;d++)_[d]=i[t[d].idx];for(var u=[],c=0;c<12;c++)u[c]=-1;for(var R=0;R<t.length;){var s=t[R];if(!(s.active&&s.canClose)){R++;continue}for(var T=s.ch===ke?0:1,f=T*6+s.len%3*2+(s.canOpen?1:0),h=u[f]===void 0?-1:u[f],g=-1,S=R-1;S>h;S--){var p=t[S];if(!(!p.active||p.ch!==s.ch||!p.canOpen)&&!((s.canOpen||p.canClose)&&(p.len+s.len)%3===0&&p.len%3!==0)){g=S;break}}if(g<0){u[f]=R-1,!s.canOpen&&(s.active=!1),R++;continue}var H=t[g],w=H.len>=2&&s.len>=2,E=w?2:1;H.len-=E,s.len-=E;var m=_[g],y=_[R],x=m.node,B=y.node;x.text=x.text.slice(0,x.text.length-E),B.text=B.text.slice(E);for(var I=[],O=m.next;O&&O!==y;)I.push(O.node),O=O.next;var D={type:v.textFormatted,tag:w?\"strong\":\"em\",children:I},P={node:D,prev:m,next:y};m.next=P,y.prev=P;for(var L=g+1;L<R;L++)t[L].active=!1;if(H.len===0&&(H.active=!1,x.text===\"\")){var Z=m.prev;P.prev=Z,Z?Z.next=P:o=P}if(s.len===0){if(s.active=!1,B.text===\"\"){var ne=y.next;P.next=ne,ne&&(ne.prev=P)}}else continue;R++}for(var ve=0,Q=o;Q;){var Pe=Q.node;if(Pe.type===v.text){var Ee=Pe;if(Ee.text===\"\"){Q=Q.next;continue}if(ve>0&&e[ve-1].type===v.text){e[ve-1].text+=Ee.text,Q=Q.next;continue}}e[ve++]=Pe,Q=Q.next}e.length=ve}}function Kt(e,t,r,n){return t(e,r,n)===null?null:e}var Pa=0,En=0,Da=0,Nn=0,Xa=0,kn=0,Hn=0,Hr=0;function _o(){return Hn===2147483647&&(En=0,Nn=0,kn=0,Wt=0,Hn=0),++Hn}var hn=null,Wt=0,Gt=[],sn=256;function Ja(e,t,r,n,a){let i=e.charCodeAt(t)===Ke,o=i?t+1:t;if(e.charCodeAt(o)!==_e||Nn===Hr&&o>=Da)return null;var A=Wt===Hr?hn:null,C=A===null?0:A[o];if(C<0)return null;var l=C;if(C===0){var _=e.indexOf(\"]\",o+1);if(_<0||_>=r)return Da=o,Nn=Hr,null;l=o+1;var d=0;Gt[d++]=o;for(var u=r-o>=sn;l<r&&d>0;){var c=e.charCodeAt(l);if(c===me&&l+1<r){l+=2;continue}if(c===re){var R=pn(e,l,r);if(R>l){l=R;continue}}if(c===ae){var s=Ya(e,l,r);if(s){l=s.end;continue}var T=io(e,l,r);if(T>l){l=T;continue}}if(c===_e)Gt[d++]=l;else if(c===qe){var f=Gt[--d];A===null&&u&&l-o>=sn&&(A=hn=new Int32Array(r),Wt=Hr),A!==null&&(A[f]=l+1)}l++}if(d>0){if(A===null&&u&&l-o>=sn&&(A=hn=new Int32Array(r),Wt=Hr),A!==null)for(;d>0;)A[Gt[--d]]=-1;return null}}var h=l-1,g=e.slice(o+1,h),S=l<r?e.charCodeAt(l):0,p=!1;if(S===ir){var H=!0;for(l++;l<r&&(e.charCodeAt(l)===N||e.charCodeAt(l)===M);)l++;var w=\"\",E=l;if(l<r&&e.charCodeAt(l)===ae){for(l++,E=l;E<r&&e.charCodeAt(E)!==U;){if(e.charCodeAt(E)===me&&E+1<r){E+=2;continue}if(e.charCodeAt(E)===M){H=!1;break}E++}H&&(E>=r||e.charCodeAt(E)!==U)&&(H=!1),H&&(w=e.slice(l,E),E++)}else if(H){var m=En===Hr?Pa:-1;if(m>=0&&l>=m)H=!1;else{for(var y=0,x=!1;E<r;){var B=e.charCodeAt(E);if(B===me&&E+1<r){E+=2;continue}if(B===ir)y++;else if(B===fr){if(x=!0,y===0)break;y--}else if(B===N||B===M)break;E++}E>=r&&!x&&(m<0||l<m)&&(Pa=l,En=Hr),w=e.slice(l,E)}}if(H){for(l=E;l<r&&(e.charCodeAt(l)===N||e.charCodeAt(l)===M);)l++;var I;if(l<r){var O=e.charCodeAt(l);if(O===Ir||O===Dr||O===ir){var D=O===ir?41:O;l++;for(var P=l;l<r&&e.charCodeAt(l)!==D;)e.charCodeAt(l)===me&&l+1<r&&l++,l++;l>=r?H=!1:(I=e.slice(P,l),l++)}}if(H){for(;l<r&&(e.charCodeAt(l)===N||e.charCodeAt(l)===M);)l++;(l>=r||e.charCodeAt(l)!==fr)&&(H=!1)}}if(H){if(l++,w=Nr(_t(w)),I!==void 0&&(I=Nr(_t(I))),i){var L=mr(g,0,g.length,n,a),Z=Qt(L);return{node:{type:v.image,target:Kt(w,a?.sanitizer||dr,\"img\",\"src\"),alt:Z,title:I},end:l}}var ne=n.inAnchor;n.inAnchor=!0;var X=ne?[{type:v.text,text:g}]:mr(g,0,g.length,n,a);return n.inAnchor=ne,!n.inAnchor&&wn(X)?null:{node:{type:v.link,target:Kt(w,a?.sanitizer||dr,\"a\",\"href\"),title:I,children:X},end:l}}l=h+1,p=!0}var ve=\"\",Q=l;if(!p&&S===_e){var Pe=l+1;Q=Pe;for(var Ee=!1;Q<r&&e.charCodeAt(Q)!==qe;){if(e.charCodeAt(Q)===me&&Q+1<r){Q+=2;continue}if(e.charCodeAt(Q)===_e){Ee=!0;break}Q++}if(Ee||Q>=r)return null;var ue=e.slice(Pe,Q);if(ue.trim())ve=Ft(ue);else{if(ka(g))return null;ve=Ft(g)}Q+=1}else{if(ka(g))return null;ve=Ft(g)}var He=n.refs?.[ve];if(!He)return null;if(i)return{node:{type:v.image,target:Kt(He.target,a?.sanitizer||dr,\"img\",\"src\"),alt:Qt(mr(g,0,g.length,n,a)),title:He.title},end:Q};var Fe=n.inAnchor;n.inAnchor=!0;var X=Fe?[{type:v.text,text:g}]:mr(g,0,g.length,n,a);return n.inAnchor=Fe,!n.inAnchor&&wn(X)?null:{node:{type:v.link,target:Kt(He.target,a?.sanitizer||dr,\"a\",\"href\"),title:He.title,children:X},end:Q}}function Ya(e,t,r){if(e.charCodeAt(t)!==ae)return null;for(var n=t+1;n<r;){var a=e.charCodeAt(n);if(a===U)break;if(a===N||a===M||a===Er||a===ae)return null;n++}if(n>=r||e.charCodeAt(n)!==U)return null;var i=e.slice(t+1,n),o=i.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\\x00-\\x20]*)$/);return o?{node:{type:v.link,target:i,title:void 0,children:[{type:v.text,text:i}]},end:n+1}:i.indexOf(\"@\")!==-1&&/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(i)?{node:{type:v.link,target:`mailto:${i}`,title:void 0,children:[{type:v.text,text:i}]},end:n+1}:null}function co(e,t,r,n){if(e.charCodeAt(t)!==_e||t+1>=r||e.charCodeAt(t+1)!==ur||kn===Hr&&t>=Xa)return null;let a=t+2;for(;a<r&&e.charCodeAt(a)!==qe&&e.charCodeAt(a)!==M;)a++;if(a>=r)return Xa=t,kn=Hr,null;if(e.charCodeAt(a)!==qe)return null;let i=e.slice(t+2,a);return i?{node:{type:v.footnoteReference,target:`#${gr(i)}`,text:i},end:a+1}:null}function uo(e,t,r,n){if(n.disableBareUrls)return null;var a=\"\",i=!1,o=e.charCodeAt(t);if(o===$t||o===72?t+8<=r&&e.charCodeAt(t+1)===qr&&e.charCodeAt(t+2)===qr&&e.charCodeAt(t+3)===Mt&&(e.charCodeAt(t+4)===on&&e.charCodeAt(t+5)===Ge&&e.charCodeAt(t+6)===ge&&e.charCodeAt(t+7)===ge?a=\"https://\":e.charCodeAt(t+4)===Ge&&e.charCodeAt(t+5)===ge&&e.charCodeAt(t+6)===ge&&(a=\"http://\")):o===pr||o===70?t+6<=r&&e.charCodeAt(t+1)===qr&&e.charCodeAt(t+2)===Mt&&e.charCodeAt(t+3)===Ge&&e.charCodeAt(t+4)===ge&&e.charCodeAt(t+5)===ge&&(a=\"ftp://\"):(o===Pr||o===87)&&t+4<=r&&e.charCodeAt(t+1)===Pr&&e.charCodeAt(t+2)===Pr&&e.charCodeAt(t+3)===ar&&(a=\"www.\",i=!0),!a)return null;let A=t+a.length;for(;A<r;){let H=e.charCodeAt(A);if(H===N||H===M||H===k||H===Er||H===ae||H===U)break;A++}for(var C=0,l=0,_=t;_<A;_++){var d=e.charCodeAt(_);d===ir?C++:d===fr&&l++}let u=A;for(;u>t+a.length;){let H=e.charCodeAt(u-1);if(H===ar||H===Zn||H===Ge||H===Ke||H===jr||H===fr||H===ke||H===he||H===Oe){if(H===fr){if(C>=l)break;l--}u--}else if(H===gt){for(var c=u-2;c>t&&(e.charCodeAt(c)>=J&&e.charCodeAt(c)<=G||e.charCodeAt(c)>=ie&&e.charCodeAt(c)<=ce||e.charCodeAt(c)>=W&&e.charCodeAt(c)<=z);)c--;c>=t&&e.charCodeAt(c)===ht?u=c:u--}else break}if(u<=t+a.length)return null;var R=t+(i?4:a.length),s=e.indexOf(\"/\",R);if((s<0||s>u)&&(s=u),i&&e.indexOf(\".\",R)===-1)return null;for(var T=-1,f=-1,h=s-1;h>=R;h--)if(e.charCodeAt(h)===ar)if(T<0)T=h;else{f=h;break}for(var g=f>=0?f+1:R,h=g;h<s;h++)if(e.charCodeAt(h)===he)return null;var S=e.slice(t,u),p=i?`http://${S}`:S;return{node:{type:v.link,target:p,title:void 0,children:[{type:v.text,text:S}]},end:u}}function Ro(e,t,r,n){if(n.disableBareUrls)return null;for(var a=t,i=a;a<r;){var o=e.charCodeAt(a);if(o>=J&&o<=G||o>=ie&&o<=ce||o>=W&&o<=z||o===ar||o===Ke||o===lr||o===36||o===Ht||o===ht||o===Dr||o===ke||o===Or||o===ge||o===Cr||o===jr||o===ur||o===he||o===re||o===Lr||o===ye||o===Bt||o===Oe||o===F)a++;else break}if(a===i||a>=r||e.charCodeAt(a)!==xt)return null;a++;for(var A=a,C=-1,l=a;a<r;){var o=e.charCodeAt(a);if(o>=J&&o<=G||o>=ie&&o<=ce||o>=W&&o<=z)a++;else if((o===F||o===he)&&a>A)a++;else if(o===ar){if(a===A)break;var _=e.charCodeAt(a-1);if(_===F||_===he||a-l>63)break;if(a+1<r){var d=e.charCodeAt(a+1);if(d>=J&&d<=G||d>=ie&&d<=ce||d>=W&&d<=z)C=a,l=a+1,a++;else break}else break}else break}if(a-l>63||C<0)return null;var u=e.charCodeAt(a-1);if(!(u>=J&&u<=G||u>=ie&&u<=ce||u>=W&&u<=z)||a<=C+1)return null;for(var c=-1,R=C-1;R>=A;R--)if(e.charCodeAt(R)===ar){c=R;break}for(var s=c>=0?c+1:A,R=s;R<a;R++)if(e.charCodeAt(R)===he)return null;var T=e.slice(t,a);return{node:{type:v.link,target:`mailto:${T}`,title:void 0,children:[{type:v.text,text:T}]},end:a}}function wn(e){for(var t=0;t<e.length;t++)if(e[t].type===v.link||\"children\"in e[t]&&Array.isArray(e[t].children)&&wn(e[t].children))return!0;return!1}function Qt(e,t){for(var r=\"\",n=0;n<e.length;n++){var a=e[n];a.type===v.text?r+=a.text:a.type===v.breakLine?r+=\" \":a.type===v.codeInline||a.type===v.footnoteReference?r+=a.text:\"children\"in a&&Array.isArray(a.children)?r+=Qt(a.children,t):!t&&a.type===v.image&&(r+=a.alt||\"\")}return r}function mn(e,t,r){for(var n=0;n<e.length;n++){var a=e[n];if(a.type===v.heading){var i=a;i.id=zi(r(Qt(i.children,!0)),t)}if(\"children\"in a){var o=a.children;Array.isArray(o)&&mn(o,t,r)}if((a.type===v.orderedList||a.type===v.unorderedList)&&Array.isArray(a.items))for(var A=a.items,C=0;C<A.length;C++)mn(A[C],t,r)}}function at(e){return{type:v.text,text:e}}function Ho(e,t,r){var n=t+1;if(n>=r)return-1;if(e.charCodeAt(n)===lr){n++;var a=n<r&&(e.charCodeAt(n)===An||e.charCodeAt(n)===ln);a&&n++;for(var i=n,o=a?6:7;n<r&&n-i<=o;){var A=e.charCodeAt(n),C=A>=W&&A<=z||a&&(A>=J&&A<=st||A>=ie&&A<=pr);if(!C)break;n++}return n===i||n-i>o?-1:n<r&&e.charCodeAt(n)===gt?n+1:-1}for(var l=n;n<r&&n-l<48;){var _=e.charCodeAt(n);if(_>=J&&_<=G||_>=ie&&_<=ce||_>=W&&_<=z){n++;continue}break}return n===l?-1:n<r&&e.charCodeAt(n)===gt?n+1:-1}function ho(e,t,r,n,a){if(e.charCodeAt(t)!==ae)return null;var i=t+1;if(i>=r)return null;var o=e.charCodeAt(i);if(o===Ke&&i+1<r&&e.charCodeAt(i+1)===F&&i+2<r&&e.charCodeAt(i+2)===F){var A=i+3;if(A<r&&e.charCodeAt(A)===U)return{node:{type:v.htmlComment,text:\"\",s:!0},end:A+1};if(A+1<r&&e.charCodeAt(A)===F&&e.charCodeAt(A+1)===U)return{node:{type:v.htmlComment,text:\"-\",s:!0},end:A+2};var C=e.indexOf(\"-->\",A);return C!==-1&&C<=r-3?{node:{type:v.htmlComment,text:e.slice(t+4,C),s:!1},end:C+3}:null}if(o===jr){var l=e.indexOf(\"?>\",i+1);return l!==-1&&l<r?{node:{type:v.htmlSelfClosing,tag:\"?\",attrs:{},m:e.slice(t,l+2),a:!1},end:l+2}:null}if(o===Ke&&i+1<r){var _=e.charCodeAt(i+1);if(_===_e&&e.slice(i+1,i+8)===\"[CDATA[\"){var d=e.indexOf(\"]]>\",i+8);return d!==-1&&d<r?{node:{type:v.htmlSelfClosing,tag:\"![CDATA[\",attrs:{},m:e.slice(t,d+3),a:!1},end:d+3}:null}if(_>=J&&_<=G){var u=e.indexOf(\">\",i+2);return u!==-1&&u<r?{node:{type:v.htmlSelfClosing,tag:`!${e.slice(i+1,u)}`,attrs:{},m:e.slice(t,u+1),a:!1},end:u+1}:null}}if(o===ge){var c=i+1;if(c>=r)return null;var R=e.charCodeAt(c);if(!(R>=J&&R<=G||R>=ie&&R<=ce))return null;for(c++;c<r;){var s=e.charCodeAt(c);if(s>=J&&s<=G||s>=ie&&s<=ce||s>=W&&s<=z||s===F)c++;else break}for(;c<r&&(e.charCodeAt(c)===N||e.charCodeAt(c)===k||e.charCodeAt(c)===M);)c++;if(c<r&&e.charCodeAt(c)===U){var T=e.slice(i+1,c).trim();return{node:{type:v.htmlSelfClosing,tag:T,attrs:{},h:e.slice(t,c+1),a:!0},end:c+1}}return null}if(!(o>=J&&o<=G||o>=ie&&o<=ce))return null;var f=wr(e,t);if(!f)return null;var h=f.tag,g=h.toLowerCase(),S=f.n;if(S||nt(h))return{node:{type:v.htmlSelfClosing,tag:h,attrs:kr(f.attrs,h,a),m:f.q?gn(f):e.slice(t,f.end),a:!1},end:f.end};var p=Nt.has(g),H=Sn(e.slice(0,r),f.end,h);if(H===-1)return{node:{type:v.htmlSelfClosing,tag:h,attrs:kr(f.attrs,h,a),m:f.q?gn(f):e.slice(t,f.end),a:!1},end:f.end};var w=ji(e,`</${g}`,H),E=e.slice(f.end,w);if(p){var m=cr(E);return{node:{type:v.htmlBlock,tag:h,attrs:kr(f.attrs,h,a),b:f.g+f.b,children:[],e:m||void 0,h:e.slice(w,H),text:m,c:!0,a:!1},end:H}}var y=[],x=E.trim();if(x){var{inAnchor:B,inline:I,k:O}=n;g===\"a\"&&(n.inAnchor=!0),n.k=!1;var D=x.indexOf(`\n\n`)!==-1||/^#{1,6}\\s/.test(x);D?(n.inline=!1,y=Ur(x,n,a)):y=mr(x,0,x.length,n,a),n.inAnchor=B,n.inline=I,n.k=O}return{node:{type:v.htmlBlock,tag:h,attrs:kr(f.attrs,h,a),b:f.b,children:y,text:cr(E),c:!1,a:!1},end:H}}var so=200,Tt=0;function mr(e,t,r,n,a){if(Tt++,Tt>so)return Tt--,[{type:v.text,text:e.slice(t,r)}];var i=Hr;Hr=_o();let o=n;if(a.optimizeForStreaming){let sr=function(Se,Ye){for(var De=1,Xe=Ye+1;Xe<Se.length;Xe++){var Je=Se.charCodeAt(Xe);if(Je===_e)De++;else if(Je===qe&&(De--,De===0))return Xe}return-1},b=e.slice(t,r),fe=b;for(var A=0,C=0,l=0,_=0,d=0,u=-1,c=-1,R=-1,s=-1,T=-1,f=0;f<b.length;f++){var h=b.charCodeAt(f);if(h===_e){var g=oo(b,f,b.length);if(g>f){f=g-1;continue}}h===ke?f+1<b.length&&b.charCodeAt(f+1)===ke?(A++,u=f,f++):(C++,c=f):h===he?f+1<b.length&&b.charCodeAt(f+1)===he?(l++,R=f,f++):(_++,s=f):h===Oe&&f+1<b.length&&b.charCodeAt(f+1)===Oe&&(d++,T=f,f++)}var S=[];d%2===1&&T>=0&&S.push([T,2]),l%2===1&&R>=0&&S.push([R,2]),_%2===1&&s>=0&&S.push([s,1]),A%2===1&&u>=0&&S.push([u,2]),C%2===1&&c>=0&&S.push([c,1]),S.sort((Se,Ye)=>Ye[0]-Se[0]);for(var p=0;p<S.length;p++){var H=S[p][0],w=S[p][1];b=b.slice(0,H)+b.slice(H+w)}let tr=0,ee=-1;for(let Se=0;Se<b.length;Se++)b.charCodeAt(Se)===re&&(tr++,ee=Se);if(tr%2===1&&ee!==-1){let Se=!1,Ye=-1,De=0;for(;De<b.length;)b.charCodeAt(De)===re&&(Se?(Se=!1,Ye=-1):(Ye=De,Se=!0)),De++;Se&&Ye!==-1&&(b=b.slice(0,Ye))}for(var E=!0;E;){E=!1;for(var m=-1,y=-1,x=-1,B=!1,I=0;I<b.length;I++){var O=b.charCodeAt(I);if(O===_e&&(I===0||b.charCodeAt(I-1)!==me)){var D=I>0&&b.charCodeAt(I-1)===Ke,P=D?I-1:I,L=sr(b,I);if(L===-1)m=P,B=D,y=I+1,x=b.length;else{var Z=L+1;if(Z>=b.length)m=P,B=D,y=I+1,x=L;else if(b.charCodeAt(Z)===ir){var ne=b.indexOf(\")\",Z+1);ne===-1?(m=P,B=D,y=I+1,x=L,I=b.length):I=ne}else if(b.charCodeAt(Z)===_e){var ve=b.indexOf(\"]\",Z+1);ve===-1?(m=P,B=D,y=I+1,x=L,I=b.length):I=ve}else I=L}}}if(m>=0){var Q=B?\"\":b.slice(y,x);b=b.slice(0,m)+Q,E=!0}}let de=b.match(/<([A-Z][A-Za-z0-9]*)(?:\\s[^>]*)?>([^<]*)$/);if(de&&de.index!==void 0){var Pe=de[0].length-de[2].length,Ee=Pe>=2&&de[0].charCodeAt(Pe-2)===ge;if(!Ee){for(var ue=!1,He=0,Fe=0;Fe<de.index;Fe++)b.charCodeAt(Fe)===re&&He++;if(ue=He%2===1,!ue){let Se=de[1];Gr(b,`</${Se}`,0)===-1&&(b=b.slice(0,de.index)+de[2])}}}b!==fe&&(e=e.slice(0,t)+b,r=t+b.length)}let X=[];var be=[];let j=t;var se=\"\",le=a.disableAutoLink||a.disableBareUrls||o.inAnchor?-1:e.indexOf(\"@\",t);for(le>=r&&(le=-1);t<r;){let b=e.charCodeAt(t),fe=null;if(b===re){if(fe=ao(e,t,r),!fe){var Ue=Wr(e,t,r,re);t+=Ue-1}}else if(b===ke||b===he){var K=Co(e,t,r);if(K){if(K.canOpen||K.canClose){(se||t>j)&&(X.push(at(se+e.slice(j,t))),se=\"\");var we=e.slice(t,t+K.len),$e=at(we);be.push({idx:X.length,ch:b,len:K.len,canOpen:K.canOpen,canClose:K.canClose,active:!0}),X.push($e),t+=K.len,j=t;continue}t+=K.len-1}}else if(b===Oe)fe=Ao(e,t,r,o,a);else if(b===Cr)fe=lo(e,t,r,o,a);else if(b===_e)t+1<r&&e.charCodeAt(t+1)===ur&&(fe=co(e,t,r,o)),fe||(fe=Ja(e,t,r,o,a));else if(b===Ke&&t+1<r&&e.charCodeAt(t+1)===_e)fe=Ja(e,t,r,o,a);else if(b===ae)fe=Ya(e,t,r),!(fe||a.disableParsingRawHTML||a.ignoreHTMLBlocks)&&(fe=ho(e,t,r,o,a));else if(b===ht){var Ce=Ho(e,t,r);if(Ce!==-1){var Re=e.slice(t,Ce),We=Nr(Re);if(We!==Re){se=se+e.slice(j,t)+We,t=Ce,j=Ce;continue}}}else if((b===$t||b===Pr||b===pr)&&!o.inAnchor&&!a.disableAutoLink&&(t===0||e.charCodeAt(t-1)!==ae)){var Te=t+1<r?e.charCodeAt(t+1):0;(b===$t&&Te===qr||b===pr&&Te===qr||b===Pr&&Te===Pr)&&(fe=uo(e,t,r,a))}if(!fe&&le>=0&&le-t<=64&&!o.inAnchor&&!a.disableAutoLink&&!a.disableBareUrls&&(b>=J&&b<=G||b>=ie&&b<=ce||b>=W&&b<=z)&&(fe=Ro(e,t,r,a),!fe&&t>=le&&(le=e.indexOf(\"@\",t+1),le>=r&&(le=-1))),b===M&&o.k){var Me=!1,Be=0;if(t>j&&e.charCodeAt(t-1)===me)Me=!0,Be=1;else{for(var ze=0,V=t-1;V>=j&&e.charCodeAt(V)===N;)ze++,V--;ze>=2&&(Me=!0,Be=ze)}if(Me){for((se||t-Be>j)&&(X.push(at(se+e.slice(j,t-Be))),se=\"\"),X.push({type:v.breakLine}),t++;t<r&&e.charCodeAt(t)===N;)t++;j=t;continue}var Ne=t>j&&e.charCodeAt(t-1)===N,Y=t+1<r&&e.charCodeAt(t+1)===N;if(Ne||Y){for(var pe=t;pe>j&&e.charCodeAt(pe-1)===N;)pe--;for(se+=`${e.slice(j,pe)}\n`,t++;t<r&&e.charCodeAt(t)===N;)t++;j=t;continue}}if(fe)(se||t>j)&&(X.push(at(se+e.slice(j,t))),se=\"\"),X.push(fe.node),t=fe.end,j=t;else{if(b===me&&t+1<r){let tr=e.charCodeAt(t+1);if(bn(tr)&rt){(se||t>j)&&(X.push(at(se+e.slice(j,t))),se=\"\"),X.push(at(e[t+1])),t+=2,j=t;continue}}if(t++,le<0||le-t>64)for(;t<r&&!(le>=0&&le-t<=64);){var Ze=e.charCodeAt(t);if(Ze<Ct&&!Fa[Ze])t++;else break}}}return(se||r>j)&&(X.push(at(se+e.slice(j,r))),se=\"\"),be.length>0&&fo(X,be,n,a),Hr=i,Tt--,X}var $o=500;function Ur(e,t,r){var n=t.o||0;if(n>$o)return[{type:v.text,text:e}];t.o=n+1;let a=t;if(r.optimizeForStreaming&&!(t.i||t.w)){for(var i=e.length;i>0&&e.charCodeAt(i-1)===M;)i--;for(var o=i;o>0&&e.charCodeAt(o-1)!==M;)o--;if(i>o&&e.charCodeAt(o)===ye){for(var A=!1,C=o+1;C<i;C++){var l=e.charCodeAt(C);if(l!==N&&l!==k&&l!==ye&&l!==Ge&&l!==F){A=!0;break}}for(var _=!1,d=!1,u=0,c=o,R=o-1;R>0;){for(var s=R;s>0&&e.charCodeAt(s-1)!==M;)s--;if(e.charCodeAt(s)!==ye)break;c=s;for(var T=!0,f=!1,h=s;h<R;h++){var g=e.charCodeAt(h);if(g===F)f=!0;else if(g!==N&&g!==k&&g!==Ge&&g!==ye){T=!1;break}}T&&f?(_=!0,d=!0):d||u++,R=s-1}A?_||(e=e.slice(0,o).trimEnd()):e=_&&u>0?e.slice(0,o).trimEnd():e.slice(0,c).trimEnd()}for(var S=-1,p=-1,H=-1,w=!1,E=e.length-1;E>=0;E--)if(e.charCodeAt(E)===ae){for(var m=E+1<e.length?e.charCodeAt(E+1):0,y=m>=J&&m<=G||m>=ie&&m<=ce,x=m===ge&&E+2<e.length&&(e.charCodeAt(E+2)>=J&&e.charCodeAt(E+2)<=G||e.charCodeAt(E+2)>=ie&&e.charCodeAt(E+2)<=ce),B=m===Ke||m===jr,I=e.length;I>E+1&&e.charCodeAt(I-1)===M;)I--;var O=E+1>=I;if(y||x||B||O){var D=E+1;if((x||y)&&(D=E+2),y||x)for(;D<e.length;){var P=e.charCodeAt(D);if(P>=J&&P<=G||P>=ie&&P<=ce||P>=W&&P<=z)D++;else break}for(var L=y||x?D:E+2;L<e.length&&e.charCodeAt(L)!==U;)L++;if(L>=e.length)S=E,w=!0;else if((y||x)&&e.charCodeAt(L-1)!==ge){for(var Z=!1,ne=L+1;ne<e.length;ne++)if(e.charCodeAt(ne)===ae){Z=!0;break}Z||(S=E,p=D,H=L+1)}}break}if(S>=0){for(var ve=0,Q=0;Q<S;Q++)e.charCodeAt(Q)===re&&ve++;if(ve%2===0)if(w)e=e.slice(0,S);else{var Pe=e.slice(S+1,p);Gr(e,`</${Pe}`,0)===-1&&(e=e.slice(0,S)+e.slice(H))}}for(var Ee=e.length;Ee>0&&e.charCodeAt(Ee-1)===M;)Ee--;if(Ee>0){for(var ue=Ee;ue>0&&e.charCodeAt(ue-1)!==M;)ue--;for(var He=ue,Fe=0;He<Ee&&e.charCodeAt(He)===N&&Fe<3;)He++,Fe++;if(ue>0&&He<Ee&&Qi(e,He,Ee)){for(var X=ue-1,be=X;be>0&&e.charCodeAt(be-1)!==M;)be--;er(e,be,X)||(e=e.slice(0,ue).trimEnd())}}var j=e.length;if(j>0){for(var se=e.lastIndexOf(`\n`),le=se===-1?0:se+1,Ue=j,K=le,we=0;K<Ue&&e.charCodeAt(K)===N&&we<3;)K++,we++;if(K<Ue){var $e=e.charCodeAt(K),Ce=!1;if($e===ke||$e===F||$e===Or){var Re=K+1;if(Re>=Ue||e.charCodeAt(Re)===N||e.charCodeAt(Re)===k){for(var We=Re;We<Ue&&(e.charCodeAt(We)===N||e.charCodeAt(We)===k);)We++;We>=Ue&&(Ce=!0)}}else if($e>=W&&$e<=z){for(var Te=K;Te<Ue&&e.charCodeAt(Te)>=W&&e.charCodeAt(Te)<=z;)Te++;if(Te<Ue&&(e.charCodeAt(Te)===ar||e.charCodeAt(Te)===fr)){var Me=Te+1;if(Me>=Ue||e.charCodeAt(Me)===N||e.charCodeAt(Me)===k){for(var Be=Me;Be<Ue&&(e.charCodeAt(Be)===N||e.charCodeAt(Be)===k);)Be++;Be>=Ue&&(Ce=!0)}}}Ce&&(e=e.slice(0,le).trimEnd())}}}if(t.inline)return mr(e,0,e.length,t,r);let ze=[],V=0,Ne=e.length;if(V===0&&!r.disableFrontmatter&&e.startsWith(\"---\")){let ee=oa(e);if(ee?.hasValidYaml){if(r.preserveFrontmatter!==!1){let sr=e.slice(0,ee.endPos).trimEnd();ze.push({type:v.frontmatter,text:sr})}V=ee.endPos}}for(;V<Ne;){for(var Y=e.indexOf(`\n`,V),pe=Y<0?Ne:Y;V<Ne&&er(e,V,pe);)V=pe<Ne?pe+1:pe,V<Ne&&(Y=e.indexOf(`\n`,V),pe=Y<0?Ne:Y);if(V>=Ne)break;var Ze=e.charCodeAt(V)===Pt;Le(e,V,pe);let ee=null;if(vn=e,Tn=V,Ut=pe,!Ze&&oe>=4&&!t.inHTML)ee=Yi(e,V);else if(!Ze){let sr=V+te,de=e.charCodeAt(sr);de===lr?ee=Zi(e,V,t,r):de===U?ee=qi(e,V,t,r):de===re||de===Oe?ee=Vi(e,V,t):de===F||de===ke||de===he?(ee=Fr(e,V),!ee&&(ee=La(e,V,t,r))):de===Or||de>=W&&de<=z?ee=La(e,V,t,r):de===ae?ee=Va(e,V,t,r):de===ye?ee=xa(e,V,t,r):de===_e&&(ee=ro(e,V,t))}if(!ee){for(var b=!1,fe=V;fe<pe;fe++)if(e.charCodeAt(fe)===ye){b=!0;break}b&&(ee=xa(e,V,t,r))}if(ee||(ee=no(e,V,t,r)),ee)ee.node.type!==v.refCollection&&ze.push(ee.node),V=ee.end;else{var tr=e.indexOf(`\n`,V);V=tr<0?Ne:tr+1}}return t.o=n,ze}function qa(e,t){return e.charCodeAt(0)===65279&&(e=e.slice(1)),kt(e,{inAnchor:!1,inBlockQuote:!1,inHTML:!1,inList:!1,inline:!1,refs:Object.create(null)},Et(t))}function ja(e,t,r,n){var a=wr(e,t);return a?{tagName:a.tag,tagLower:a.tag.toLowerCase(),attrs:a.b,whitespaceBeforeAttrs:a.g,isSelfClosing:a.n,hasSpaceBeforeSlash:a.r,isClosing:a.f,hasNewline:a.g.includes(`\n`)||a.b.includes(`\n`),endPos:a.end}:null}function kt(e,t,r){Tt=0,e=_a(e),!t.refs&&(t.refs=Object.create(null)),(r.optimizeForStreaming||t.inline)&&(t.w=Wi(e,t.refs,r));var n,a;t.t||(t.t=n=[],t.p=a=[]);let i=Ur(e,t,r);if(n&&a){for(var o=n,A={inline:t.inline,inAnchor:t.inAnchor,inHTML:t.inHTML,htmlDepth:t.d,inList:t.inList,inBlockQuote:t.inBlockQuote,noSetext:t.l,depth:t.o},C=0;C<o.length;C++){var l=o[C];t.inline=l.inline,t.inAnchor=l.inAnchor,t.inHTML=l.inHTML,t.d=l.htmlDepth,t.inList=l.inList,t.inBlockQuote=l.inBlockQuote,t.l=l.noSetext,t.o=l.depth,t.k=l.breaks;var _=mr(l.text,0,l.text.length,t,r);t.k=!1;for(var d=0;d<_.length;d++)l.dest.push(_[d])}t.inline=A.inline,t.inAnchor=A.inAnchor,t.inHTML=A.inHTML,t.d=A.htmlDepth,t.inList=A.inList,t.inBlockQuote=A.inBlockQuote,t.l=A.noSetext,t.o=A.depth;for(var u=a,c=0;c<u.length;c++)for(var R=u[c],s=0;s<R.src.length;s++){var T=R.src[s];if(R.unwrap&&T.type===v.paragraph)for(var f=T.children,h=0;h<f.length;h++)R.dest.push(f[h]);else R.dest.push(T)}t.t=void 0,t.p=void 0,mn(i,t,r.slugify)}return Xt(t.refs)?[{type:v.refCollection,refs:t.refs},...i]:i}import*as rr from\"react\";var In;try{it=rr.createElement(\"div\"),In=it!=null&&typeof it==\"object\"&&\"$$typeof\"in it&&typeof it.$$typeof==\"symbol\"?it.$$typeof:Symbol.for(\"react.transitional.element\")}catch{In=Symbol.for(\"react.transitional.element\")}var it;function On(e,t,r){return{$$typeof:In,type:e,key:r==null?null:String(r),ref:null,props:t,_owner:null,_store:{},_debugStack:null,_debugTask:null}}function hr(e,t){var r={key:e};if(t){var n=fn(t);for(var a in n)r[a]=n[a]}return r}var ei=typeof rr.createContext>\"u\"?void 0:rr.createContext(void 0);function ri(e,t,r,n,a,i,o,A,C){switch(e.type){case v.blockQuote:{let f={key:r.key};return e.alert&&(f.className=`markdown-alert-${i(e.alert.toLowerCase(),gr)}`,e.children.unshift(ca(e.alert))),n(\"blockquote\",f,t(e.children,r))}case v.breakLine:return n(\"br\",{key:r.key});case v.breakThematic:return n(\"hr\",{key:r.key});case v.frontmatter:return A.preserveFrontmatter?n(\"pre\",{key:r.key},e.text):null;case v.codeBlock:{let f=e.lang?Nr(e.lang):\"\";var l=e.attrs?fn(e.attrs):{};return l.className=f?`language-${f} lang-${f}`:\"\",n(\"pre\",{key:r.key},n(\"code\",l,e.text))}case v.codeInline:return n(\"code\",{key:r.key},e.text);case v.footnoteReference:return n(\"a\",{key:r.key,href:a(e.target,\"a\",\"href\")||void 0},n(\"sup\",null,e.text));case v.gfmTask:return n(\"input\",{checked:e.completed,key:r.key,readOnly:!0,type:\"checkbox\"});case v.heading:return n(`h${e.level}`,{id:e.id,key:r.key},t(e.children,r));case v.htmlBlock:{let f=e;if(Jr(A)&&cn(f.tag)){var _=dn(f);return _.kind===\"literal\"?n(\"span\",{key:r.key},_.literal):n(\"span\",{key:r.key},...Ha(_.open,f.children?t(f.children,r):null,_.close))}let h=f.j,g=h!==void 0,S=g?h:f.a?f.e||\"\":(f.e||\"\")+(f.h||\"\");if(S&&f.c){let p=f.tag.toLowerCase(),H=Ua(p),w=f.children,E=w!=null&&w.length>0;if(H){let L=g?h:f.e||\"\",Z=Jr(A)?un(L):L;if(/<[a-z][^>]{0,100}>/i.test(S)){var d=hr(r.key,e.attrs);return d.dangerouslySetInnerHTML={__html:Z},C(e.tag,d)}return C(e.tag,hr(r.key,e.attrs),Z)}let m=new RegExp(`^<${f.tag}(\\\\s|>)`,\"i\");if(E&&!m.test(S)&&Jr(A)&&ga(S))return C(e.tag,hr(r.key,e.attrs),t(w,r));if(Wa(S)){let L=Jr(A)?un(S):S;var u=hr(r.key,e.attrs);return u.dangerouslySetInnerHTML={__html:L},C(e.tag,u)}let x=Et({slugify:A.slugify,sanitizer:a,tagfilter:!0}),B=da(S);if(new RegExp(`^<${f.tag}(\\\\s[^>]*)?>(\\\\s*</${f.tag}>)?$`,\"i\").test(B))return f.children&&f.children.length>0?C(e.tag,hr(r.key,e.attrs),t(f.children,r)):C(e.tag,hr(r.key,e.attrs));let O=kt(B,{inline:!1,refs:o,inHTML:!1},x);_n(O);let D=f.tag.toLowerCase(),P=g;if(P&&E)return C(e.tag,hr(r.key,e.attrs),t(w,r));if(P)return t(O.flatMap(tt),r);var c=Ra(O,D);if(c.found&&c.afterClose.length>0){var R=c.beforeClose.flatMap(tt),s=c.afterClose.flatMap(tt);return On(rr.Fragment,{children:[C(e.tag,hr(r.key,e.attrs),t(R,r)),t(s,r)]},r.key)}return C(e.tag,hr(r.key,e.attrs),t(O.flatMap(tt),r))}return nt(e.tag)?C(e.tag,hr(r.key,e.attrs)):C(e.tag,hr(r.key,e.attrs),e.children?t(e.children,r):\"\")}case v.htmlSelfClosing:{let f=e;if(Jr(A)&&cn(f.tag)){var T=dn(f);return n(\"span\",{key:r.key},T.kind===\"literal\"?T.literal:T.open+(T.close||\"\"))}return C(e.tag,hr(r.key,e.attrs))}case v.image:{let f=e.target===null?null:a(e.target,\"img\",\"src\");return n(\"img\",{key:r.key,alt:e.alt&&e.alt.length>0?e.alt:void 0,title:e.title||void 0,src:f||void 0})}case v.link:{let f={key:r.key};if(e.target!=null){let h=ha(e.target,a,\"a\",\"href\");h!=null&&(f.href=h)}return e.title&&(f.title=e.title),n(\"a\",f,t(e.children,r))}case v.table:{let f=e;return n(\"table\",{key:r.key},n(\"thead\",{key:\"thead\"},n(\"tr\",null,f.header.map(function(g,S){return n(\"th\",{key:S,style:f.align[S]===null?{}:{textAlign:f.align[S]}},t(g,r))}))),f.cells.length>0&&n(\"tbody\",{key:\"tbody\"},f.cells.map(function(g,S){return n(\"tr\",{key:S},g.map(function(H,w){return n(\"td\",{key:w,style:f.align[w]===null?{}:{textAlign:f.align[w]}},t(H,r))}))})))}case v.text:return e.text;case v.textFormatted:return n(e.tag,{key:r.key},t(e.children,r));case v.orderedList:case v.unorderedList:{let f=e.type===v.orderedList?\"ol\":\"ul\";return n(f,{key:r.key,start:e.type===v.orderedList?e.start:void 0},e.items.map(function(g,S){return n(\"li\",{key:S},t(g,r))}))}case v.paragraph:return n(\"p\",{key:r.key},t(e.children,r));case v.ref:return null;default:return null}}var vo=(e,t,r,n,a,i,o)=>{var A=l=>l.map(_=>\"text\"in _?_.text:\"\"),C=(l,_={})=>{var d=Array.isArray(l)?l:[l],u=(_.renderDepth||0)+1;if(u>2500)return A(d);_.renderDepth=u;for(var c=_.key,R=[],s=!1,T=0;T<d.length;T++){_.key=T;var f;if(e){var h=ri.bind(null,d[T],C,_,t,r,n,a,i,o);f=e(h,d[T],C,_)}else f=ri(d[T],C,_,t,r,n,a,i,o);var g=typeof f==\"string\";if(s&&typeof f==\"string\"){var S=R.at(-1);R[R.length-1]=(typeof S==\"string\"?S:\"\")+f}else if(f!=null)if(Array.isArray(f))for(var p=0;p<f.length;p++)R.push(f[p]);else R.push(f);s=g}return _.key=c,_.renderDepth=u-1,R};return C},To=(e,t)=>{let r=Jt(t,e,void 0);return r?typeof r==\"function\"||typeof r==\"object\"&&\"render\"in r?r:Jt(t,`${e}.component`,e):e};function So(e,t){let r={...t||{}};r.overrides=r.overrides||{};let n=r.slugify||gr,a=r.sanitizer||dr,i=r.createElement,o=Xt(r.overrides),A=g=>wt(g,{...r,wrapper:null});function C(g){for(var S in g){var p=g[S];if(typeof p==\"string\"&&p.length>0&&p.charCodeAt(0)===ae&&(Ka.test(p)||Ga.test(p)||ja(p,0))){var H=A(p.trim());g[S]=S===\"innerHTML\"&&Array.isArray(H)?H[0]:H}}}function l(g,S,...p){var H=S||{},w=g;if(o){var E=Jt(r.overrides,`${g}.props`,{});w=To(g,r.overrides),H={...H,...E,className:$a(H.className,E.className)||void 0}}if(!i){var m=H.key;return m!=null&&delete H.key,p.length===1?H.children=p[0]:p.length>1&&(H.children=p),On(w,H,m)}return i(w,H,...p)}function _(g,S,...p){return S&&C(S),l(g,S,...p)}let d=Et(r,r.forceInline),u=e[0]&&e[0].type===v.refCollection?e[0].refs:Object.create(null),c=vo(r.renderRule,l,a,n,u,r,_),R=c(e,{inline:r.forceInline,refs:u}),s=sa(u);if(s.length>0&&R.push(l(\"footer\",{key:\"footer\"},s.map(function(S){let p=S.identifier.charCodeAt(0)===ur?S.identifier.slice(1):S.identifier,H=kt(S.footnote,{inline:!0,refs:u},d);return l(\"div\",{id:n(p,gr),key:S.identifier},`${p}: `,c(H,{inline:!0,refs:u}))}))),r.wrapper===null)return R;let T=r.wrapper||(r.forceInline?\"span\":\"div\"),f;if(R.length>1||r.forceWrapper)f=R;else return R.length===1?R[0]:null;var h=r.wrapperProps?{...r.wrapperProps}:{};return h.children=f,On(T,h,\"outer\")}function wt(e=\"\",t={}){let r={...t||{}};r.overrides=r.overrides||{};let n=r.slugify||gr,a=r.sanitizer||dr;function i(A){let C=r.forceInline||!(r.forceBlock||Aa.test(A)),l=Et(r,C),_=C?A:ua(A),d=kt(_,{inline:C,refs:o},l);return So(d,{...r,forceInline:C})}let o=Object.create(null);return i(e)}function Eo(e){let t=rr.useRef(e),r=t.current;if(r!==e){var n=!0,a=0;for(var i in e)if(a++,!Object.is(r[i],e[i])){n=!1;break}if(n){var o=0;for(var A in r)o++;n=o===a}n||(t.current=e)}return t.current}var Ln=({children:e,options:t,...r})=>{if(!(typeof rr.useContext<\"u\")){let l={...t,overrides:{...t?.overrides},wrapperProps:{...t?.wrapperProps,...r}};return wt(e??\"\",l)}let a=ei?rr.useContext(ei):void 0,i=Eo(r),o=rr.useMemo(()=>({...a,...t,overrides:{...a?.overrides,...t?.overrides},wrapperProps:{...a?.wrapperProps,...t?.wrapperProps,...i}}),[a,t,i]),A=e??\"\";return rr.useMemo(()=>wt(A,o),[A,o])},ti=Ln,Po=Ln,Do=wt,Fo=ti;export{Po as Markdown,v as RuleType,Do as compiler,Fo as default,qa as parser,dr as sanitizer,gr as slugify};\n","// src/parser-utils.ts\nfunction createParserState(initialCurrent = \"\") {\n return {\n current: initialCurrent,\n inQuote: false,\n quoteType: \"\",\n inRegex: false,\n curlyDepth: 0,\n parenDepth: 0,\n escapeNext: false\n };\n}\nfunction processCharacter(char, state) {\n if (state.escapeNext) {\n state.current += char;\n state.escapeNext = false;\n return;\n }\n if (char === \"\\\\\") {\n state.current += char;\n if (!state.inRegex) {\n state.escapeNext = true;\n }\n return;\n }\n if ((char === '\"' || char === \"'\") && !state.inRegex && (!state.inQuote || state.quoteType === char)) {\n state.inQuote = !state.inQuote;\n state.quoteType = state.inQuote ? char : \"\";\n state.current += char;\n return;\n }\n if (char === \"/\" && !state.inQuote && !state.inRegex && (state.current.endsWith(\":\") || state.current.endsWith(\",\"))) {\n state.inRegex = true;\n state.current += char;\n return;\n }\n if (char === \"/\" && state.inRegex && !state.escapeNext) {\n state.inRegex = false;\n state.current += char;\n return;\n }\n if (char === \"{\") {\n state.curlyDepth++;\n state.current += char;\n return;\n }\n if (char === \"}\") {\n state.curlyDepth--;\n state.current += char;\n return;\n }\n if (char === \"(\" && !state.inQuote) {\n state.parenDepth++;\n state.current += char;\n return;\n }\n if (char === \")\" && !state.inQuote) {\n state.parenDepth--;\n state.current += char;\n return;\n }\n state.current += char;\n}\nfunction parseRegexPattern(pattern) {\n const match = pattern.match(/^\\/(.+)\\/([gimsuy]*)$/);\n if (!match) return null;\n return {\n pattern: match[1],\n flags: match[2]\n };\n}\nfunction unwrapParamList(value) {\n const trimmed = value.trim();\n if (!trimmed.startsWith(\"(\") || !trimmed.endsWith(\")\")) return trimmed;\n let quote = \"\";\n let escaped = false;\n let depth = 0;\n for (let index = 0; index < trimmed.length; index++) {\n const character = trimmed[index];\n if (escaped) {\n escaped = false;\n } else if (character === \"\\\\\") {\n escaped = true;\n } else if (quote) {\n if (character === quote) quote = \"\";\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \"(\") {\n depth++;\n } else if (character === \")\") {\n depth--;\n if (depth === 0 && index !== trimmed.length - 1) return trimmed;\n }\n }\n return depth === 0 ? trimmed.slice(1, -1).trim() : trimmed;\n}\nfunction unquoteParamToken(value) {\n return value.trim().replace(/^([\"'])([\\s\\S]*)\\1$/, \"$2\");\n}\nfunction decodeStringEscape(character) {\n switch (character) {\n case \"n\":\n return \"\\n\";\n case \"t\":\n return \"\t\";\n case \"r\":\n return \"\\r\";\n default:\n return character;\n }\n}\nfunction decodeParamEscapes(value) {\n return value.replace(/\\\\([\\\\,:|\"'])/g, \"$1\");\n}\nfunction cleanParamToken(value) {\n return decodeParamEscapes(unquoteParamToken(value));\n}\nfunction unquoteScalarParam(value) {\n if (value === void 0) return void 0;\n if (value !== \"\" && value.trim() === \"\") return value;\n return unquoteParamToken(unwrapParamList(value));\n}\nfunction cleanScalarParam(value) {\n const unquoted = unquoteScalarParam(value);\n return unquoted === void 0 ? void 0 : decodeParamEscapes(unquoted);\n}\nfunction splitParamList(value) {\n const unwrapped = unwrapParamList(value);\n const tokens = splitParams(unwrapped);\n const unquoted = tokens.length === 1 ? unquoteParamToken(tokens[0]) : \"\";\n const quotedList = unquoted !== tokens[0]?.trim() && unquoted.includes(\",\");\n return quotedList ? splitParams(unquoted) : tokens;\n}\nfunction normalizeParamList(value) {\n return splitParamList(value).map((token) => unquoteParamToken(token).replace(/\\\\([\"'])/g, \"$1\"));\n}\nfunction parseTypedParamToken(value) {\n const token = value.trim();\n if (splitParamPair(token)[1] !== void 0) return token;\n if (token.length >= 2 && (token[0] === '\"' || token[0] === \"'\") && token.at(-1) === token[0]) {\n return token.slice(1, -1).replace(/\\\\([\\s\\S])/g, (_, character) => decodeStringEscape(character));\n }\n if (token === \"true\") return true;\n if (token === \"false\") return false;\n if (token === \"null\") return null;\n if (/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/.test(token)) {\n const number = Number(token);\n if (Number.isFinite(number)) return number;\n }\n return token;\n}\nfunction parseTypedParams(value) {\n if (value === void 0 || value === \"\") return void 0;\n return splitParams(unwrapParamList(value)).map(parseTypedParamToken);\n}\nfunction splitParamPair(value) {\n let quote = \"\";\n let escaped = false;\n let parenDepth = 0;\n let curlyDepth = 0;\n let bracketDepth = 0;\n for (let index = 0; index < value.length; index++) {\n const character = value[index];\n if (escaped) {\n escaped = false;\n } else if (character === \"\\\\\") {\n escaped = true;\n } else if (quote) {\n if (character === quote) quote = \"\";\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \"(\") {\n parenDepth++;\n } else if (character === \")\") {\n parenDepth--;\n } else if (character === \"{\") {\n curlyDepth++;\n } else if (character === \"}\") {\n curlyDepth--;\n } else if (character === \"[\") {\n bracketDepth++;\n } else if (character === \"]\") {\n bracketDepth--;\n } else if (character === \":\" && parenDepth === 0 && curlyDepth === 0 && bracketDepth === 0) {\n return [value.slice(0, index).trim(), value.slice(index + 1).trim()];\n }\n }\n return [value.trim()];\n}\nfunction splitParams(value) {\n const parts = [];\n let current = \"\";\n let quote = \"\";\n let escaped = false;\n let parenDepth = 0;\n let curlyDepth = 0;\n let bracketDepth = 0;\n for (const character of value) {\n if (escaped) {\n current += character;\n escaped = false;\n } else if (character === \"\\\\\") {\n current += character;\n escaped = true;\n } else if (quote) {\n current += character;\n if (character === quote) quote = \"\";\n } else if (character === '\"' || character === \"'\") {\n current += character;\n quote = character;\n } else if (character === \"(\") {\n current += character;\n parenDepth++;\n } else if (character === \")\") {\n current += character;\n parenDepth--;\n } else if (character === \"{\") {\n current += character;\n curlyDepth++;\n } else if (character === \"}\") {\n current += character;\n curlyDepth--;\n } else if (character === \"[\") {\n current += character;\n bracketDepth++;\n } else if (character === \"]\") {\n current += character;\n bracketDepth--;\n } else if (character === \",\" && parenDepth === 0 && curlyDepth === 0 && bracketDepth === 0) {\n parts.push(current.trim());\n current = \"\";\n } else {\n current += character;\n }\n }\n parts.push(current.trim());\n return parts;\n}\n\n// src/filters/warnings.ts\nfunction reportFilterWarning(context, message, code = \"FILTER_WARNING\") {\n context?.reportWarning?.({ message, code });\n}\nfunction errorMessage(error) {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport {\n createParserState,\n processCharacter,\n parseRegexPattern,\n unwrapParamList,\n unquoteParamToken,\n decodeStringEscape,\n cleanParamToken,\n unquoteScalarParam,\n cleanScalarParam,\n splitParamList,\n normalizeParamList,\n parseTypedParams,\n splitParamPair,\n splitParams,\n reportFilterWarning,\n errorMessage\n};\n//# sourceMappingURL=chunk-DOF2LXGV.js.map","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),Y=_.prototype;return O.prototype=Y,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){Y[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=31536e6,u=2628e6,d=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,a=/\\[([^\\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,h={years:o,months:u,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(d);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/o),t%=o,this.$d.months=$(t/u),t%=u,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(a,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","import {\n cleanParamToken,\n cleanScalarParam,\n createParserState,\n decodeStringEscape,\n errorMessage,\n normalizeParamList,\n parseRegexPattern,\n parseTypedParams,\n processCharacter,\n reportFilterWarning,\n splitParamList,\n splitParamPair,\n splitParams,\n unquoteParamToken,\n unquoteScalarParam,\n unwrapParamList\n} from \"./chunk-DOF2LXGV.js\";\n\n// src/errors.ts\nvar TemplateRuntimeError = class extends Error {\n constructor(message, code2 = \"RENDER_ERROR\", line, column) {\n super(message);\n this.code = code2;\n this.line = line;\n this.column = column;\n this.name = \"TemplateRuntimeError\";\n }\n code;\n line;\n column;\n};\nvar TemplateRenderError = class extends Error {\n constructor(errors) {\n super(errors.map((error) => error.message).join(\"; \") || \"Template rendering failed\");\n this.errors = errors;\n this.name = \"TemplateRenderError\";\n }\n errors;\n};\n\n// src/limits.ts\nvar defaultRenderLimits = Object.freeze({\n maxTemplateLength: 1e6,\n maxOutputLength: 5e6,\n maxValueLength: 5e6,\n maxOperations: 1e5,\n maxDepth: 100\n});\nfunction resolveLimits(limits = {}) {\n const result = { ...defaultRenderLimits, ...limits };\n for (const [name, value] of Object.entries(result)) {\n if (!Number.isSafeInteger(value) || value < 1 || name === \"maxDepth\" && value > 256) {\n throw new TemplateRuntimeError(`Invalid ${name} limit`, \"LIMIT_EXCEEDED\");\n }\n }\n return result;\n}\nfunction limitError(name) {\n throw new TemplateRuntimeError(`Template exceeded ${name}`, \"LIMIT_EXCEEDED\");\n}\nvar RenderBudget = class {\n limits;\n operations = 0;\n constructor(limits = {}) {\n this.limits = resolveLimits(limits);\n }\n step() {\n if (++this.operations > this.limits.maxOperations) limitError(\"maxOperations\");\n }\n output(length2) {\n if (length2 > this.limits.maxOutputLength) limitError(\"maxOutputLength\");\n }\n length(length2) {\n if (length2 > this.limits.maxValueLength) limitError(\"maxValueLength\");\n }\n value(value) {\n const pending = [{ value, depth: 0 }];\n let size = 0;\n let entries = 0;\n while (pending.length) {\n this.step();\n const { value: value2, depth } = pending.pop();\n if (++entries > this.limits.maxOperations) limitError(\"maxOperations\");\n if (depth > this.limits.maxDepth) limitError(\"maxDepth\");\n if (typeof value2 === \"string\") size += value2.length;\n else if (value2 !== null && typeof value2 === \"object\") {\n for (const key of Object.keys(value2)) {\n size += key.length + 4;\n if (pending.length + entries >= this.limits.maxOperations) limitError(\"maxOperations\");\n const property = Object.getOwnPropertyDescriptor(value2, key);\n if (\"value\" in property) pending.push({ value: property.value, depth: depth + 1 });\n }\n } else size += 8;\n if (size > this.limits.maxValueLength) limitError(\"maxValueLength\");\n }\n }\n};\n\n// src/tokenizer.ts\nvar KEYWORDS = {\n \"if\": \"keyword_if\",\n \"elseif\": \"keyword_elseif\",\n \"else\": \"keyword_else\",\n \"endif\": \"keyword_endif\",\n \"for\": \"keyword_for\",\n \"in\": \"keyword_in\",\n \"endfor\": \"keyword_endfor\",\n \"set\": \"keyword_set\",\n \"and\": \"op_and\",\n \"or\": \"op_or\",\n \"not\": \"op_not\",\n \"contains\": \"op_contains\",\n \"true\": \"boolean\",\n \"false\": \"boolean\",\n \"null\": \"null\"\n};\nvar CHAR_OPEN_BRACE = 123;\nvar CHAR_PERCENT = 37;\nvar CHAR_HASH = 35;\nfunction tokenize(input) {\n const state = {\n input,\n pos: 0,\n line: 1,\n column: 1,\n mode: \"text\",\n tokens: [],\n errors: []\n };\n while (state.pos < state.input.length) {\n switch (state.mode) {\n case \"text\":\n tokenizeText(state);\n break;\n case \"variable\":\n tokenizeVariable(state);\n break;\n case \"tag\":\n tokenizeTag(state);\n break;\n }\n }\n state.tokens.push({\n type: \"eof\",\n value: \"\",\n line: state.line,\n column: state.column\n });\n return {\n tokens: state.tokens,\n errors: state.errors\n };\n}\nfunction tokenizeText(state) {\n const startPos = state.pos;\n const startLine = state.line;\n const startColumn = state.column;\n const input = state.input;\n while (state.pos < input.length) {\n const brace = input.indexOf(\"{\", state.pos);\n if (brace === -1) break;\n const next = input.charCodeAt(brace + 1);\n const isVariable = next === CHAR_OPEN_BRACE;\n const isTag = next === CHAR_PERCENT;\n const isComment = next === CHAR_HASH;\n if (!isVariable && !isTag && !isComment) {\n advanceTo(state, brace + 1);\n continue;\n }\n advanceTo(state, brace);\n if (state.pos > startPos) {\n state.tokens.push({\n type: \"text\",\n value: input.slice(startPos, state.pos),\n line: startLine,\n column: startColumn\n });\n }\n if (isComment) {\n const end = input.indexOf(\"#}\", state.pos + 2);\n if (end === -1) {\n state.errors.push({\n message: \"Unclosed comment - missing '#}'\",\n line: state.line,\n column: state.column\n });\n }\n advanceTo(state, end === -1 ? input.length : end + 2);\n return;\n }\n advance(state, 2);\n state.tokens.push({\n type: isVariable ? \"variable_start\" : \"tag_start\",\n value: isVariable ? \"{{\" : \"{%\",\n line: state.line,\n column: state.column - 2,\n trimLeft: false\n });\n state.mode = isVariable ? \"variable\" : \"tag\";\n return;\n }\n advanceTo(state, input.length);\n if (state.pos > startPos) {\n state.tokens.push({\n type: \"text\",\n value: state.input.slice(startPos, state.pos),\n line: startLine,\n column: startColumn\n });\n }\n}\nfunction tokenizeVariable(state) {\n skipWhitespace(state);\n if (lookAhead(state, \"}}\")) {\n state.tokens.push({\n type: \"variable_end\",\n value: \"}}\",\n line: state.line,\n column: state.column,\n trimRight: false\n // Variables preserve whitespace by default\n });\n advance(state, 2);\n state.mode = \"text\";\n return;\n }\n const nextChar = state.input[state.pos + 1];\n if (state.input[state.pos] === \"}\" && nextChar !== \"}\") {\n const validAfterBrace = [\"|\", \",\", \")\", \"]\", \" \", \"\t\", \"\\n\", \"\\r\"];\n if (!validAfterBrace.includes(nextChar)) {\n state.errors.push({\n message: `Malformed variable: expected '}}' but found '}'. Did you forget a '}'?`,\n line: state.line,\n column: state.column\n });\n state.tokens.push({\n type: \"variable_end\",\n value: \"}\",\n line: state.line,\n column: state.column,\n trimRight: false\n });\n advanceChar(state);\n state.mode = \"text\";\n return;\n }\n }\n if (lookAhead(state, \"{%\") || lookAhead(state, \"{{\")) {\n const varStartIndex = [...state.tokens].reverse().findIndex((t) => t.type === \"variable_start\");\n const actualIndex = varStartIndex >= 0 ? state.tokens.length - 1 - varStartIndex : -1;\n const varStartToken = actualIndex >= 0 ? state.tokens[actualIndex] : null;\n const startLine = varStartToken?.line || state.line;\n state.errors.push({\n message: `Missing closing '}}' for variable`,\n line: startLine,\n column: varStartToken?.column || state.column\n });\n if (actualIndex >= 0) {\n state.tokens.splice(actualIndex);\n }\n state.mode = \"text\";\n return;\n }\n tokenizeExpression(state, \"variable\");\n}\nfunction tokenizeTag(state) {\n skipWhitespace(state);\n if (lookAhead(state, \"%}\")) {\n state.tokens.push({\n type: \"tag_end\",\n value: \"%}\",\n line: state.line,\n column: state.column,\n trimRight: true\n // Tags always trim whitespace\n });\n advance(state, 2);\n state.mode = \"text\";\n return;\n }\n if (lookAhead(state, \"-%}\")) {\n state.tokens.push({\n type: \"tag_end\",\n value: \"-%}\",\n line: state.line,\n column: state.column,\n trimRight: true\n });\n advance(state, 3);\n state.mode = \"text\";\n return;\n }\n if (state.input[state.pos] === \"}\" && state.pos > 0 && state.input[state.pos - 1] !== \"%\") {\n state.errors.push({\n message: `Malformed tag: expected '%}' but found '}'. Did you forget the '%'?`,\n line: state.line,\n column: state.column\n });\n state.tokens.push({\n type: \"tag_end\",\n value: \"}\",\n line: state.line,\n column: state.column,\n trimRight: true\n });\n advanceChar(state);\n state.mode = \"text\";\n return;\n }\n if (lookAhead(state, \"{%\") || lookAhead(state, \"{{\")) {\n const tagStartIndex = [...state.tokens].reverse().findIndex((t) => t.type === \"tag_start\");\n const actualIndex = tagStartIndex >= 0 ? state.tokens.length - 1 - tagStartIndex : -1;\n const tagStartToken = actualIndex >= 0 ? state.tokens[actualIndex] : null;\n const startLine = tagStartToken?.line || state.line;\n state.errors.push({\n message: `Missing closing '%}' for tag`,\n line: startLine,\n column: tagStartToken?.column || state.column\n });\n if (actualIndex >= 0) {\n state.tokens.splice(actualIndex);\n }\n state.mode = \"text\";\n return;\n }\n tokenizeExpression(state, \"tag\");\n}\nfunction tokenizeExpression(state, mode) {\n skipWhitespace(state);\n if (state.pos >= state.input.length) {\n state.errors.push({\n message: mode === \"variable\" ? `Unclosed variable - missing '}}'` : `Unclosed tag - missing '%}'`,\n line: state.line,\n column: state.column\n });\n return;\n }\n const char = state.input[state.pos];\n const startLine = state.line;\n const startColumn = state.column;\n if (char === '\"' || char === \"'\") {\n tokenizeString(state);\n return;\n }\n if (isDigit(char) || char === \"-\" && isDigit(state.input[state.pos + 1])) {\n tokenizeNumber(state);\n return;\n }\n if (lookAhead(state, \"==\")) {\n state.tokens.push({ type: \"op_eq\", value: \"==\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"!=\")) {\n state.tokens.push({ type: \"op_neq\", value: \"!=\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \">=\")) {\n state.tokens.push({ type: \"op_gte\", value: \">=\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"<=\")) {\n state.tokens.push({ type: \"op_lte\", value: \"<=\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"&&\")) {\n state.tokens.push({ type: \"op_and\", value: \"&&\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"||\")) {\n state.tokens.push({ type: \"op_or\", value: \"||\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"??\")) {\n state.tokens.push({ type: \"op_nullish\", value: \"??\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n if (lookAhead(state, \"=>\")) {\n state.tokens.push({ type: \"arrow\", value: \"=>\", line: startLine, column: startColumn });\n advance(state, 2);\n return;\n }\n switch (char) {\n case \">\":\n state.tokens.push({ type: \"op_gt\", value: \">\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"<\":\n state.tokens.push({ type: \"op_lt\", value: \"<\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"!\":\n state.tokens.push({ type: \"op_not\", value: \"!\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"=\":\n state.tokens.push({ type: \"op_assign\", value: \"=\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"|\":\n state.tokens.push({ type: \"pipe\", value: \"|\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"(\":\n state.tokens.push({ type: \"lparen\", value: \"(\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \")\":\n state.tokens.push({ type: \"rparen\", value: \")\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"[\":\n state.tokens.push({ type: \"lbracket\", value: \"[\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"]\":\n state.tokens.push({ type: \"rbracket\", value: \"]\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \":\":\n state.tokens.push({ type: \"colon\", value: \":\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \",\":\n state.tokens.push({ type: \"comma\", value: \",\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \".\":\n state.tokens.push({ type: \"dot\", value: \".\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"*\":\n state.tokens.push({ type: \"star\", value: \"*\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"/\":\n state.tokens.push({ type: \"slash\", value: \"/\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"+\":\n state.tokens.push({ type: \"plus\", value: \"+\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"{\":\n state.tokens.push({ type: \"lbrace\", value: \"{\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"}\":\n state.tokens.push({ type: \"rbrace\", value: \"}\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n case \"$\":\n state.tokens.push({ type: \"dollar\", value: \"$\", line: startLine, column: startColumn });\n advanceChar(state);\n return;\n }\n if (isIdentifierStart(char)) {\n tokenizeIdentifier(state);\n return;\n }\n if (char === \"\\\\\") {\n tokenizeEscapedArgument(state);\n return;\n }\n state.errors.push({\n message: `Unexpected character '${char}' in template`,\n line: state.line,\n column: state.column\n });\n advanceChar(state);\n}\nfunction tokenizeString(state) {\n const quote = state.input[state.pos];\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n let rawValue = \"\";\n advanceChar(state);\n while (state.pos < state.input.length) {\n const char = state.input[state.pos];\n const nextChar = state.input[state.pos + 1] || \"\";\n if (char === quote) {\n advanceChar(state);\n if (parseRegexPattern(rawValue)) value = rawValue.replace(/\\\\([\\\\\"'])/g, \"$1\");\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n return;\n }\n if (char === \"}\" && nextChar === \"}\" || char === \"%\" && nextChar === \"}\") {\n state.errors.push({\n message: `Unclosed string - missing ${quote} before ${char}${nextChar}`,\n line: startLine,\n column: startColumn\n });\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n return;\n }\n if (char === \"\\\\\" && state.pos + 1 < state.input.length) {\n advanceChar(state);\n const escaped = state.input[state.pos];\n rawValue += \"\\\\\" + escaped;\n value += decodeStringEscape(escaped);\n advanceChar(state);\n continue;\n }\n value += char;\n rawValue += char;\n advanceChar(state);\n }\n state.errors.push({\n message: `Unclosed string - missing closing ${quote}`,\n line: startLine,\n column: startColumn\n });\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n}\nfunction tokenizeEscapedArgument(state) {\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n while (state.pos < state.input.length) {\n const char = state.input[state.pos];\n const nextChar = state.input[state.pos + 1] || \"\";\n if (char === \"|\" || char === \"%\" || char === \"}\" || char === \")\") {\n break;\n }\n if (char === \"+\" && (nextChar === \"%\" || nextChar === \"}\")) {\n break;\n }\n if (char === \"\\\\\" && state.pos + 1 < state.input.length) {\n const escaped = state.input[state.pos + 1];\n switch (escaped) {\n case '\"':\n value += '\"';\n break;\n case \"'\":\n value += \"'\";\n break;\n case \"\\\\\":\n value += \"\\\\\";\n break;\n case \"n\":\n value += \"\\n\";\n break;\n case \"t\":\n value += \"\t\";\n break;\n case \"r\":\n value += \"\\r\";\n break;\n case \",\":\n value += \",\";\n break;\n case \"|\":\n value += \"|\";\n break;\n default:\n value += escaped;\n }\n advanceChar(state);\n advanceChar(state);\n continue;\n }\n value += char;\n advanceChar(state);\n }\n state.tokens.push({\n type: \"string\",\n value,\n line: startLine,\n column: startColumn\n });\n}\nfunction tokenizeNumber(state) {\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n if (state.input[state.pos] === \"-\") {\n value += \"-\";\n advanceChar(state);\n }\n while (state.pos < state.input.length && isDigit(state.input[state.pos])) {\n value += state.input[state.pos];\n advanceChar(state);\n }\n if (state.pos < state.input.length && state.input[state.pos] === \".\") {\n value += \".\";\n advanceChar(state);\n while (state.pos < state.input.length && isDigit(state.input[state.pos])) {\n value += state.input[state.pos];\n advanceChar(state);\n }\n }\n state.tokens.push({\n type: \"number\",\n value,\n line: startLine,\n column: startColumn\n });\n}\nfunction tokenizeIdentifier(state) {\n const startLine = state.line;\n const startColumn = state.column;\n let value = \"\";\n while (state.pos < state.input.length && isIdentifierChar(state.input[state.pos])) {\n value += state.input[state.pos];\n advanceChar(state);\n }\n if ((value === \"selector\" || value === \"selectorHtml\") && state.pos < state.input.length && state.input[state.pos] === \":\") {\n value += \":\";\n advanceChar(state);\n value = tokenizeCssSelector(state, value);\n }\n const lowerValue = value.toLowerCase();\n const keywordType = Object.prototype.hasOwnProperty.call(KEYWORDS, lowerValue) ? KEYWORDS[lowerValue] : void 0;\n if (keywordType) {\n state.tokens.push({\n type: keywordType,\n value,\n line: startLine,\n column: startColumn\n });\n } else {\n state.tokens.push({\n type: \"identifier\",\n value,\n line: startLine,\n column: startColumn\n });\n }\n}\nfunction tokenizeCssSelector(state, value) {\n let bracketDepth = 0;\n let parenDepth = 0;\n let inString = null;\n while (state.pos < state.input.length) {\n const char = state.input[state.pos];\n const nextChar = state.input[state.pos + 1] || \"\";\n if (!inString && bracketDepth === 0 && parenDepth === 0) {\n if (char === \"|\") {\n break;\n }\n if (char === \"%\" && nextChar === \"}\") {\n break;\n }\n if (char === \"}\" && nextChar === \"}\") {\n break;\n }\n if (char === \"-\" && nextChar === \"%\") {\n break;\n }\n if (char === \"-\" && nextChar === \"}\") {\n break;\n }\n if (char === \"}\" && nextChar !== \"}\") {\n break;\n }\n }\n if (char === \"}\" && nextChar === \"}\" || char === \"%\" && nextChar === \"}\") {\n if (inString) {\n state.errors.push({\n message: `Unclosed string in selector - missing closing ${inString}`,\n line: state.line,\n column: state.column\n });\n break;\n }\n if (bracketDepth > 0) {\n state.errors.push({\n message: `Unclosed '[' in selector - missing ']'`,\n line: state.line,\n column: state.column\n });\n break;\n }\n if (parenDepth > 0) {\n state.errors.push({\n message: `Unclosed '(' in selector - missing ')'`,\n line: state.line,\n column: state.column\n });\n break;\n }\n }\n if (!inString && char === \"\\\\\" && (nextChar === '\"' || nextChar === \"'\")) {\n value += char;\n advanceChar(state);\n value += state.input[state.pos];\n advanceChar(state);\n continue;\n }\n if (!inString && (char === '\"' || char === \"'\")) {\n inString = char;\n value += char;\n advanceChar(state);\n continue;\n }\n if (inString && char === inString) {\n inString = null;\n value += char;\n advanceChar(state);\n continue;\n }\n if (inString && char === \"\\\\\" && state.pos + 1 < state.input.length) {\n value += char;\n advanceChar(state);\n value += state.input[state.pos];\n advanceChar(state);\n continue;\n }\n if (!inString) {\n if (char === \"[\") {\n bracketDepth++;\n } else if (char === \"]\") {\n bracketDepth--;\n if (bracketDepth < 0) {\n state.errors.push({\n message: `Extra ']' in selector - no matching '['`,\n line: state.line,\n column: state.column\n });\n bracketDepth = 0;\n }\n } else if (char === \"(\") {\n parenDepth++;\n } else if (char === \")\") {\n parenDepth--;\n if (parenDepth < 0) {\n state.errors.push({\n message: `Extra ')' in selector - no matching '('`,\n line: state.line,\n column: state.column\n });\n parenDepth = 0;\n }\n }\n }\n value += char;\n advanceChar(state);\n }\n return value.trimEnd();\n}\nfunction lookAhead(state, str) {\n return state.input.startsWith(str, state.pos);\n}\nfunction advanceTo(state, target) {\n if (target <= state.pos) return;\n const input = state.input;\n let lastNewline = -1;\n let newlines = 0;\n for (let i = input.indexOf(\"\\n\", state.pos); i !== -1 && i < target; i = input.indexOf(\"\\n\", i + 1)) {\n lastNewline = i;\n newlines++;\n }\n if (newlines > 0) {\n state.line += newlines;\n state.column = target - lastNewline;\n } else {\n state.column += target - state.pos;\n }\n state.pos = target;\n}\nfunction advance(state, count) {\n for (let i = 0; i < count; i++) {\n advanceChar(state);\n }\n}\nfunction advanceChar(state) {\n if (state.pos < state.input.length) {\n if (state.input[state.pos] === \"\\n\") {\n state.line++;\n state.column = 1;\n } else {\n state.column++;\n }\n state.pos++;\n }\n}\nfunction skipWhitespace(state) {\n while (state.pos < state.input.length && isWhitespace(state.input[state.pos])) {\n advanceChar(state);\n }\n}\nfunction isWhitespace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n}\nfunction isDigit(char) {\n return char >= \"0\" && char <= \"9\";\n}\nfunction isIdentifierStart(char) {\n return char >= \"a\" && char <= \"z\" || char >= \"A\" && char <= \"Z\" || char === \"_\" || char === \"@\";\n}\nfunction isIdentifierChar(char) {\n return isIdentifierStart(char) || isDigit(char) || char === \"-\" || // For kebab-case\n char === \".\";\n}\n\n// src/parser.ts\nfunction parse(input, options = {}) {\n try {\n const limits = resolveLimits(options);\n if (input.length > limits.maxTemplateLength) limitError(\"maxTemplateLength\");\n const result = tokenize(input);\n return parseTokens(result.tokens, options, result.errors);\n } catch (error) {\n return parseFailure(error);\n }\n}\nfunction parseFailure(error) {\n if (error instanceof TemplateRuntimeError || error instanceof RangeError) {\n return { ast: [], errors: [{\n message: error instanceof TemplateRuntimeError ? error.message : \"Template exceeded maxDepth\",\n code: \"LIMIT_EXCEEDED\",\n line: 1,\n column: 1\n }] };\n }\n throw error;\n}\nfunction parseTokens(tokens, options = {}, errors = []) {\n try {\n const limits = resolveLimits(options);\n const state = { tokens, pos: 0, errors, depth: 0, maxDepth: limits.maxDepth };\n const ast = parseTemplate(state);\n const pending = ast.map((value) => ({ value, depth: 0 }));\n while (pending.length) {\n const { value, depth } = pending.pop();\n if (depth > limits.maxDepth) limitError(\"maxDepth\");\n if (value && typeof value === \"object\") {\n for (const child of Object.values(value)) {\n if (child && typeof child === \"object\") pending.push({ value: child, depth: depth + (Array.isArray(child) ? 0 : 1) });\n }\n }\n }\n return { ast, errors: state.errors };\n } catch (error) {\n return parseFailure(error);\n }\n}\nfunction withDepth(state, parse2) {\n if (++state.depth > state.maxDepth) limitError(\"maxDepth\");\n try {\n return parse2();\n } finally {\n state.depth--;\n }\n}\nfunction parseTemplate(state) {\n const nodes = [];\n while (!isAtEnd(state)) {\n const node = parseNode(state);\n if (node) {\n nodes.push(node);\n }\n }\n return nodes;\n}\nfunction parseNode(state) {\n const token = peek(state);\n switch (token.type) {\n case \"text\":\n return parseText(state);\n case \"variable_start\":\n return parseVariable(state);\n case \"tag_start\":\n return parseTag(state);\n case \"eof\":\n advance2(state);\n return null;\n default:\n state.errors.push({\n message: `Unexpected \"${token.value}\" in template`,\n line: token.line,\n column: token.column\n });\n advance2(state);\n return null;\n }\n}\nfunction parseText(state) {\n const token = advance2(state);\n const parts = [token.value];\n while (check(state, \"text\")) parts.push(advance2(state).value);\n return {\n type: \"text\",\n value: parts.join(\"\"),\n line: token.line,\n column: token.column\n };\n}\nfunction parseVariable(state) {\n const startToken = advance2(state);\n const trimLeft = startToken.trimLeft || false;\n if (check(state, \"identifier\") && state.tokens[state.pos + 1]?.type === \"identifier\") {\n const first2 = state.tokens[state.pos];\n let end = state.pos + 1;\n const parts = [first2.value];\n while (state.tokens[end]?.type === \"identifier\") {\n parts.push(state.tokens[end].value);\n end++;\n }\n state.tokens.splice(state.pos, end - state.pos, {\n ...first2,\n value: parts.join(\" \")\n });\n }\n const expression = parseExpression(state);\n if (!expression) {\n state.errors.push({\n message: \"Empty variable - add a variable name between {{ and }}\",\n line: startToken.line,\n column: startToken.column\n });\n skipToEndOfVariable(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"variable_end\")) {\n const endToken = advance2(state);\n trimRight = endToken.trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing closing }}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"variable\",\n expression,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseTag(state) {\n const startToken = advance2(state);\n const trimLeft = startToken.trimLeft || false;\n const keywordToken = peek(state);\n switch (keywordToken.type) {\n case \"keyword_if\":\n return parseIfStatement(state, startToken, trimLeft);\n case \"keyword_for\":\n return parseForStatement(state, startToken, trimLeft);\n case \"keyword_set\":\n return parseSetStatement(state, startToken, trimLeft);\n case \"keyword_else\":\n case \"keyword_elseif\":\n case \"keyword_endif\":\n case \"keyword_endfor\":\n state.errors.push({\n message: `Unexpected {% ${keywordToken.value} %} - no matching opening tag`,\n line: keywordToken.line,\n column: keywordToken.column\n });\n skipToEndOfTag(state);\n return null;\n default:\n state.errors.push({\n message: `Unknown tag: {% ${keywordToken.value} %}`,\n line: keywordToken.line,\n column: keywordToken.column\n });\n skipToEndOfTag(state);\n return null;\n }\n}\nfunction parseIfStatement(state, startToken, trimLeft) {\n advance2(state);\n const condition = parseExpression(state);\n if (!condition) {\n state.errors.push({\n message: \"{% if %} requires a condition\",\n line: startToken.line,\n column: startToken.column\n });\n skipToEndOfTag(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"tag_end\")) {\n trimRight = advance2(state).trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing %} to close {% if %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n const consequent = parseBody(state, [\"keyword_elseif\", \"keyword_else\", \"keyword_endif\"], true);\n const elseifs = [];\n while (checkTagKeyword(state, \"keyword_elseif\")) {\n consumeTagStart(state);\n advance2(state);\n const elseifCondition = parseExpression(state);\n if (!elseifCondition) {\n state.errors.push({\n message: \"{% elseif %} requires a condition\",\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n continue;\n }\n consumeTagEnd(state);\n const elseifBody = parseBody(state, [\"keyword_elseif\", \"keyword_else\", \"keyword_endif\"], true);\n elseifs.push({ condition: elseifCondition, body: elseifBody });\n }\n let alternate = null;\n if (checkTagKeyword(state, \"keyword_else\")) {\n consumeTagStart(state);\n advance2(state);\n consumeTagEnd(state);\n alternate = parseBody(state, [\"keyword_endif\"], true);\n }\n if (checkTagKeyword(state, \"keyword_endif\")) {\n consumeTagStart(state);\n advance2(state);\n consumeTagEnd(state);\n } else {\n state.errors.push({\n message: \"Missing {% endif %} to close {% if %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"if\",\n condition,\n consequent,\n elseifs,\n alternate,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseForStatement(state, startToken, trimLeft) {\n advance2(state);\n if (!check(state, \"identifier\")) {\n state.errors.push({\n message: \"{% for %} requires a variable name, e.g. {% for item in items %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n const iterator = advance2(state).value;\n if (!check(state, \"keyword_in\")) {\n state.errors.push({\n message: '{% for %} requires \"in\" keyword, e.g. {% for item in items %}',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n advance2(state);\n const iterable = parseExpression(state);\n if (!iterable) {\n state.errors.push({\n message: '{% for %} requires something to loop over after \"in\"',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"tag_end\")) {\n trimRight = advance2(state).trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing %} to close {% for %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n const body = parseBody(state, [\"keyword_endfor\"]);\n if (checkTagKeyword(state, \"keyword_endfor\")) {\n consumeTagStart(state);\n advance2(state);\n consumeTagEnd(state);\n } else {\n state.errors.push({\n message: \"Missing {% endfor %} to close {% for %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"for\",\n iterator,\n iterable,\n body,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseSetStatement(state, startToken, trimLeft) {\n advance2(state);\n if (!check(state, \"identifier\")) {\n state.errors.push({\n message: \"{% set %} requires a variable name, e.g. {% set name = value %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n const variable = advance2(state).value;\n if (!check(state, \"op_assign\")) {\n state.errors.push({\n message: '{% set %} requires \"=\" after variable name',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n advance2(state);\n const value = parseExpression(state);\n if (!value) {\n state.errors.push({\n message: '{% set %} requires a value after \"=\"',\n line: peek(state).line,\n column: peek(state).column\n });\n skipToEndOfTag(state);\n return null;\n }\n let trimRight = false;\n if (check(state, \"tag_end\")) {\n trimRight = advance2(state).trimRight || false;\n } else {\n state.errors.push({\n message: \"Missing %} to close {% set %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"set\",\n variable,\n value,\n trimLeft,\n trimRight,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseBody(state, stopKeywords, trimClosingLine = false) {\n return withDepth(state, () => parseBodyInner(state, stopKeywords, trimClosingLine));\n}\nfunction parseBodyInner(state, stopKeywords, trimClosingLine = false) {\n const nodes = [];\n while (!isAtEnd(state)) {\n if (checkTagKeyword(state, ...stopKeywords)) {\n if (trimClosingLine) {\n let end = state.pos;\n while (end < state.tokens.length && state.tokens[end].type !== \"tag_end\") end++;\n const after = state.tokens[end + 1];\n const standalone = after?.type === \"eof\" || after?.type === \"text\" && /^[\\t ]*(?:\\r?\\n|$)/.test(after.value);\n const last2 = nodes[nodes.length - 1];\n if (standalone && last2?.type === \"text\") last2.value = last2.value.replace(/\\r?\\n[\\t ]*$/, \"\");\n }\n break;\n }\n const node = parseNode(state);\n if (node) {\n nodes.push(node);\n }\n }\n return nodes;\n}\nfunction parseExpression(state) {\n return parseNullishExpression(state);\n}\nfunction parseNullishExpression(state) {\n let left = parseFilterExpression(state);\n if (!left) return null;\n while (check(state, \"op_nullish\")) {\n const opToken = advance2(state);\n const right = parseFilterExpression(state);\n if (!right) {\n state.errors.push({\n message: \"Missing fallback value after ??\",\n line: opToken.line,\n column: opToken.column\n });\n break;\n }\n left = {\n type: \"binary\",\n operator: \"??\",\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parseFilterArgument(state) {\n const startToken = peek(state);\n if (check(state, \"slash\") || check(state, \"star\")) {\n const token = advance2(state);\n return {\n type: \"literal\",\n value: token.value,\n raw: token.value,\n line: token.line,\n column: token.column\n };\n }\n if (check(state, \"lbracket\")) {\n let value2 = \"\";\n let bracketDepth = 0;\n const startLine = peek(state).line;\n const startColumn = peek(state).column;\n while (!isAtEnd(state)) {\n const token = peek(state);\n if (token.type === \"lbracket\") {\n bracketDepth++;\n } else if (token.type === \"rbracket\") {\n bracketDepth--;\n if (bracketDepth === 0) {\n value2 += token.value;\n advance2(state);\n break;\n }\n }\n if (bracketDepth === 0 && (token.type === \"pipe\" || token.type === \"variable_end\" || token.type === \"comma\")) {\n break;\n }\n value2 += token.value;\n advance2(state);\n }\n return {\n type: \"literal\",\n value: value2,\n raw: value2,\n line: startLine,\n column: startColumn\n };\n }\n if (check(state, \"identifier\")) {\n const savedPos = state.pos;\n const idToken = advance2(state);\n if (check(state, \"arrow\")) {\n let value2 = idToken.value + \" \";\n value2 += advance2(state).value + \" \";\n let braceDepth = 0;\n let parenDepth = 0;\n while (!isAtEnd(state)) {\n const token = peek(state);\n if (braceDepth === 0 && parenDepth === 0) {\n if (token.type === \"pipe\" || token.type === \"variable_end\" || token.type === \"tag_end\") {\n break;\n }\n }\n if (token.type === \"lbrace\" || token.type === \"lparen\") {\n if (token.type === \"lbrace\") braceDepth++;\n else parenDepth++;\n } else if (token.type === \"rbrace\" || token.type === \"rparen\") {\n if (token.type === \"rbrace\") braceDepth--;\n else parenDepth--;\n if (braceDepth < 0 || parenDepth < 0) break;\n }\n if (token.type === \"string\") {\n value2 += `\"${token.value}\"`;\n } else {\n value2 += token.value;\n }\n advance2(state);\n }\n return {\n type: \"literal\",\n value: value2.trim(),\n raw: value2.trim(),\n line: startToken.line,\n column: startToken.column\n };\n }\n state.pos = savedPos;\n }\n const first2 = parsePrimaryExpression(state);\n if (!first2) return null;\n if (first2.type === \"literal\" && startToken.type === \"string\") {\n const formatString = (val) => `\"${val}\"`;\n let combined = formatString(first2.value);\n let isStringPair = false;\n while (check(state, \"colon\")) {\n const savedPos = state.pos;\n advance2(state);\n if (check(state, \"string\")) {\n const next = parsePrimaryExpression(state);\n if (next && next.type === \"literal\") {\n combined += \":\" + formatString(next.value);\n isStringPair = true;\n }\n } else {\n state.pos = savedPos;\n break;\n }\n }\n return {\n type: \"literal\",\n value: combined,\n raw: combined,\n ...!isStringPair ? { unquotedValue: first2.value } : {},\n line: first2.line,\n column: first2.column\n };\n }\n if (first2.type === \"identifier\" && check(state, \"plus\")) {\n const savedPos = state.pos;\n advance2(state);\n if (check(state, \"number\")) {\n const numberToken = advance2(state);\n const combined = `${first2.name}+${numberToken.value}`;\n return {\n type: \"literal\",\n value: combined,\n raw: combined,\n line: first2.line,\n column: first2.column\n };\n }\n state.pos = savedPos;\n }\n if (first2.type === \"literal\" && startToken.type === \"number\" && check(state, \"identifier\")) {\n const idToken = peek(state);\n if (idToken.value.length === 1 && /^[a-z]$/i.test(idToken.value)) {\n advance2(state);\n const combined = String(first2.value) + idToken.value;\n return {\n type: \"literal\",\n value: combined,\n raw: combined,\n line: first2.line,\n column: first2.column\n };\n }\n }\n if (!check(state, \"colon\")) {\n return first2;\n }\n let value = \"\";\n if (first2.type === \"literal\") {\n value = String(first2.value);\n } else if (first2.type === \"identifier\") {\n value = first2.name;\n } else {\n return first2;\n }\n while (check(state, \"colon\") && !isAtEnd(state)) {\n advance2(state);\n value += \":\";\n const next = parsePrimaryExpression(state);\n if (next) {\n if (next.type === \"literal\") {\n value += String(next.value);\n } else if (next.type === \"identifier\") {\n value += next.name;\n }\n } else {\n break;\n }\n }\n return {\n type: \"literal\",\n value,\n raw: value,\n line: startToken.line,\n column: startToken.column\n };\n}\nfunction parseFilterExpression(state) {\n let left = parseOrExpression(state);\n if (!left) return null;\n while (check(state, \"pipe\")) {\n advance2(state);\n if (!check(state, \"identifier\")) {\n state.errors.push({\n message: \"Missing filter name after |\",\n line: peek(state).line,\n column: peek(state).column\n });\n break;\n }\n const filterToken = advance2(state);\n const args = [];\n if (check(state, \"colon\")) {\n advance2(state);\n if (check(state, \"lparen\")) {\n advance2(state);\n while (!check(state, \"rparen\") && !isAtEnd(state)) {\n const arg = parseOrExpression(state);\n if (!arg) break;\n if (arg.type === \"literal\" && typeof arg.value === \"string\" && check(state, \"colon\")) {\n const formatStr = (val) => `\"${val}\"`;\n let combined = formatStr(arg.value);\n while (check(state, \"colon\")) {\n advance2(state);\n const next = parseOrExpression(state);\n if (next && next.type === \"literal\" && typeof next.value === \"string\") {\n combined += \":\" + formatStr(next.value);\n } else {\n break;\n }\n }\n args.push({\n type: \"literal\",\n value: combined,\n raw: combined,\n line: arg.line,\n column: arg.column\n });\n } else {\n args.push(arg);\n }\n if (check(state, \"comma\")) {\n advance2(state);\n } else {\n break;\n }\n }\n if (check(state, \"rparen\")) {\n advance2(state);\n }\n } else {\n const arg = parseFilterArgument(state);\n if (arg) args.push(arg);\n while (check(state, \"comma\")) {\n advance2(state);\n const nextArg = parseFilterArgument(state);\n if (nextArg) args.push(nextArg);\n }\n }\n }\n left = {\n type: \"filter\",\n value: left,\n name: filterToken.value,\n args,\n line: filterToken.line,\n column: filterToken.column\n };\n }\n return left;\n}\nfunction parseOrExpression(state) {\n return withDepth(state, () => parseOrExpressionInner(state));\n}\nfunction parseOrExpressionInner(state) {\n let left = parseAndExpression(state);\n if (!left) return null;\n while (check(state, \"op_or\")) {\n const opToken = advance2(state);\n const right = parseAndExpression(state);\n if (!right) {\n state.errors.push({\n message: 'Missing value after \"or\"',\n line: opToken.line,\n column: opToken.column\n });\n break;\n }\n left = {\n type: \"binary\",\n operator: \"or\",\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parseAndExpression(state) {\n let left = parseNotExpression(state);\n if (!left) return null;\n while (check(state, \"op_and\")) {\n const opToken = advance2(state);\n const right = parseNotExpression(state);\n if (!right) {\n state.errors.push({\n message: 'Missing value after \"and\"',\n line: opToken.line,\n column: opToken.column\n });\n break;\n }\n left = {\n type: \"binary\",\n operator: \"and\",\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parseNotExpression(state) {\n return withDepth(state, () => parseNotExpressionInner(state));\n}\nfunction parseNotExpressionInner(state) {\n if (check(state, \"op_not\")) {\n const opToken = advance2(state);\n const argument = parseNotExpression(state);\n if (!argument) {\n state.errors.push({\n message: 'Missing value after \"not\"',\n line: opToken.line,\n column: opToken.column\n });\n return null;\n }\n return {\n type: \"unary\",\n operator: \"not\",\n argument,\n line: opToken.line,\n column: opToken.column\n };\n }\n return parseComparisonExpression(state);\n}\nfunction parseComparisonExpression(state) {\n let left = parsePostfixExpression(state);\n if (!left) return null;\n const comparisonOps = [\"op_eq\", \"op_neq\", \"op_gt\", \"op_lt\", \"op_gte\", \"op_lte\", \"op_contains\"];\n if (comparisonOps.some((op) => check(state, op))) {\n const opToken = advance2(state);\n const right = parsePostfixExpression(state);\n if (!right) {\n state.errors.push({\n message: `Missing value after \"${opToken.value}\"`,\n line: opToken.line,\n column: opToken.column\n });\n return left;\n }\n const operatorMap = {\n \"op_eq\": \"==\",\n \"op_neq\": \"!=\",\n \"op_gt\": \">\",\n \"op_lt\": \"<\",\n \"op_gte\": \">=\",\n \"op_lte\": \"<=\",\n \"op_contains\": \"contains\"\n };\n return {\n type: \"binary\",\n operator: operatorMap[opToken.type] || opToken.value,\n left,\n right,\n line: opToken.line,\n column: opToken.column\n };\n }\n return left;\n}\nfunction parsePostfixExpression(state) {\n let left = parsePrimaryExpression(state);\n if (!left) return null;\n while (check(state, \"lbracket\") || check(state, \"dot\")) {\n if (check(state, \"dot\")) {\n const dot = advance2(state);\n const property2 = peek(state);\n const parts = property2.value.split(\".\");\n if (property2.type === \"string\" || !parts.every((part) => /^[A-Za-z_@][A-Za-z0-9_@-]*$/.test(part))) {\n state.errors.push({ message: \"Expected a property name after .\", line: dot.line, column: dot.column });\n break;\n }\n advance2(state);\n let column = property2.column;\n for (const part of parts) {\n left = {\n type: \"member\",\n object: left,\n property: { type: \"literal\", value: part, raw: part, line: property2.line, column },\n computed: false,\n line: property2.line,\n column\n };\n column += part.length + 1;\n }\n continue;\n }\n const bracketToken = advance2(state);\n const property = parseOrExpression(state);\n if (!property) {\n state.errors.push({\n message: \"Empty brackets [] - add an index or key\",\n line: bracketToken.line,\n column: bracketToken.column\n });\n break;\n }\n if (check(state, \"rbracket\")) {\n advance2(state);\n } else {\n state.errors.push({\n message: \"Missing closing ]\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n left = {\n type: \"member\",\n object: left,\n property,\n computed: true,\n line: bracketToken.line,\n column: bracketToken.column\n };\n }\n return left;\n}\nfunction parsePrimaryExpression(state) {\n const token = peek(state);\n if (check(state, \"lparen\")) {\n advance2(state);\n const expr = parseOrExpression(state);\n if (!expr) {\n state.errors.push({\n message: \"Empty parentheses () - add an expression\",\n line: token.line,\n column: token.column\n });\n return null;\n }\n if (check(state, \"rparen\")) {\n advance2(state);\n } else {\n state.errors.push({\n message: \"Missing closing )\",\n line: peek(state).line,\n column: peek(state).column\n });\n }\n return {\n type: \"group\",\n expression: expr,\n line: token.line,\n column: token.column\n };\n }\n if (check(state, \"string\")) {\n const strToken = advance2(state);\n return {\n type: \"literal\",\n value: strToken.value,\n raw: strToken.value,\n line: strToken.line,\n column: strToken.column\n };\n }\n if (check(state, \"number\")) {\n const numToken = advance2(state);\n return {\n type: \"literal\",\n value: parseFloat(numToken.value),\n raw: numToken.value,\n line: numToken.line,\n column: numToken.column\n };\n }\n if (check(state, \"boolean\")) {\n const boolToken = advance2(state);\n return {\n type: \"literal\",\n value: boolToken.value.toLowerCase() === \"true\",\n raw: boolToken.value,\n line: boolToken.line,\n column: boolToken.column\n };\n }\n if (check(state, \"null\")) {\n const nullToken = advance2(state);\n return {\n type: \"literal\",\n value: null,\n raw: \"null\",\n line: nullToken.line,\n column: nullToken.column\n };\n }\n if (check(state, \"identifier\")) {\n const idToken = advance2(state);\n let name = idToken.value;\n if (check(state, \"colon\")) {\n const colonToken = peek(state);\n advance2(state);\n let rest = \"\";\n while (check(state, \"identifier\") || check(state, \"dot\") || check(state, \"colon\") || check(state, \"lbracket\") || check(state, \"rbracket\") || check(state, \"number\") || check(state, \"string\") || check(state, \"star\")) {\n rest += advance2(state).value;\n }\n name = name + \":\" + rest;\n }\n return {\n type: \"identifier\",\n name,\n ...name.includes(\".\") ? { path: name.split(\".\") } : {},\n line: idToken.line,\n column: idToken.column\n };\n }\n return null;\n}\nfunction peek(state) {\n return state.tokens[state.pos] || { type: \"eof\", value: \"\", line: 0, column: 0 };\n}\nfunction advance2(state) {\n const token = peek(state);\n if (!isAtEnd(state)) {\n state.pos++;\n }\n return token;\n}\nfunction check(state, type) {\n return peek(state).type === type;\n}\nfunction isAtEnd(state) {\n return peek(state).type === \"eof\";\n}\nfunction checkTagKeyword(state, ...keywords) {\n if (!check(state, \"tag_start\")) return false;\n const nextPos = state.pos + 1;\n if (nextPos >= state.tokens.length) return false;\n const nextToken = state.tokens[nextPos];\n return keywords.includes(nextToken.type);\n}\nfunction consumeTagStart(state) {\n if (check(state, \"tag_start\")) {\n return advance2(state);\n }\n return null;\n}\nfunction consumeTagEnd(state) {\n if (check(state, \"tag_end\")) {\n return advance2(state);\n }\n state.errors.push({\n message: \"Missing closing %}\",\n line: peek(state).line,\n column: peek(state).column\n });\n return null;\n}\nfunction skipToEndOfTag(state) {\n while (!isAtEnd(state) && !check(state, \"tag_end\")) {\n advance2(state);\n }\n if (check(state, \"tag_end\")) {\n advance2(state);\n }\n}\nfunction skipToEndOfVariable(state) {\n while (!isAtEnd(state) && !check(state, \"variable_end\")) {\n advance2(state);\n }\n if (check(state, \"variable_end\")) {\n advance2(state);\n }\n}\nvar PRESET_VARIABLES = /* @__PURE__ */ new Set([\n \"author\",\n \"content\",\n \"contentHtml\",\n \"date\",\n \"description\",\n \"domain\",\n \"favicon\",\n \"fullHtml\",\n \"highlights\",\n \"image\",\n \"language\",\n \"model\",\n \"modelId\",\n \"modelProvider\",\n \"published\",\n \"transcript\",\n \"selection\",\n \"selectionHtml\",\n \"site\",\n \"title\",\n \"time\",\n \"url\",\n \"words\"\n]);\nvar SPECIAL_PREFIXES = [\n \"schema:\",\n \"selector:\",\n \"selectorHtml:\",\n \"meta:\"\n];\nfunction levenshteinDistance(a, b) {\n const matrix = [];\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n for (let j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1,\n matrix[i][j - 1] + 1,\n matrix[i - 1][j] + 1\n );\n }\n }\n }\n return matrix[b.length][a.length];\n}\nfunction findSimilarVariable(name) {\n let bestMatch = null;\n let bestDistance = Infinity;\n for (const preset of PRESET_VARIABLES) {\n const distance = levenshteinDistance(name.toLowerCase(), preset.toLowerCase());\n if (distance < Math.max(name.length, preset.length) / 2 && distance < bestDistance) {\n bestDistance = distance;\n bestMatch = preset;\n }\n }\n return bestMatch;\n}\nfunction isValidVariable(name, definedVariables) {\n if (name.startsWith('\"')) {\n return true;\n }\n for (const prefix of SPECIAL_PREFIXES) {\n if (name.startsWith(prefix)) {\n return true;\n }\n }\n if (PRESET_VARIABLES.has(name)) {\n return true;\n }\n if (definedVariables.has(name)) {\n return true;\n }\n const baseName = name.split(\".\")[0].split(\"[\")[0];\n if (PRESET_VARIABLES.has(baseName) || definedVariables.has(baseName) || baseName === \"loop\") {\n return true;\n }\n return false;\n}\nfunction getVariableNameFromExpression(expr) {\n switch (expr.type) {\n case \"identifier\":\n return { name: expr.name, line: expr.line, column: expr.column };\n case \"filter\":\n return getVariableNameFromExpression(expr.value);\n case \"member\":\n return getVariableNameFromExpression(expr.object);\n case \"binary\":\n if (expr.operator === \"??\") {\n return getVariableNameFromExpression(expr.left);\n }\n return null;\n default:\n return null;\n }\n}\nfunction collectVariables(nodes, definedVariables, references) {\n for (const node of nodes) {\n switch (node.type) {\n case \"variable\": {\n const varInfo = getVariableNameFromExpression(node.expression);\n if (varInfo) {\n references.push({ ...varInfo, scope: new Set(definedVariables) });\n }\n break;\n }\n case \"set\":\n definedVariables.add(node.variable);\n collectExpression(node.value, definedVariables, references);\n break;\n case \"if\":\n collectExpression(node.condition, definedVariables, references);\n collectVariables(node.consequent, definedVariables, references);\n for (const elseif of node.elseifs) {\n collectExpression(elseif.condition, definedVariables, references);\n collectVariables(elseif.body, definedVariables, references);\n }\n if (node.alternate) {\n collectVariables(node.alternate, definedVariables, references);\n }\n break;\n case \"for\":\n const loopVariables = new Set(definedVariables);\n loopVariables.add(node.iterator);\n loopVariables.add(`${node.iterator}_index`);\n collectExpression(node.iterable, definedVariables, references);\n collectVariables(node.body, loopVariables, references);\n break;\n }\n }\n}\nfunction collectExpression(expr, definedVariables, references) {\n switch (expr.type) {\n case \"identifier\": {\n references.push({ name: expr.name, line: expr.line, column: expr.column, scope: new Set(definedVariables) });\n break;\n }\n case \"filter\":\n collectExpression(expr.value, definedVariables, references);\n for (const arg of expr.args) {\n collectExpression(arg, definedVariables, references);\n }\n break;\n case \"binary\":\n collectExpression(expr.left, definedVariables, references);\n collectExpression(expr.right, definedVariables, references);\n break;\n case \"unary\":\n collectExpression(expr.argument, definedVariables, references);\n break;\n case \"member\":\n collectExpression(expr.object, definedVariables, references);\n collectExpression(expr.property, definedVariables, references);\n break;\n case \"group\":\n collectExpression(expr.expression, definedVariables, references);\n break;\n }\n}\nfunction validateVariables(ast) {\n const warnings = [];\n const definedVariables = /* @__PURE__ */ new Set();\n const references = [];\n collectVariables(ast, definedVariables, references);\n for (const ref of references) {\n if (!isValidVariable(ref.name, ref.scope)) {\n const similar = findSimilarVariable(ref.name);\n let message = `Unknown variable \"${ref.name}\"`;\n if (similar) {\n message += `. Did you mean \"${similar}\"?`;\n }\n warnings.push({\n message,\n line: ref.line,\n column: ref.column\n });\n }\n }\n return warnings;\n}\nfunction expressionToString(expr) {\n switch (expr.type) {\n case \"literal\":\n if (typeof expr.value === \"string\") {\n if (/^[\"'].*[\"']$/.test(expr.value) || expr.value.includes('\":\"') || expr.value.includes(\"':'\")) {\n return expr.value;\n }\n if (/\\s*\\w+\\s*=>/.test(expr.value)) {\n return expr.value;\n }\n if (/^[\\w.:+\\-*/]+$/.test(expr.value)) {\n return expr.value;\n }\n return `\"${expr.value}\"`;\n }\n return String(expr.value);\n case \"identifier\":\n return expr.name;\n case \"filter\":\n const base = expressionToString(expr.value);\n const filterArgs = expr.args.map(expressionToString).join(\":\");\n return filterArgs ? `${base}|${expr.name}:${filterArgs}` : `${base}|${expr.name}`;\n case \"binary\":\n return `${expressionToString(expr.left)} ${expr.operator} ${expressionToString(expr.right)}`;\n case \"unary\":\n return `${expr.operator} ${expressionToString(expr.argument)}`;\n case \"group\":\n return `(${expressionToString(expr.expression)})`;\n case \"member\":\n return `${expressionToString(expr.object)}.${expressionToString(expr.property)}`;\n default:\n return \"\";\n }\n}\nfunction argsToParamString(args) {\n if (args.length === 0) return void 0;\n return args.map(expressionToString).join(\",\");\n}\nfunction isLiteralFilterArgument(expression) {\n if (expression.type === \"literal\") return true;\n if (expression.type === \"group\") return isLiteralFilterArgument(expression.expression);\n return false;\n}\nfunction findSimilarFilter(name, filterNames) {\n let bestMatch = null;\n let bestDistance = Infinity;\n for (const filterName of filterNames) {\n const distance = levenshteinDistance(name.toLowerCase(), filterName.toLowerCase());\n if (distance < Math.max(name.length, filterName.length) / 2 && distance < bestDistance) {\n bestDistance = distance;\n bestMatch = filterName;\n }\n }\n return bestMatch;\n}\nfunction collectFiltersFromExpression(expr, usages) {\n switch (expr.type) {\n case \"filter\":\n usages.push({\n name: expr.name,\n hasArgs: expr.args.length > 0,\n args: expr.args,\n line: expr.line,\n column: expr.column\n });\n collectFiltersFromExpression(expr.value, usages);\n for (const arg of expr.args) {\n collectFiltersFromExpression(arg, usages);\n }\n break;\n case \"binary\":\n collectFiltersFromExpression(expr.left, usages);\n collectFiltersFromExpression(expr.right, usages);\n break;\n case \"unary\":\n collectFiltersFromExpression(expr.argument, usages);\n break;\n case \"member\":\n collectFiltersFromExpression(expr.object, usages);\n collectFiltersFromExpression(expr.property, usages);\n break;\n case \"group\":\n collectFiltersFromExpression(expr.expression, usages);\n break;\n }\n}\nfunction collectFilters(nodes) {\n const usages = [];\n function processNode(node) {\n switch (node.type) {\n case \"variable\":\n collectFiltersFromExpression(node.expression, usages);\n break;\n case \"set\":\n collectFiltersFromExpression(node.value, usages);\n break;\n case \"if\":\n collectFiltersFromExpression(node.condition, usages);\n node.consequent.forEach(processNode);\n node.elseifs.forEach((elseif) => {\n collectFiltersFromExpression(elseif.condition, usages);\n elseif.body.forEach(processNode);\n });\n node.alternate?.forEach(processNode);\n break;\n case \"for\":\n collectFiltersFromExpression(node.iterable, usages);\n node.body.forEach(processNode);\n break;\n }\n }\n nodes.forEach(processNode);\n return usages;\n}\nfunction validateFilters(ast, registryMetadata) {\n const errors = [];\n const usages = collectFilters(ast);\n const knownFilterNames = new Set(Object.keys(registryMetadata));\n for (const usage of usages) {\n if (!knownFilterNames.has(usage.name)) {\n const similar = findSimilarFilter(usage.name, knownFilterNames);\n let message = `Unknown filter \"${usage.name}\"`;\n if (similar) {\n message += `. Did you mean \"${similar}\"?`;\n }\n errors.push({\n message,\n line: usage.line,\n column: usage.column,\n code: \"UNKNOWN_FILTER\"\n });\n continue;\n }\n const meta = registryMetadata[usage.name];\n if (meta?.validateParams && usage.args.every(isLiteralFilterArgument)) {\n const paramString = usage.hasArgs ? argsToParamString(usage.args) : void 0;\n const result = meta.validateParams(paramString);\n if (!result.valid && result.error) {\n errors.push({\n message: `Filter \"${usage.name}\" ${result.error}`,\n line: usage.line,\n column: usage.column,\n code: \"INVALID_FILTER_ARGUMENTS\"\n });\n }\n }\n }\n return errors;\n}\n\n// src/filters/property_utils.ts\nfunction ownProperty(value, key) {\n if (value === null || value === void 0 || typeof value === \"function\" || typeof key !== \"string\" && typeof key !== \"number\") {\n return { exists: false, value: void 0 };\n }\n const descriptor = Object.getOwnPropertyDescriptor(Object(value), key);\n return descriptor && \"value\" in descriptor ? { exists: true, value: descriptor.value } : { exists: false, value: void 0 };\n}\nfunction ownPropertyAtPath(value, path) {\n if (!path || path.split(\".\").some((segment) => segment === \"\")) {\n return { exists: false, value: void 0 };\n }\n let current = value;\n for (const segment of path.split(\".\")) {\n const property = ownProperty(current, segment);\n if (!property.exists) return property;\n current = property.value;\n }\n return { exists: true, value: current };\n}\n\n// src/renderer.ts\nasync function renderAST(ast, context, options = {}, budget = new RenderBudget(options.limits)) {\n const errors = [];\n const state = {\n context,\n errors,\n pendingTrimRight: false,\n budget\n };\n let output = \"\";\n try {\n budget.value(context.variables);\n for (let i = 0; i < ast.length; i++) {\n const node = ast[i];\n const nodeOutput = await renderNode(node, state);\n output = appendNodeOutput(output, nodeOutput, node, state);\n }\n } catch (error) {\n if (!(error instanceof TemplateRuntimeError) || error.code !== \"LIMIT_EXCEEDED\") throw error;\n return { output: \"\", errors: [...errors, { message: error.message, code: error.code, line: error.line ?? 1, column: error.column ?? 1 }] };\n }\n if (options.trimOutput) {\n output = output.trim();\n }\n return { output, errors };\n}\nasync function renderNode(node, state) {\n state.budget.step();\n switch (node.type) {\n case \"text\":\n return renderText(node, state);\n case \"variable\":\n return renderVariable(node, state);\n case \"if\":\n return renderIf(node, state);\n case \"for\":\n return renderFor(node, state);\n case \"set\":\n return renderSet(node, state);\n default:\n state.errors.push({\n message: `Unknown node type: ${node.type}`,\n line: node.line ?? 0,\n column: node.column ?? 0,\n code: \"RENDER_ERROR\"\n });\n return \"\";\n }\n}\nfunction renderText(node, state) {\n let text = node.value;\n if (state.pendingTrimRight) {\n text = trimLeadingWhitespace(text);\n state.pendingTrimRight = false;\n }\n return text;\n}\nasync function renderVariable(node, state) {\n try {\n const value = await evaluateExpression(node.expression, state);\n const result = valueToString(value, state);\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return result;\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error evaluating variable\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderIf(node, state) {\n try {\n const conditionValue = await evaluateExpression(node.condition, state);\n if (isTruthy(conditionValue)) {\n const result = await renderNodes(node.consequent, state);\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return result;\n }\n for (const elseif of node.elseifs) {\n const elseifValue = await evaluateExpression(elseif.condition, state);\n if (isTruthy(elseifValue)) {\n const result = await renderNodes(elseif.body, state);\n if (node.trimRight) state.pendingTrimRight = true;\n return result;\n }\n }\n if (node.alternate) {\n const result = await renderNodes(node.alternate, state);\n if (node.trimRight) state.pendingTrimRight = true;\n return result;\n }\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error evaluating if condition\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderFor(node, state) {\n try {\n const iterableValue = await evaluateExpression(node.iterable, state);\n if (iterableValue === void 0 || iterableValue === null) {\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n }\n let iterableArray = iterableValue;\n if (!Array.isArray(iterableArray) && typeof iterableArray === \"string\") {\n try {\n const parsed = JSON.parse(iterableArray);\n if (Array.isArray(parsed)) {\n iterableArray = parsed;\n }\n } catch {\n }\n }\n if (!Array.isArray(iterableArray)) {\n state.errors.push({\n message: `For loop iterable is not an array: ${typeof iterableArray}`,\n line: node.line,\n column: node.column,\n code: \"RENDER_ERROR\"\n });\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n }\n const results = [];\n const length2 = iterableArray.length;\n let outputLength = 0;\n for (let i = 0; i < length2; i++) {\n state.budget.step();\n const item = iterableArray[i];\n const loop = {\n index: i + 1,\n // 1-indexed\n index0: i,\n // 0-indexed\n first: i === 0,\n last: i === length2 - 1,\n length: length2\n };\n const loopContext = {\n ...state.context,\n variables: {\n ...state.context.variables,\n [node.iterator]: item,\n [`${node.iterator}_index`]: i,\n // Keep for backwards compatibility\n loop\n }\n };\n const loopState = {\n ...state,\n context: loopContext\n };\n const itemResult = await renderNodes(node.body, loopState);\n const result = trimLeadingWhitespace(itemResult);\n if (result !== \"\") {\n outputLength += result.length + (results.length && !results.at(-1).endsWith(\"\\n\") ? 1 : 0);\n state.budget.output(outputLength);\n results.push(result);\n }\n }\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return results.map((result, index) => {\n if (index === results.length - 1) return trimTrailingWhitespace(result);\n return result.endsWith(\"\\n\") ? result : result + \"\\n\";\n }).join(\"\");\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error in for loop\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderSet(node, state) {\n try {\n const value = await evaluateExpression(node.value, state);\n state.budget.value(value);\n Object.defineProperty(state.context.variables, node.variable, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n if (node.trimRight) {\n state.pendingTrimRight = true;\n }\n return \"\";\n } catch (error) {\n state.errors.push(toRenderError(error, \"Error in set\", node.line, node.column));\n return \"\";\n }\n}\nasync function renderNodes(nodes, state) {\n let output = \"\";\n for (const node of nodes) {\n const nodeOutput = await renderNode(node, state);\n output = appendNodeOutput(output, nodeOutput, node, state);\n }\n return output;\n}\nfunction appendNodeOutput(output, nodeOutput, node, state) {\n state.budget.output(output.length + nodeOutput.length);\n if (\"trimLeft\" in node && node.trimLeft && output.length > 0) {\n output = trimTrailingWhitespace(output);\n }\n if (state.pendingTrimRight && nodeOutput.length > 0) {\n output += trimLeadingWhitespace(nodeOutput);\n state.pendingTrimRight = false;\n } else {\n output += nodeOutput;\n }\n return output;\n}\nasync function evaluateExpression(expr, state) {\n state.budget.step();\n switch (expr.type) {\n case \"literal\":\n return evaluateLiteral(expr);\n case \"identifier\":\n return evaluateIdentifier(expr, state);\n case \"binary\":\n return evaluateBinary(expr, state);\n case \"unary\":\n return evaluateUnary(expr, state);\n case \"filter\":\n return evaluateFilter(expr, state);\n case \"group\":\n return evaluateExpression(expr.expression, state);\n case \"member\":\n return evaluateMember(expr, state);\n default:\n throw new Error(`Unknown expression type: ${expr.type}`);\n }\n}\nfunction evaluateLiteral(expr) {\n return expr.value;\n}\nasync function evaluateIdentifier(expr, state) {\n const name = expr.name;\n const value = resolveVariable(name, state.context.variables, expr.path);\n if (value !== void 0) {\n return value;\n }\n if (state.context.asyncResolver) {\n return state.context.asyncResolver(name, state.context);\n }\n return void 0;\n}\nasync function evaluateMember(expr, state) {\n const object2 = await evaluateExpression(expr.object, state);\n const property = await evaluateExpression(expr.property, state);\n if (object2 === void 0 || object2 === null) {\n return void 0;\n }\n return ownProperty(object2, property).value;\n}\nasync function evaluateBinary(expr, state) {\n if (expr.operator === \"??\") {\n const left2 = await evaluateExpression(expr.left, state);\n if (isTruthy(left2)) {\n return left2;\n }\n return evaluateExpression(expr.right, state);\n }\n const left = await evaluateExpression(expr.left, state);\n const right = await evaluateExpression(expr.right, state);\n switch (expr.operator) {\n case \"==\":\n return left == right;\n case \"!=\":\n return left != right;\n case \">\":\n return left > right;\n case \"<\":\n return left < right;\n case \">=\":\n return left >= right;\n case \"<=\":\n return left <= right;\n case \"contains\":\n return evaluateContains(left, right);\n case \"and\":\n return isTruthy(left) && isTruthy(right);\n case \"or\":\n return isTruthy(left) || isTruthy(right);\n default:\n throw new Error(`Unknown binary operator: ${expr.operator}`);\n }\n}\nasync function evaluateUnary(expr, state) {\n const argument = await evaluateExpression(expr.argument, state);\n switch (expr.operator) {\n case \"not\":\n return !isTruthy(argument);\n default:\n throw new Error(`Unknown unary operator: ${expr.operator}`);\n }\n}\nasync function evaluateFilter(expr, state) {\n const value = await evaluateExpression(expr.value, state);\n const args = [];\n for (const arg of expr.args) {\n let argValue = await evaluateExpression(arg, state);\n if (argValue === void 0 && arg.type === \"identifier\") {\n argValue = arg.name;\n }\n state.budget.value(argValue);\n args.push(argValue);\n }\n const rawArguments = args.map((argument, index) => {\n let expression = expr.args[index];\n while (expression.type === \"group\") expression = expression.expression;\n return expression.type === \"literal\" ? expression.unquotedValue ?? argument : argument;\n });\n const stringValue = valueToString(value, state);\n let paramString;\n if (args.length > 0) {\n const formattedArgs = args.map((a) => {\n if (typeof a === \"string\") {\n if (isQuotedString(a)) {\n return a;\n }\n if (/\\s*\\w+\\s*=>/.test(a)) {\n return a;\n }\n if (/^[\\w.:+\\-*/]+$/.test(a)) {\n return a;\n }\n return `\"${a}\"`;\n }\n return String(a);\n });\n paramString = formattedArgs.join(\",\");\n }\n state.budget.value(paramString);\n const result = await state.context.applyFilter(\n stringValue,\n expr.name,\n paramString,\n expr.line,\n expr.column,\n value,\n rawArguments,\n expr.args.some((argument) => !isLiteralFilterArgument(argument))\n );\n state.budget.value(result);\n return result;\n}\nfunction evaluateContains(left, right) {\n if (left === void 0 || left === null) return false;\n if (right === void 0 || right === null) return false;\n if (Array.isArray(left)) {\n return left.some((item) => {\n if (typeof item === \"string\" && typeof right === \"string\") {\n return item.toLowerCase() === right.toLowerCase();\n }\n return item == right;\n });\n }\n if (typeof left === \"string\") {\n const searchValue = typeof right === \"string\" ? right : String(right);\n return left.toLowerCase().includes(searchValue.toLowerCase());\n }\n return false;\n}\nfunction resolveVariable(name, variables, path) {\n const trimmed = name.trim();\n const wrappedValue = ownProperty(variables, `{{${trimmed}}}`).value;\n if (wrappedValue !== void 0) {\n return wrappedValue;\n }\n if (ownProperty(variables, trimmed).value !== void 0) {\n return ownProperty(variables, trimmed).value;\n }\n if (trimmed.includes(\".\")) {\n return getNestedValue(variables, path ?? trimmed.split(\".\"));\n }\n return void 0;\n}\nfunction getNestedValue(obj, keys) {\n if (keys.length === 0 || !obj) return void 0;\n let value = obj;\n for (const key of keys) {\n if (value === void 0 || value === null) return void 0;\n if (key.includes(\"[\") && key.includes(\"]\")) {\n const match = key.match(/^([^\\[]*)\\[([^\\]]+)\\]/);\n if (match) {\n const [, arrayKey, indexStr] = match;\n const baseValue = arrayKey ? ownProperty(value, arrayKey).value : value;\n if (Array.isArray(baseValue)) {\n const index = parseInt(indexStr, 10);\n value = ownProperty(baseValue, index).value;\n } else if (baseValue && typeof baseValue === \"object\") {\n value = ownProperty(baseValue, indexStr.replace(/^[\"']|[\"']$/g, \"\")).value;\n } else {\n return void 0;\n }\n continue;\n }\n }\n if (ownProperty(value, `{{${key}}}`).value !== void 0) {\n value = ownProperty(value, `{{${key}}}`).value;\n } else {\n value = ownProperty(value, key).value;\n }\n }\n return value;\n}\nfunction trimTrailingWhitespace(str) {\n return str.replace(/[\\t ]*\\r?\\n?$/, \"\");\n}\nfunction trimLeadingWhitespace(str) {\n return str.replace(/^[\\t ]*\\r?\\n?/, \"\");\n}\nfunction isQuotedString(str) {\n return /^[\"'][\\s\\S]*[\"']$/.test(str) || str.includes('\":\"') || str.includes(\"':'\");\n}\nfunction isTruthy(value) {\n if (value === void 0 || value === null) return false;\n if (value === \"\") return false;\n if (value === 0) return false;\n if (value === false) return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n}\nfunction valueToString(value, state) {\n state.budget.value(value);\n if (value === void 0 || value === null) {\n return \"\";\n }\n if (Array.isArray(value) && value.length === 1 && typeof value[0] !== \"object\") {\n return String(value[0]);\n }\n if (typeof value === \"object\") {\n const result = JSON.stringify(value);\n state.budget.value(result);\n return result;\n }\n return String(value);\n}\nfunction toRenderError(error, prefix, line, column) {\n if (error instanceof TemplateRuntimeError) {\n if (error.code === \"LIMIT_EXCEEDED\") throw error;\n return {\n message: error.message,\n line: error.line ?? line,\n column: error.column ?? column,\n code: error.code\n };\n }\n return {\n message: `${prefix}: ${error instanceof Error ? error.message : String(error)}`,\n line,\n column,\n code: \"RENDER_ERROR\"\n };\n}\n\n// src/engine.ts\nfunction normalizeParserError(error) {\n return {\n message: error.message,\n line: error.line,\n column: error.column,\n code: error.code ?? \"PARSE_ERROR\"\n };\n}\nfunction metadataForRegistry(filters2) {\n return Object.fromEntries(Object.entries(filters2).map(([name, filter]) => [name, filter.metadata ?? {}]));\n}\nfunction createEngine(options = {}) {\n const filters2 = Object.freeze({ ...options.filters ?? {} });\n const filterMetadata2 = metadataForRegistry(filters2);\n const parseTemplate2 = (template2) => parse(template2, options.limits);\n function validate(templateOrAst) {\n let ast;\n const errors = [];\n if (typeof templateOrAst === \"string\") {\n const parsed = parseTemplate2(templateOrAst);\n ast = parsed.ast;\n errors.push(...parsed.errors.map(normalizeParserError));\n } else {\n ast = templateOrAst;\n try {\n new RenderBudget(options.limits).value(ast);\n } catch (error) {\n if (!(error instanceof TemplateRuntimeError)) throw error;\n return [{ message: error.message, code: error.code, line: 1, column: 1 }];\n }\n }\n if (errors.length === 0) {\n errors.push(...validateFilters(ast, filterMetadata2).map(normalizeParserError));\n }\n return errors;\n }\n async function render(template2, input, renderOptions = {}) {\n const limits = { ...options.limits, ...renderOptions.limits };\n const parsed = parse(template2, limits);\n const errors = parsed.errors.map(normalizeParserError);\n if (errors.length > 0) return { output: \"\", errors, warnings: [] };\n const budget = new RenderBudget(limits);\n const validationErrors = validateFilters(parsed.ast, filterMetadata2).map(normalizeParserError);\n const warnings = [];\n const warningKeys = /* @__PURE__ */ new Set();\n const resolverContext = {\n variables: input.variables,\n context: input.context\n };\n const rendered = await renderAST(parsed.ast, {\n variables: input.variables,\n asyncResolver: input.resolveVariable ? async (name) => {\n try {\n return await input.resolveVariable(name, resolverContext);\n } catch (error) {\n throw new TemplateRuntimeError(\n `Could not resolve variable \"${name}\": ${error instanceof Error ? error.message : String(error)}`,\n \"RESOLVE_ERROR\"\n );\n }\n } : void 0,\n applyFilter: async (value, filterName, param, line, column, rawValue, rawArguments, validateResolvedParams) => {\n const filter = Object.prototype.hasOwnProperty.call(filters2, filterName) ? filters2[filterName] : void 0;\n if (!filter) {\n return value;\n }\n try {\n if (validateResolvedParams) {\n const validation = filterMetadata2[filterName]?.validateParams?.(param);\n if (validation && !validation.valid) {\n throw new TemplateRuntimeError(\n `Filter \"${filterName}\" ${validation.error ?? \"has invalid arguments\"}`,\n \"INVALID_FILTER_ARGUMENTS\"\n );\n }\n }\n const result = await filter(value, param, {\n allowRegex: options.allowRegex ?? true,\n checkValue: (value2) => budget.value(value2),\n checkLength: (length2) => budget.length(length2),\n ...resolverContext,\n rawValue,\n rawArguments,\n reportWarning: (warning) => {\n const templateWarning = {\n message: warning.message,\n line,\n column,\n code: warning.code ?? \"FILTER_WARNING\",\n filter: filterName\n };\n const warningKey = JSON.stringify([\n templateWarning.code,\n templateWarning.filter,\n templateWarning.line,\n templateWarning.column,\n templateWarning.message\n ]);\n if (!warningKeys.has(warningKey)) {\n warningKeys.add(warningKey);\n warnings.push(templateWarning);\n }\n }\n });\n budget.value(result);\n return result;\n } catch (error) {\n if (error instanceof TemplateRuntimeError) {\n throw new TemplateRuntimeError(\n error.message,\n error.code,\n error.line ?? line,\n error.column ?? column\n );\n }\n throw new TemplateRuntimeError(\n `Filter \"${filterName}\" failed: ${error instanceof Error ? error.message : String(error)}`,\n \"FILTER_ERROR\",\n line,\n column\n );\n }\n }\n }, { ...renderOptions, limits }, budget);\n return {\n output: rendered.output,\n errors: [...validationErrors, ...rendered.errors],\n warnings\n };\n }\n return {\n filters: filters2,\n parse: parseTemplate2,\n validate,\n render,\n async renderOrThrow(template2, input, renderOptions) {\n const result = await render(template2, input, renderOptions);\n if (result.errors.length > 0) throw new TemplateRenderError(result.errors);\n return result.output;\n }\n };\n}\n\n// src/filters/blockquote.ts\nvar blockquote = (input) => {\n const processBlockquote = (str, depth = 1) => {\n const prefix = \"> \".repeat(depth);\n return str.split(\"\\n\").map((line) => `${prefix}${line}`).join(\"\\n\");\n };\n const processArray = (arr, depth = 1) => {\n return arr.map((item) => {\n if (Array.isArray(item)) {\n return processArray(item, depth + 1);\n }\n return processBlockquote(String(item), depth);\n }).join(\"\\n\");\n };\n try {\n const parsedInput = JSON.parse(input);\n if (Array.isArray(parsedInput)) {\n return processArray(parsedInput);\n }\n if (typeof parsedInput === \"object\" && parsedInput !== null) {\n return processBlockquote(JSON.stringify(parsedInput, null, 2));\n }\n return processBlockquote(String(parsedInput));\n } catch (error) {\n if (Array.isArray(input)) {\n return processArray(input);\n }\n return processBlockquote(input);\n }\n};\n\n// src/filters/value_utils.ts\nfunction finiteNumber(value) {\n if (typeof value === \"number\") return Number.isFinite(value) ? value : void 0;\n if (typeof value !== \"string\" || value.trim() === \"\") return void 0;\n const number = Number(value.trim());\n return Number.isFinite(number) ? number : void 0;\n}\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\nfunction inputValue(value, context, allowLeadingWhitespace = false) {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\")) {\n if (Array.isArray(context.rawValue) || isPlainObject(context.rawValue)) {\n return context.rawValue;\n }\n }\n const collectionText = allowLeadingWhitespace ? value.trimStart() : value;\n if (collectionText.startsWith(\"[\") || collectionText.startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed) || isPlainObject(parsed)) return parsed;\n } catch {\n }\n }\n return value;\n}\nfunction collectionInputValue(value, context, allowLeadingWhitespace = false) {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\")) {\n const rawValue = context.rawValue;\n if (Array.isArray(rawValue) || isPlainObject(rawValue)) return rawValue;\n if (typeof rawValue !== \"string\") return rawValue;\n }\n const collectionText = allowLeadingWhitespace ? value.trimStart() : value;\n if (collectionText.startsWith(\"[\") || collectionText.startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed) || isPlainObject(parsed)) return parsed;\n } catch {\n }\n }\n return value;\n}\nfunction arrayInputValue(value, context) {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\")) {\n const rawValue = context.rawValue;\n if (Array.isArray(rawValue)) return rawValue;\n if (typeof rawValue !== \"string\") return rawValue;\n }\n if (value.trimStart().startsWith(\"[\")) {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) return parsed;\n } catch {\n }\n }\n return value;\n}\nfunction mapStringValues(value, formatter) {\n if (typeof value === \"string\") return formatter(value);\n if (Array.isArray(value)) return value.map((item) => mapStringValues(item, formatter));\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([key, item]) => [key, mapStringValues(item, formatter)])\n );\n }\n return value;\n}\n\n// src/filters/markdown.ts\nfunction markdownFilter(formatter) {\n return (value, _param, context) => mapStringValues(inputValue(value, context), formatter);\n}\nfunction wrapInline(value, open, close = open) {\n if (!value.trim()) return value;\n const content = value.trim();\n const start = value.indexOf(content);\n return `${value.slice(0, start)}${open}${content}${close}${value.slice(start + content.length)}`;\n}\nfunction splitBlankLinePadding(value) {\n const leading = value.match(/^(?:[\\t ]*\\r?\\n)+/)?.[0] ?? \"\";\n const withoutLeading = value.slice(leading.length);\n const trailing = withoutLeading.match(/(?:\\r?\\n[\\t ]*)+$/)?.[0] ?? \"\";\n return {\n leading,\n content: withoutLeading.slice(0, withoutLeading.length - trailing.length),\n trailing\n };\n}\nfunction isMultiline(value) {\n return /[\\r\\n]/.test(value);\n}\nfunction formatHeading(level, value) {\n if (value === \"\") return value;\n const prefix = `${\"#\".repeat(level)} `;\n return value.split(/(\\r?\\n)/).map(\n (part) => /^(?:\\r?\\n)$/.test(part) || !part.trim() ? part : `${prefix}${part}`\n ).join(\"\");\n}\nvar h1 = markdownFilter((value) => formatHeading(1, value));\nvar h2 = markdownFilter((value) => formatHeading(2, value));\nvar h3 = markdownFilter((value) => formatHeading(3, value));\nvar h4 = markdownFilter((value) => formatHeading(4, value));\nvar h5 = markdownFilter((value) => formatHeading(5, value));\nvar h6 = markdownFilter((value) => formatHeading(6, value));\nvar markdownPunctuation = /[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]/g;\nvar escape_md = markdownFilter((value) => value.replace(markdownPunctuation, \"\\\\$&\"));\nvar hard_break = markdownFilter((value) => value.replace(\n /^([^\\r\\n]*\\S)[\\t ]*(\\r?\\n)(?=[^\\r\\n]*\\S)/gm,\n \"$1 $2\"\n));\nfunction validateMarkerParam(param, markers) {\n const marker = cleanScalarParam(param);\n if (marker === void 0 || markers.includes(marker)) return { valid: true };\n return {\n valid: false,\n error: `invalid marker \"${marker}\". Use ${markers.map((value) => `\"${value}\"`).join(\" or \")}`\n };\n}\nvar validateBoldParams = (param) => validateMarkerParam(param, [\"*\", \"_\"]);\nvar validateItalicParams = (param) => validateMarkerParam(param, [\"*\", \"_\"]);\nvar bold = (value, param, context) => {\n const marker = cleanScalarParam(param) ?? \"*\";\n return mapStringValues(inputValue(value, context), (item) => wrapInline(item, marker.repeat(2)));\n};\nvar italic = (value, param, context) => {\n const marker = cleanScalarParam(param) ?? \"*\";\n return mapStringValues(inputValue(value, context), (item) => wrapInline(item, marker));\n};\nvar strike = markdownFilter((value) => wrapInline(value, \"~~\"));\nvar highlightColorMarkers = {\n red: \"\\u{1F534}\",\n orange: \"\\u{1F7E0}\",\n yellow: \"\\u{1F7E1}\",\n green: \"\\u{1F7E2}\",\n blue: \"\\u{1F535}\",\n purple: \"\\u{1F7E3}\"\n};\nfunction resolveHighlightMarker(param) {\n const color = cleanScalarParam(param);\n if (color === void 0) return \"\";\n if (Object.prototype.hasOwnProperty.call(highlightColorMarkers, color)) {\n return highlightColorMarkers[color];\n }\n return void 0;\n}\nvar validateHighlightParams = (param) => {\n const color = cleanScalarParam(param);\n if (resolveHighlightMarker(param) !== void 0) {\n return { valid: true };\n }\n return {\n valid: false,\n error: `invalid color \"${color}\". Use red, orange, yellow, green, blue, or purple`\n };\n};\nvar highlight = (value, param, context) => {\n const marker = resolveHighlightMarker(param) ?? \"\";\n return mapStringValues(inputValue(value, context), (item) => wrapInline(item, `==${marker}`, \"==\"));\n};\nfunction appendBlock(value, block2) {\n if (value === \"\") return block2;\n if (/(?:\\r?\\n[\\t ]*){2,}$/.test(value)) return `${value}${block2}`;\n if (/\\r?\\n[\\t ]*$/.test(value)) return `${value}\n${block2}`;\n return `${value}\n\n${block2}`;\n}\nfunction prependBlock(value, block2) {\n if (value === \"\") return block2;\n if (/^(?:[\\t ]*\\r?\\n){2,}/.test(value)) return `${block2}${value}`;\n if (/^[\\t ]*\\r?\\n/.test(value)) return `${block2}\n${value}`;\n return `${block2}\n\n${value}`;\n}\nvar validateHrParams = (param) => {\n const position = cleanScalarParam(param);\n if (position === void 0 || [\"after\", \"before\", \"both\"].includes(position)) {\n return { valid: true };\n }\n return { valid: false, error: `invalid position \"${position}\". Use \"after\", \"before\", or \"both\"` };\n};\nvar hr = (value, param, context) => {\n const position = cleanScalarParam(param) ?? \"after\";\n return mapStringValues(inputValue(value, context), (item) => {\n if (position === \"before\") return prependBlock(item, \"---\");\n if (position === \"both\") return appendBlock(prependBlock(item, \"---\"), \"---\");\n return appendBlock(item, \"---\");\n });\n};\nfunction longestBacktickRun(value) {\n return Math.max(0, ...Array.from(value.matchAll(/`+/g), (match) => match[0].length));\n}\nfunction formatInlineCode(value) {\n if (!value.trim()) return value;\n const content = value.trim();\n const start = value.indexOf(content);\n const delimiter = \"`\".repeat(Math.max(1, longestBacktickRun(content) + 1));\n const padding = content.startsWith(\"`\") || content.endsWith(\"`\") ? \" \" : \"\";\n return `${value.slice(0, start)}${delimiter}${padding}${content}${padding}${delimiter}${value.slice(start + content.length)}`;\n}\nfunction formatCodeBlock(value, language = \"\") {\n if (value === \"\") return value;\n const { leading, content, trailing } = splitBlankLinePadding(value);\n if (content === \"\") return value;\n const fence = \"`\".repeat(Math.max(3, longestBacktickRun(content) + 1));\n return `${leading}${fence}${language}\n${content}\n${fence}${trailing}`;\n}\nvar validateCodeParams = (param) => {\n const language = cleanScalarParam(param);\n if (language === void 0 || !/[\\r\\n`]/.test(language)) return { valid: true };\n return { valid: false, error: \"language cannot contain newlines or backticks\" };\n};\nvar code = (value, param, context) => {\n const language = cleanScalarParam(param);\n return mapStringValues(\n inputValue(value, context),\n (item) => language !== void 0 || isMultiline(item) ? formatCodeBlock(item, language ?? \"\") : formatInlineCode(item)\n );\n};\nvar code_block = (value, param, context) => {\n const language = cleanScalarParam(param) ?? \"\";\n return mapStringValues(inputValue(value, context), (item) => formatCodeBlock(item, language));\n};\nfunction formatMathBlock(value) {\n if (value === \"\") return value;\n const { leading, content, trailing } = splitBlankLinePadding(value);\n if (content === \"\") return value;\n return `${leading}$$\n${content}\n$$${trailing}`;\n}\nvar math = markdownFilter(\n (value) => isMultiline(value) ? formatMathBlock(value) : wrapInline(value, \"$\")\n);\nvar math_block = markdownFilter(formatMathBlock);\nvar comment = markdownFilter((value) => {\n if (value === \"\") return value;\n if (!isMultiline(value)) return wrapInline(value, \"%%\");\n const { leading, content, trailing } = splitBlankLinePadding(value);\n return content ? `${leading}%%\n${content}\n%%${trailing}` : value;\n});\n\n// src/filters/calc.ts\nvar validateCalcParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires an operation (e.g., calc:\"+10\", calc:\"*2\")' };\n }\n const operation = (cleanScalarParam(param) ?? \"\").trim();\n if (!operation) {\n return { valid: false, error: \"operation cannot be empty\" };\n }\n const validOperators = [\"+\", \"-\", \"*\", \"/\", \"^\", \"**\"];\n const operator = operation.slice(0, 2) === \"**\" ? \"**\" : operation.charAt(0);\n if (!validOperators.includes(operator)) {\n return { valid: false, error: `invalid operator \"${operator}\". Use +, -, *, /, ^ or **` };\n }\n const valueStr = operation.slice(operator === \"**\" ? 2 : 1);\n if (!valueStr || isNaN(Number(valueStr))) {\n return { valid: false, error: 'requires a number after the operator (e.g., \"+10\")' };\n }\n return { valid: true };\n};\nvar calc = (str, param, context) => {\n const hasRawValue = Boolean(context && Object.prototype.hasOwnProperty.call(context, \"rawValue\"));\n const originalValue = hasRawValue ? context?.rawValue : str;\n if (!param) {\n return originalValue;\n }\n if (hasRawValue && (originalValue === null || originalValue === void 0)) {\n return originalValue;\n }\n try {\n const num = finiteNumber(str);\n if (num === void 0) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a number`, \"INVALID_FILTER_INPUT\");\n return originalValue;\n }\n const operation = (cleanScalarParam(param) ?? \"\").trim();\n const operator = operation.slice(0, 2) === \"**\" ? \"**\" : operation.charAt(0);\n const value = Number(operation.slice(operator === \"**\" ? 2 : 1));\n if (isNaN(value)) {\n return originalValue;\n }\n let result;\n switch (operator) {\n case \"+\":\n result = num + value;\n break;\n case \"-\":\n result = num - value;\n break;\n case \"*\":\n result = num * value;\n break;\n case \"/\":\n result = num / value;\n break;\n case \"**\":\n case \"^\":\n result = Math.pow(num, value);\n break;\n default:\n return originalValue;\n }\n if (!Number.isFinite(result)) {\n reportFilterWarning(context, `Calculation produced a non-finite result for \"${str}\"`, \"INVALID_FILTER_INPUT\");\n return originalValue;\n }\n return Number(result.toFixed(10));\n } catch (error) {\n reportFilterWarning(context, `Could not calculate value: ${errorMessage(error)}`);\n return originalValue;\n }\n};\n\n// src/filters/callout.ts\nvar callout = (str, param) => {\n let type = \"info\";\n let title2 = \"\";\n let foldState = null;\n if (param) {\n const params = splitParams(unwrapParamList(param)).map(unquoteParamToken);\n if (params.length > 0) type = params[0] || type;\n if (params.length > 1) title2 = params[1] || title2;\n if (params.length > 2) {\n if (params[2].toLowerCase() === \"true\") foldState = \"-\";\n else if (params[2].toLowerCase() === \"false\") foldState = \"+\";\n }\n }\n let calloutHeader = `> [!${type}]`;\n if (foldState) calloutHeader += foldState;\n if (title2) calloutHeader += ` ${title2}`;\n return `${calloutHeader}\n${str.split(\"\\n\").map((line) => `> ${line}`).join(\"\\n\")}`;\n};\n\n// src/filters/camel.ts\nvar camel = (str) => str.replace(\n /(?:^\\w|[A-Z]|\\b\\w)/g,\n (letter, index) => index === 0 ? letter.toLowerCase() : letter.toUpperCase()\n).replace(/[\\s_-]+/g, \"\");\n\n// src/filters/capitalize.ts\nvar capitalize = (input) => {\n const capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n try {\n const parseAndCapitalize = (value) => {\n if (typeof value === \"string\") {\n return capitalizeString(value);\n } else if (Array.isArray(value)) {\n return value.map(parseAndCapitalize);\n } else if (typeof value === \"object\" && value !== null) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[capitalizeString(key)] = parseAndCapitalize(val);\n }\n return result;\n }\n return value;\n };\n const parsed = JSON.parse(input);\n const capitalized = parseAndCapitalize(parsed);\n return JSON.stringify(capitalized);\n } catch (error) {\n return capitalizeString(input);\n }\n};\n\n// src/filters/compact.ts\nfunction isEmpty(value) {\n return value === null || value === void 0 || typeof value === \"string\" && value.trim() === \"\";\n}\nvar compact = (value, _param, context) => {\n const input = inputValue(value, context);\n if (Array.isArray(input)) return input.filter((item) => !isEmpty(item));\n if (isPlainObject(input)) {\n return Object.fromEntries(Object.entries(input).filter(([, item]) => !isEmpty(item)));\n }\n return input;\n};\n\n// src/filters/date.ts\nimport dayjs from \"dayjs\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear.js\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\ndayjs.extend(customParseFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(weekOfYear);\ndayjs.extend(advancedFormat);\nvar date = (str, param, context) => {\n if (str === \"\") {\n return str;\n }\n const inputDate = str === \"now\" ? /* @__PURE__ */ new Date() : str;\n if (!param) {\n return dayjs(inputDate).format(\"YYYY-MM-DD\");\n }\n const params = splitParams(unwrapParamList(param)).map(unquoteParamToken);\n const [outputFormat, inputFormat] = params;\n let date2;\n if (inputFormat) {\n date2 = dayjs(inputDate, inputFormat, true);\n } else {\n date2 = dayjs(inputDate);\n }\n if (!date2.isValid()) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a date`, \"INVALID_FILTER_INPUT\");\n return str;\n }\n return date2.format(outputFormat);\n};\n\n// src/filters/date_modify.ts\nimport dayjs2 from \"dayjs\";\nimport isoWeek2 from \"dayjs/plugin/isoWeek.js\";\nimport weekOfYear2 from \"dayjs/plugin/weekOfYear.js\";\nimport customParseFormat2 from \"dayjs/plugin/customParseFormat.js\";\nimport advancedFormat2 from \"dayjs/plugin/advancedFormat.js\";\ndayjs2.extend(customParseFormat2);\ndayjs2.extend(isoWeek2);\ndayjs2.extend(weekOfYear2);\ndayjs2.extend(advancedFormat2);\nvar validUnits = [\"year\", \"years\", \"month\", \"months\", \"week\", \"weeks\", \"day\", \"days\", \"hour\", \"hours\", \"minute\", \"minutes\", \"second\", \"seconds\"];\nvar validateDateModifyParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a modifier (e.g., date_modify:\"+1 day\", \"-2 weeks\")' };\n }\n const cleanParam = (cleanScalarParam(param) ?? \"\").trim();\n const regex = /^([+-])\\s*(\\d+)\\s*(\\w+)s?$/;\n const match = cleanParam.match(regex);\n if (!match) {\n return { valid: false, error: 'invalid format. Use \"+1 day\", \"-2 weeks\", etc.' };\n }\n const [, , , unit] = match;\n const normalizedUnit = unit.toLowerCase().replace(/s$/, \"\");\n if (!validUnits.some((u) => u.replace(/s$/, \"\") === normalizedUnit)) {\n return { valid: false, error: `invalid unit \"${unit}\". Use year, month, week, day, hour, minute, or second` };\n }\n return { valid: true };\n};\nvar date_modify = (str, param, context) => {\n if (!param) {\n return str;\n }\n if (str === \"\") {\n return str;\n }\n let date2 = dayjs2(str);\n if (!date2.isValid()) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a date`, \"INVALID_FILTER_INPUT\");\n return str;\n }\n param = (cleanScalarParam(param) ?? \"\").trim();\n const regex = /^([+-])\\s*(\\d+)\\s*(\\w+)s?$/;\n const match = param.match(regex);\n if (!match) {\n return str;\n }\n const [, operation, amount, unit] = match;\n const numericAmount = parseInt(amount, 10);\n if (operation === \"+\") {\n date2 = date2.add(numericAmount, unit);\n } else {\n date2 = date2.subtract(numericAmount, unit);\n }\n return date2.format(\"YYYY-MM-DD\");\n};\n\n// src/filters/decode_uri.ts\nfunction decodeValue(value) {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\nvar decode_uri = (value, _param, context) => mapStringValues(inputValue(value, context), decodeValue);\n\n// src/filters/encode_uri.ts\nfunction encodeValue(value) {\n try {\n return encodeURIComponent(value);\n } catch {\n return value;\n }\n}\nvar encode_uri = (value, _param, context) => mapStringValues(inputValue(value, context), encodeValue);\n\n// src/filters/first.ts\nvar first = (str, _param, context) => {\n const value = arrayInputValue(str, context);\n if (!Array.isArray(value)) return value;\n return value.length > 0 ? value[0] : null;\n};\n\n// src/filters/footnote.ts\nvar footnote = (str) => {\n if (str === \"\") {\n return str;\n }\n try {\n const data = JSON.parse(str);\n if (Array.isArray(data)) {\n return data.map((item, index) => `[^${index + 1}]: ${item}`).join(\"\\n\\n\");\n } else if (typeof data === \"object\" && data !== null) {\n return Object.entries(data).map(([key, value]) => {\n const footnoteId = key.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n return `[^${footnoteId}]: ${value}`;\n }).join(\"\\n\\n\");\n }\n } catch {\n }\n return str;\n};\n\n// src/filters/strip_md.ts\nvar strip_md = (str) => {\n str = str.replace(/!\\[([^\\]]*)\\]\\([^\\)]+\\)/g, \"\");\n str = str.replace(/!\\[\\[([^\\]]+)\\]\\]/g, \"\");\n str = str.replace(/\\[([^\\]]+)\\]\\([^\\)]+\\)/g, \"$1\");\n str = str.replace(/https?:\\/\\/\\S+/g, \"\");\n str = str.replace(/(\\*\\*|__)(.*?)\\1/g, \"$2\");\n str = str.replace(/(\\*|_)(.*?)\\1/g, \"$2\");\n str = str.replace(/==(.*?)==/g, \"$1\");\n str = str.replace(/^#+\\s+/gm, \"\");\n str = str.replace(/`([^`]+)`/g, \"$1\");\n str = str.replace(/```[\\s\\S]*?```/g, \"\");\n str = str.replace(/~~(.*?)~~/g, \"$1\");\n str = str.replace(/^[-*+] (\\[[x ]\\] )?/gm, \"\");\n str = str.replace(/^([-*_]){3,}\\s*$/gm, \"\");\n str = str.replace(/^>\\s+/gm, \"\");\n str = str.replace(/\\|.*\\|/g, \"\");\n str = str.replace(/([~^])(\\w+)\\1/g, \"$2\");\n str = str.replace(/:[a-z_]+:/g, \"\");\n str = str.replace(/<[^>]+>/g, \"\");\n str = str.replace(/\\[\\s*\\]/g, \"\");\n str = str.replace(/\\[\\^[^\\]]+\\]/g, \"\");\n str = str.replace(/^\\*\\[[^\\]]+\\]:.+$/gm, \"\");\n str = str.replace(/\\[\\[([^\\]|]+)\\|?([^\\]]*)\\]\\]/g, (match, p1, p2) => p2 || p1);\n str = str.replace(/\\n{3,}/g, \"\\n\\n\");\n str = str.trim();\n return str;\n};\n\n// src/filters/fragment_link.ts\nvar fragment_link = (str, param) => {\n if (!param || !str.trim()) {\n return [str];\n }\n param = param.replace(/^(['\"])([\\s\\S]*)\\1$/, \"$2\");\n const match = param.match(/^(.*?):?((https?:\\/\\/|file:\\/\\/).*$)/);\n const linktext = String(\n match?.[1]?.trim().replace(/(['\"])/g, \"\") || \"link\"\n );\n const sourceUrl = String(match?.[2] || param);\n const extractTextFragmentParts = (selectedText) => {\n const text = strip_md(selectedText);\n const words = text.split(/\\s+/).filter(Boolean);\n if (words.length > 10) {\n const start = words.slice(0, 5).join(\" \");\n const end = words.slice(-5).join(\" \");\n return { start, end };\n } else {\n const start = words.join(\" \");\n return { start };\n }\n };\n const createTextFragmentUrl = (selectedText) => {\n const { start, end } = extractTextFragmentParts(selectedText);\n const encodedEnd = end ? \",\" + encodeURIComponent(end) : \"\";\n const textFragment = encodeURIComponent(start) + encodedEnd;\n return \"#:~:text=\" + textFragment;\n };\n try {\n const data = JSON.parse(str);\n if (Array.isArray(data)) {\n return data.map((item) => {\n if (typeof item === \"object\" && item !== null && \"text\" in item) {\n return {\n ...item,\n text: `${item.text} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n item.text\n )})`\n };\n } else {\n return `${item} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n String(item)\n )})`;\n }\n });\n } else if (typeof data === \"object\" && data !== null) {\n return Object.entries(data).map(\n ([key, value]) => `${value} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n String(value)\n )})`\n );\n } else if (typeof data === \"string\") {\n return [\n `${data} [${linktext}](${sourceUrl}${createTextFragmentUrl(\n data\n )})`\n ];\n }\n } catch {\n }\n return [str];\n};\n\n// src/string-utils.ts\nfunction escapeMarkdown(value) {\n return value.replaceAll(\"&\", \"&amp;\").replace(/[\\\\`*_[\\]<>]/g, \"\\\\$&\").replace(/\\r\\n?|\\n/g, \" \");\n}\nfunction markdownDestination(value) {\n const normalized = value.replace(/[\\x00-\\x20\\x7f]/g, \"\");\n if (/^(?:javascript|vbscript|data):/i.test(normalized)) return \"\";\n return value.replace(/&(?=(?:#\\d+|#x[\\da-f]+|[a-z][a-z\\d]+);)/gi, \"%26\").replace(\n /[\\x00-\\x20\\x7f()\\[\\]<>\\\\\"`]/g,\n (character) => `%${character.charCodeAt(0).toString(16).toUpperCase().padStart(2, \"0\")}`\n );\n}\n\n// src/filters/image.ts\nvar image = (str, param) => {\n if (!str.trim()) {\n return str;\n }\n let altText = \"\";\n if (param) {\n altText = unquoteScalarParam(param) ?? altText;\n }\n altText = escapeMarkdown(altText);\n try {\n const data = JSON.parse(str);\n const processObject = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n if (typeof value === \"object\" && value !== null) {\n return processObject(value);\n }\n return `![${escapeMarkdown(String(value))}](${markdownDestination(key)})`;\n }).flat();\n };\n if (Array.isArray(data)) {\n return data.map((item) => {\n if (typeof item === \"object\" && item !== null) {\n return processObject(item);\n }\n return item ? `![${altText}](${markdownDestination(String(item))})` : \"\";\n }).flat();\n } else if (typeof data === \"object\" && data !== null) {\n return processObject(data);\n }\n } catch (error) {\n return `![${altText}](${markdownDestination(str)})`;\n }\n return str;\n};\n\n// src/filters/indent.ts\nvar MAX_INDENT_WIDTH = 1e3;\nvar validateIndentParams = (param) => {\n if (!param) return { valid: true };\n const width = cleanScalarParam(param) ?? \"\";\n const numericWidth = Number(width);\n return /^\\d+$/.test(width) && Number.isSafeInteger(numericWidth) && numericWidth <= MAX_INDENT_WIDTH ? { valid: true } : { valid: false, error: `requires an integer from 0 to ${MAX_INDENT_WIDTH} spaces (e.g., indent:2)` };\n};\nvar indent = (value, param) => {\n if (!validateIndentParams(param).valid) return value;\n const width = param ? Number(cleanScalarParam(param)) : 2;\n const prefix = \" \".repeat(width);\n return value.replace(/[^\\r\\n]+/g, (line) => prefix + line);\n};\n\n// src/filters/join.ts\nvar join = (str, param) => {\n if (!str || str === \"undefined\" || str === \"null\") {\n return \"\";\n }\n let array;\n try {\n array = JSON.parse(str);\n } catch {\n return str;\n }\n if (!Array.isArray(array)) {\n return str;\n }\n let separator = \",\";\n if (param) {\n separator = unquoteScalarParam(param) ?? separator;\n separator = separator.replace(/\\\\n/g, \"\\n\");\n }\n return array.join(separator);\n};\n\n// src/filters/kebab.ts\nvar kebab = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n\n// src/filters/last.ts\nvar last = (str, _param, context) => {\n const value = arrayInputValue(str, context);\n if (!Array.isArray(value)) return value;\n return value.length > 0 ? value[value.length - 1] : null;\n};\n\n// src/filters/list.ts\nvar validListTypes = [\"numbered\", \"task\", \"numbered-task\"];\nvar validateListParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n const option = cleanScalarParam(param);\n if (!option || !validListTypes.includes(option)) {\n return {\n valid: false,\n error: `invalid list type \"${option ?? \"\"}\". Use \"numbered\", \"task\", or \"numbered-task\"`\n };\n }\n return { valid: true };\n};\nvar list = (input, param) => {\n const option = cleanScalarParam(param);\n if (input === \"\") {\n return input;\n }\n const processListItem = (item, type, depth = 0) => {\n const indent2 = \"\t\".repeat(depth);\n let prefix;\n switch (type) {\n case \"numbered\":\n prefix = \"1. \";\n break;\n case \"task\":\n prefix = \"- [ ] \";\n break;\n case \"numbered-task\":\n prefix = \"1. [ ] \";\n break;\n default:\n prefix = \"- \";\n }\n if (Array.isArray(item)) {\n return processArray(item, type, depth + 1);\n }\n return `${indent2}${prefix}${item}`;\n };\n const processArray = (arr, type, depth = 0) => {\n return arr.map((item, index) => {\n let itemType = type;\n if (type === \"numbered\" || type === \"numbered-task\") {\n const number = index + 1;\n return processListItem(item, itemType, depth).replace(/^\\d+/, number.toString());\n }\n return processListItem(item, itemType, depth);\n }).join(\"\\n\");\n };\n const determineListType = (param2) => {\n switch (param2) {\n case \"numbered\":\n return \"numbered\";\n case \"task\":\n return \"task\";\n case \"numbered-task\":\n return \"numbered-task\";\n default:\n return \"bullet\";\n }\n };\n try {\n const parsedInput = typeof input === \"string\" ? JSON.parse(input) : input;\n if (Array.isArray(parsedInput)) {\n const listType = determineListType(option);\n return processArray(parsedInput, listType);\n }\n return processArray([parsedInput], determineListType(option));\n } catch {\n return processListItem(input, determineListType(option));\n }\n};\n\n// src/filters/link.ts\nvar link = (str, param) => {\n if (!str.trim()) {\n return str;\n }\n let linkText = \"link\";\n if (param) {\n linkText = unquoteScalarParam(param) ?? linkText;\n }\n linkText = escapeMarkdown(linkText);\n try {\n const data = JSON.parse(str);\n const processObject = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n if (typeof value === \"object\" && value !== null) {\n return processObject(value);\n }\n return `[${escapeMarkdown(String(value))}](${markdownDestination(key)})`;\n }).flat();\n };\n if (Array.isArray(data)) {\n const result = data.map((item) => {\n if (typeof item === \"object\" && item !== null) {\n return processObject(item);\n }\n return item ? `[${linkText}](${markdownDestination(String(item))})` : \"\";\n });\n return result.join(\"\\n\");\n } else if (typeof data === \"object\" && data !== null) {\n return processObject(data).join(\"\\n\");\n }\n } catch (error) {\n return `[${linkText}](${markdownDestination(str)})`;\n }\n return str;\n};\n\n// src/filters/length.ts\nvar length = (str, _param, context) => {\n const value = inputValue(str, context, true);\n if (Array.isArray(value)) return value.length;\n if (isPlainObject(value)) return Object.keys(value).length;\n return str.length;\n};\n\n// src/filters/lower.ts\nvar lower = (input) => {\n const toLowerCase = (str) => {\n return str.toLocaleLowerCase();\n };\n if (Array.isArray(input)) {\n return input.map(toLowerCase);\n } else {\n return toLowerCase(input);\n }\n};\n\n// src/filters/map.ts\nvar validateMapParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a property path or arrow function (e.g., map:\"name\")' };\n }\n const match = param.match(/^\\s*(\\w+)\\s*=>\\s*(.+)$/);\n if (match) return { valid: true };\n const parts = splitParams(unwrapParamList(param));\n if (parts.length !== 1 || unquoteParamToken(parts[0]) === \"\") {\n return { valid: false, error: 'requires a property path or arrow function (e.g., map:\"name\")' };\n }\n if (unquoteParamToken(parts[0]).split(\".\").some((segment) => segment === \"\")) {\n return { valid: false, error: \"property path cannot contain empty segments\" };\n }\n return { valid: true };\n};\nfunction mapWithArrow(str, param) {\n let array;\n try {\n array = JSON.parse(str);\n } catch {\n array = [str];\n }\n if (Array.isArray(array) && param) {\n const match = param.match(/^\\s*(\\w+)\\s*=>\\s*(.+)$/);\n if (!match) {\n return str;\n }\n const [, argName, expression] = match;\n const mappedArray = array.map((item) => {\n let expr = expression.trim();\n if (expr.startsWith(\"(\") && expr.endsWith(\")\")) {\n expr = expr.slice(1, -1).trim();\n }\n if (expr.startsWith(\"{\") && expr.endsWith(\"}\") || expr.startsWith('\"') && expr.endsWith('\"') || expr.startsWith(\"'\") && expr.endsWith(\"'\")) {\n const mappedItem = /* @__PURE__ */ Object.create(null);\n if (expr.startsWith(\"{\")) {\n const assignments = splitParams(expr.slice(1, -1));\n assignments.forEach((assignment) => {\n const [key, value] = splitParamPair(assignment);\n if (value === void 0) return;\n const cleanKey = key.replace(/^['\"](.+)['\"]$/, \"$1\");\n const cleanValue = evaluateExpression2(value, item, argName);\n mappedItem[cleanKey] = cleanValue;\n });\n } else {\n const stringLiteral = expr.slice(1, -1);\n return stringLiteral.replace(new RegExp(`\\\\$\\\\{${argName}\\\\}`, \"g\"), item);\n }\n return mappedItem;\n } else {\n return evaluateExpression2(expression, item, argName);\n }\n });\n return JSON.stringify(mappedArray);\n }\n return str;\n}\nfunction propertyPath(param, context) {\n const argument = context?.rawArguments?.[0];\n if (argument !== void 0) return typeof argument === \"string\" ? argument : void 0;\n return unquoteParamToken(unwrapParamList(param));\n}\nvar map = (str, param, context) => {\n if (!param) return str;\n if (/^\\s*\\w+\\s*=>\\s*(.+)$/.test(param)) return mapWithArrow(str, param);\n const path = propertyPath(param, context);\n if (!path) return collectionInputValue(str, context);\n const input = collectionInputValue(str, context);\n if (!Array.isArray(input)) return input;\n return input.map((item) => {\n const property = ownPropertyAtPath(item, path);\n return property.exists ? property.value : null;\n });\n};\nfunction evaluateExpression2(expression, item, argName) {\n if (typeof item === \"string\") {\n return item;\n }\n const result = expression.replace(new RegExp(`${argName}\\\\.([\\\\w.\\\\[\\\\]]+)`, \"g\"), (_, prop) => {\n const value = getNestedProperty(item, prop);\n return JSON.stringify(value);\n });\n try {\n return JSON.parse(result);\n } catch {\n return result.replace(/^[\"'](.+)[\"']$/, \"$1\");\n }\n}\nfunction getNestedProperty(obj, path) {\n return path.split(/[.\\[\\]]/).filter(Boolean).reduce((current, key) => {\n return ownProperty(current, key).value;\n }, obj);\n}\n\n// src/filters/merge.ts\nvar merge = (str, param, context) => {\n if (!str || str === \"undefined\" || str === \"null\") {\n return \"[]\";\n }\n let array = context?.rawValue;\n if (!Array.isArray(array)) {\n try {\n array = JSON.parse(str);\n } catch {\n array = [str];\n }\n }\n const values = Array.isArray(array) ? array : [str];\n if (!param) {\n return JSON.stringify(values);\n }\n try {\n const singleArgument = context?.rawArguments?.length === 1 ? context.rawArguments[0] : void 0;\n const list2 = typeof singleArgument === \"string\" && singleArgument.includes(\",\") ? singleArgument : param;\n const processedItems = splitParamList(list2).map(unquoteParamToken);\n return JSON.stringify([...values, ...processedItems]);\n } catch (error) {\n reportFilterWarning(context, `Could not merge values: ${errorMessage(error)}`);\n return JSON.stringify(values);\n }\n};\n\n// src/filters/nth.ts\nvar validateNthParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n if (param.includes(\":\")) {\n const [positions, basis] = param.split(\":\").map((p) => p.trim());\n const nthValues = positions.split(\",\").map((n) => parseInt(n.trim(), 10));\n const basisSize = parseInt(basis, 10);\n if (nthValues.some((n) => isNaN(n) || n < 1)) {\n return { valid: false, error: \"positions must be positive numbers (e.g., nth:1,2,3:7)\" };\n }\n if (isNaN(basisSize) || basisSize < 1) {\n return { valid: false, error: \"basis must be a positive number (e.g., nth:1,2,3:7)\" };\n }\n return { valid: true };\n }\n const expr = param.trim();\n if (/^\\d+$/.test(expr)) {\n return { valid: true };\n }\n if (/^\\d+n$/.test(expr)) {\n return { valid: true };\n }\n if (/^n\\+\\d+$/.test(expr)) {\n return { valid: true };\n }\n return { valid: false, error: \"invalid syntax. Use number (2), multiplier (5n), offset (n+7), or basis (1,2:5)\" };\n};\nvar nth = (str, params, context) => {\n const data = arrayInputValue(str, context);\n if (!Array.isArray(data)) {\n if (typeof data === \"string\" && data && data !== \"undefined\" && data !== \"null\") {\n try {\n JSON.parse(str);\n } catch {\n reportFilterWarning(context, \"Could not parse value as a JSON array\", \"INVALID_FILTER_INPUT\");\n }\n }\n return data;\n }\n if (!params) {\n return data;\n }\n if (params.includes(\":\")) {\n const [positions, basis] = params.split(\":\").map((p) => p.trim());\n const nthValues = positions.split(\",\").map((n) => parseInt(n.trim(), 10)).filter((n) => !isNaN(n) && n > 0);\n const basisSize = parseInt(basis, 10);\n return data.filter((_, index) => {\n const positionInGroup = index % basisSize + 1;\n return nthValues.includes(positionInGroup);\n });\n }\n const nthExpression = params.trim();\n if (/^\\d+$/.test(nthExpression)) {\n const position = parseInt(nthExpression, 10);\n return data.filter((_, index) => index + 1 === position);\n }\n if (/^\\d+n$/.test(nthExpression)) {\n const multiplier = parseInt(nthExpression, 10);\n return data.filter((_, index) => {\n const position = index + 1;\n return position % multiplier === 0;\n });\n }\n const nPlusBMatch = nthExpression.match(/^n\\+(\\d+)$/);\n if (nPlusBMatch) {\n const offset = parseInt(nPlusBMatch[1], 10);\n return data.filter((_, index) => {\n const position = index + 1;\n return position >= offset;\n });\n }\n return data;\n};\n\n// src/filters/number_format.ts\nvar number_format = (input, param, context) => {\n const formatNumber = (num, decimals, decPoint, thousandsSep) => {\n const parts = num.toFixed(decimals).split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSep);\n return parts.join(decPoint);\n };\n const processValue = (value, decimals, decPoint, thousandsSep) => {\n if (typeof value === \"number\" || typeof value === \"string\" && !isNaN(parseFloat(value))) {\n const num = typeof value === \"string\" ? parseFloat(value) : value;\n return formatNumber(num, decimals, decPoint, thousandsSep);\n } else if (Array.isArray(value)) {\n return value.map((item) => processValue(item, decimals, decPoint, thousandsSep));\n } else if (typeof value === \"object\" && value !== null) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = processValue(val, decimals, decPoint, thousandsSep);\n }\n return result;\n }\n return value;\n };\n const unescapeString = (str) => {\n return str.replace(/\\\\(.)/g, \"$1\");\n };\n try {\n let decimals = 0;\n let decPoint = \".\";\n let thousandsSep = \",\";\n if (param) {\n const params = splitParams(unwrapParamList(param)).map(unquoteParamToken);\n if (params.length >= 1) decimals = parseInt(params[0], 10);\n if (params.length >= 2) decPoint = unescapeString(params[1]);\n if (params.length >= 3) thousandsSep = unescapeString(params[2]);\n }\n if (isNaN(decimals)) decimals = 0;\n let parsedInput;\n try {\n parsedInput = JSON.parse(input);\n } catch {\n parsedInput = input;\n }\n const result = processValue(parsedInput, decimals, decPoint, thousandsSep);\n return typeof result === \"string\" ? result : JSON.stringify(result);\n } catch (error) {\n reportFilterWarning(context, `Could not format number: ${errorMessage(error)}`);\n return input;\n }\n};\n\n// src/filters/object.ts\nvar validObjectParams = [\"array\", \"keys\", \"values\"];\nvar validateObjectParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a parameter: \"array\", \"keys\", or \"values\"' };\n }\n const option = cleanScalarParam(param);\n if (!option || !validObjectParams.includes(option)) {\n return {\n valid: false,\n error: `invalid parameter \"${option ?? \"\"}\". Use \"array\", \"keys\", or \"values\"`\n };\n }\n return { valid: true };\n};\nvar object = (str, param, context) => {\n const option = cleanScalarParam(param);\n try {\n const obj = JSON.parse(str);\n if (typeof obj === \"object\" && obj !== null) {\n switch (option) {\n case \"array\":\n return JSON.stringify(Object.entries(obj));\n case \"keys\":\n return JSON.stringify(Object.keys(obj));\n case \"values\":\n return JSON.stringify(Object.values(obj));\n default:\n return str;\n }\n }\n } catch {\n reportFilterWarning(context, \"Could not parse value as JSON\", \"INVALID_FILTER_INPUT\");\n }\n return str;\n};\n\n// src/filters/pascal.ts\nvar pascal = (str) => str.replace(/[\\s_-]+(.)/g, (_, c) => c.toUpperCase()).replace(/^(.)/, (c) => c.toUpperCase());\n\n// src/filters/parse_json.ts\nvar parse_json = (value, _param, context) => {\n if (context && Object.prototype.hasOwnProperty.call(context, \"rawValue\") && typeof context.rawValue !== \"string\") {\n return context.rawValue;\n }\n try {\n return JSON.parse(value);\n } catch {\n reportFilterWarning(context, \"Could not parse value as JSON\", \"INVALID_FILTER_INPUT\");\n return value;\n }\n};\n\n// src/filters/reverse.ts\nvar reverse = (str) => {\n if (!str || str === \"undefined\" || str === \"null\") {\n return \"\";\n }\n try {\n const value = JSON.parse(str);\n if (Array.isArray(value)) {\n return JSON.stringify(value.reverse());\n } else if (typeof value === \"object\" && value !== null) {\n const entries = Object.entries(value);\n const reversedEntries = entries.reverse();\n const reversedObject = Object.fromEntries(reversedEntries);\n return JSON.stringify(reversedObject);\n }\n } catch (error) {\n return str.split(\"\").reverse().join(\"\");\n }\n return str;\n};\n\n// src/filters/remove_attr.ts\nvar remove_attr = (html, removeAttributes = \"\") => {\n if (!removeAttributes) {\n return html;\n }\n const removeAttributesList = normalizeParamList(removeAttributes).map((attr) => attr.toLowerCase()).filter(Boolean);\n if (removeAttributesList.length === 0) {\n return html;\n }\n return html.replace(/<(\\w+)\\s+([^>]*?)>/g, (match, tag, attributesString) => {\n const attributeOrSlashRegex = /([a-zA-Z0-9_:-]+(?:\\s*=\\s*(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|[^'\"\\s>]+))?)|(\\s*\\/?\\s*$)/g;\n const attributeNameExtractorRegex = /^([a-zA-Z0-9_:-]+)/;\n const elementsToKeep = [];\n const allMatches = Array.from(attributesString.matchAll(attributeOrSlashRegex));\n for (const currentMatch of allMatches) {\n const fullMatchedText = currentMatch[0];\n const attributePart = currentMatch[1];\n const slashPart = currentMatch[2];\n if (attributePart) {\n const nameMatch = attributePart.match(attributeNameExtractorRegex);\n if (nameMatch) {\n const attrName = nameMatch[0];\n const shouldRemove = removeAttributesList.includes(attrName.toLowerCase());\n if (!shouldRemove) {\n elementsToKeep.push(attributePart);\n }\n } else {\n elementsToKeep.push(attributePart);\n }\n } else if (slashPart && fullMatchedText && fullMatchedText.includes(\"/\")) {\n elementsToKeep.push(fullMatchedText.trim());\n }\n }\n const cleanedAttributes = elementsToKeep.join(\" \").trim();\n return cleanedAttributes ? `<${tag} ${cleanedAttributes}>` : `<${tag}>`;\n });\n};\n\n// src/filters/remove_tags.ts\nvar remove_tags = (html, removeTags = \"\") => {\n if (!removeTags) {\n return html;\n }\n const removeTagsList = normalizeParamList(removeTags).filter(Boolean);\n if (removeTagsList.length === 0) {\n return html;\n }\n const escapedTags = removeTagsList.map((tag) => tag.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(`<\\\\/?(?:${escapedTags})\\\\b[^>]*>`, \"gi\");\n return html.replace(regex, \"\");\n};\n\n// src/filters/replace.ts\nvar validateReplaceParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires search and replacement (e.g., replace:\"old\":\"new\")' };\n }\n const replacements = splitParams(unwrapParamList(param));\n const allValid = replacements.length > 0 && replacements.every((replacement) => {\n const pair = splitReplacementPair(replacement);\n if (!pair) return false;\n const [search, replacementValue] = pair;\n const quotedSearch = /^(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*')$/.test(search.trim());\n const regexSearch = /^\\/(?:\\\\.|[^/\\\\])+\\/[gimsuy]*$/.test(search.trim());\n const quotedReplacement = replacementValue.trim() === \"\" || /^(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*')$/.test(replacementValue.trim());\n return (quotedSearch || regexSearch) && quotedReplacement;\n });\n const legacyValid = /[\"'][^\"']*[\"']\\s*:\\s*[\"'][^\"']*[\"']/.test(unwrapParamList(param)) || /[\"'][^\"']*[\"']\\s*:/.test(unwrapParamList(param)) || /\\/[^/]+\\/[gimsuy]*\\s*:/.test(unwrapParamList(param));\n if (!allValid && !legacyValid) {\n return {\n valid: false,\n error: 'values must be quoted (e.g., replace:\"old\":\"new\" or replace:\"text\":\"\")'\n };\n }\n return { valid: true };\n};\nfunction splitReplacementPair(value) {\n let quote = \"\";\n let inRegex = false;\n let escaped = false;\n for (let index = 0; index < value.length; index++) {\n const character = value[index];\n if (escaped) {\n escaped = false;\n } else if (character === \"\\\\\") {\n escaped = true;\n } else if (quote) {\n if (character === quote) quote = \"\";\n } else if (inRegex) {\n if (character === \"/\") inRegex = false;\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \"/\" && value.slice(0, index).trim() === \"\") {\n inRegex = true;\n } else if (character === \":\") {\n return [value.slice(0, index), value.slice(index + 1)];\n }\n }\n return null;\n}\nvar replace = (str, param, context) => {\n if (!param) {\n return str;\n }\n const replacements = splitParams(unwrapParamList(param));\n return replacements.reduce((acc, replacement) => {\n const legacyPair = replacement.split(/(?<=[^\\\\][\"']):(?=[\"'])/);\n const pair = splitReplacementPair(replacement) ?? (legacyPair.length >= 2 ? [legacyPair[0], legacyPair.slice(1).join(\":\")] : null);\n if (!pair) return acc;\n let [search, replace2] = pair.map(unquoteParamToken);\n replace2 = replace2 || \"\";\n const regexInfo = parseRegexPattern(search);\n if (regexInfo) {\n if (context?.allowRegex === false) {\n throw new TemplateRuntimeError(\"Regex replacements are disabled\", \"INVALID_FILTER_ARGUMENTS\");\n }\n try {\n replace2 = processEscapedCharacters(replace2);\n const regex = new RegExp(regexInfo.pattern, regexInfo.flags);\n return boundedReplace(acc, regex, replace2, context);\n } catch (error) {\n if (error instanceof TemplateRuntimeError) throw error;\n reportFilterWarning(\n context,\n `Invalid regular expression: ${errorMessage(error)}`,\n \"INVALID_FILTER_INPUT\"\n );\n return acc;\n }\n }\n search = processEscapedCharacters(search);\n replace2 = processEscapedCharacters(replace2);\n if (search === \"|\" || search === \":\") {\n const parts = acc.split(search);\n context?.checkLength?.(acc.length + (parts.length - 1) * (replace2.length - search.length));\n return parts.join(replace2);\n }\n if (search.includes(\"\\n\") || search.includes(\"\\r\") || search.includes(\"\t\")) {\n const parts = acc.split(search);\n context?.checkLength?.(acc.length + (parts.length - 1) * (replace2.length - search.length));\n return parts.join(replace2);\n }\n const searchRegex = new RegExp(search.replace(/([.*+?^${}()|[\\]\\\\])/g, \"\\\\$1\"), \"g\");\n return boundedReplace(acc, searchRegex, replace2, context);\n }, str);\n};\nfunction processEscapedCharacters(str) {\n return str.replace(/\\\\([nrt]|[^nrt])/g, (match, char) => {\n switch (char) {\n case \"n\":\n return \"\\n\";\n case \"r\":\n return \"\\r\";\n case \"t\":\n return \"\t\";\n default:\n return char;\n }\n });\n}\nfunction boundedReplace(input, regex, replacement, context) {\n if (!context?.checkLength) return input.replace(regex, replacement);\n let length2 = input.length;\n return input.replace(regex, (match, ...args) => {\n const named = typeof args.at(-1) === \"object\" ? args.pop() : void 0;\n args.pop();\n const offset = args.pop();\n const captures = args;\n let expandedLength = replacement.length;\n const expanded = replacement.replace(/\\$(\\$|&|`|'|\\d{1,2}|<[^>]*>)/g, (token, key) => {\n const substitute = () => {\n if (key === \"$\") return \"$\";\n if (key === \"&\") return match;\n if (key === \"`\") return input.slice(0, offset);\n if (key === \"'\") return input.slice(offset + match.length);\n if (key.startsWith(\"<\")) return named ? named[key.slice(1, -1)] ?? \"\" : token;\n const index = Number(key);\n if (index > 0 && index <= captures.length) return captures[index - 1] ?? \"\";\n const first2 = Number(key[0]);\n if (key.length === 2 && first2 > 0 && first2 <= captures.length) return (captures[first2 - 1] ?? \"\") + key[1];\n return token;\n };\n const value = substitute();\n expandedLength += value.length - token.length;\n context.checkLength(length2 - match.length + expandedLength);\n return value;\n });\n length2 += expanded.length - match.length;\n context.checkLength(length2);\n return expanded;\n });\n}\n\n// src/filters/replace_tags.ts\nvar cleanTag = (value) => unquoteParamToken(value).replace(/\\\\(.)/g, \"$1\");\nvar replace_tags = (html, params = \"\") => {\n const tokens = splitParamList(params).filter(Boolean);\n const transformations = [];\n for (const token of tokens) {\n const [rawSource, rawTarget] = splitParamPair(token);\n transformations.push([\n cleanTag(rawSource),\n rawTarget === void 0 ? \"\" : cleanTag(rawTarget)\n ]);\n }\n if (transformations.some(([source, target]) => !/^[a-z][\\w:-]*$/i.test(source) || target !== \"\" && !/^[a-z][\\w:-]*$/i.test(target))) {\n throw new TemplateRuntimeError(\"replace_tags requires tag names\", \"INVALID_FILTER_ARGUMENTS\");\n }\n if (transformations.length === 0) {\n return html;\n }\n let result = html;\n transformations.forEach(([source, target]) => {\n if (!source) {\n return;\n }\n const openingPattern = new RegExp(`<${source}(\\\\s+[^>]*?)?>`, \"g\");\n const closingPattern = new RegExp(`</${source}>`, \"g\");\n result = result.replace(openingPattern, (match, attributes) => {\n return target ? `<${target}${attributes || \"\"}>` : \"\";\n }).replace(closingPattern, target ? `</${target}>` : \"\");\n });\n return result;\n};\n\n// src/filters/round.ts\nvar validateRoundParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n const num = parseInt(cleanScalarParam(param) ?? \"\", 10);\n if (isNaN(num)) {\n return { valid: false, error: \"decimal places must be a number (e.g., round:2)\" };\n }\n if (num < 0) {\n return { valid: false, error: \"decimal places must be non-negative (e.g., round:2)\" };\n }\n return { valid: true };\n};\nvar round = (input, param, context) => {\n const roundNumber = (num, decimalPlaces) => {\n if (decimalPlaces === void 0) {\n const result2 = Math.round(num);\n return Number.isFinite(result2) ? result2 : void 0;\n }\n const factor = Math.pow(10, decimalPlaces);\n const result = Math.round(num * factor) / factor;\n return Number.isFinite(result) ? result : void 0;\n };\n let encounteredNonFinite = false;\n const processCollectionValue = (value, decimalPlaces) => {\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n encounteredNonFinite = true;\n return value;\n }\n const result = roundNumber(value, decimalPlaces);\n if (result === void 0) {\n encounteredNonFinite = true;\n return value;\n }\n return result;\n } else if (typeof value === \"string\") {\n const num = finiteNumber(value);\n if (num === void 0) return value;\n const result = roundNumber(num, decimalPlaces);\n if (result === void 0) {\n encounteredNonFinite = true;\n return value;\n }\n return result;\n } else if (Array.isArray(value)) {\n return value.map((item) => processCollectionValue(item, decimalPlaces));\n } else if (isPlainObject(value)) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[key] = processCollectionValue(val, decimalPlaces);\n }\n return result;\n }\n return value;\n };\n try {\n const cleanParam = cleanScalarParam(param);\n const decimalPlaces = cleanParam ? parseInt(cleanParam, 10) : void 0;\n if (cleanParam !== void 0 && isNaN(Number(cleanParam))) {\n return collectionInputValue(input, context, true);\n }\n const value = collectionInputValue(input, context, true);\n if (value === null || value === void 0) return value;\n if (!Array.isArray(value) && !isPlainObject(value)) {\n const num = finiteNumber(value);\n if (num === void 0) {\n reportFilterWarning(context, `Could not parse \"${input}\" as a number`, \"INVALID_FILTER_INPUT\");\n return value;\n }\n const result2 = roundNumber(num, decimalPlaces);\n if (result2 === void 0) {\n reportFilterWarning(context, `Rounding produced a non-finite result for \"${input}\"`, \"INVALID_FILTER_INPUT\");\n return value;\n }\n return result2;\n }\n const result = processCollectionValue(value, decimalPlaces);\n if (encounteredNonFinite) {\n reportFilterWarning(context, \"Could not round one or more non-finite collection values\", \"INVALID_FILTER_INPUT\");\n }\n return result;\n } catch (error) {\n reportFilterWarning(context, `Could not round value: ${errorMessage(error)}`);\n return collectionInputValue(input, context, true);\n }\n};\n\n// src/filters/safe_name.ts\nvar validOsParams = [\"windows\", \"mac\", \"linux\"];\nvar validateSafeNameParams = (param) => {\n if (!param) {\n return { valid: true };\n }\n const os = cleanScalarParam(param)?.toLowerCase();\n if (!os || !validOsParams.includes(os)) {\n return {\n valid: false,\n error: `invalid OS \"${os ?? \"\"}\". Use \"windows\", \"mac\", or \"linux\"`\n };\n }\n return { valid: true };\n};\nvar safe_name = (str, param) => {\n const os = cleanScalarParam(param)?.toLowerCase() ?? \"default\";\n let sanitized = str;\n sanitized = sanitized.replace(/[#|\\^\\[\\]]/g, \"\");\n switch (os) {\n case \"windows\":\n sanitized = sanitized.replace(/[<>:\"\\/\\\\|?*\\x00-\\x1F]/g, \"\").replace(/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i, \"_$1$2\").replace(/[\\s.]+$/, \"\");\n break;\n case \"mac\":\n sanitized = sanitized.replace(/[\\/:\\x00-\\x1F]/g, \"\").replace(/^\\./, \"_\");\n break;\n case \"linux\":\n sanitized = sanitized.replace(/[\\/\\x00-\\x1F]/g, \"\").replace(/^\\./, \"_\");\n break;\n default:\n sanitized = sanitized.replace(/[<>:\"\\/\\\\|?*:\\x00-\\x1F]/g, \"\").replace(/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i, \"_$1$2\").replace(/[\\s.]+$/, \"\").replace(/^\\./, \"_\");\n break;\n }\n sanitized = sanitized.replace(/^\\.+/, \"\").slice(0, 245);\n if (sanitized.length === 0) {\n sanitized = \"Untitled\";\n }\n return sanitized;\n};\n\n// src/filters/slice.ts\nvar paramParts = (param) => splitParams(unwrapParamList(param)).map(cleanParamToken);\nvar validateSliceParams = (param) => {\n if (!param) {\n return { valid: false, error: \"requires at least a start index (e.g., slice:0,5)\" };\n }\n const parts = paramParts(param);\n if (parts.length > 2) {\n return { valid: false, error: \"accepts at most 2 parameters: start and end\" };\n }\n for (const part of parts) {\n if (part !== \"\" && isNaN(parseInt(part, 10))) {\n return { valid: false, error: `\"${part}\" is not a valid number` };\n }\n }\n return { valid: true };\n};\nvar slice = (str, param, context) => {\n if (!param) {\n return str;\n }\n if (str === \"\") {\n return str;\n }\n const [start, end] = paramParts(param).map((p) => {\n if (p === \"\") return void 0;\n const num = parseInt(p, 10);\n return isNaN(num) ? void 0 : num;\n });\n let value;\n try {\n value = JSON.parse(str);\n } catch {\n if (str.startsWith(\"[\") || str.startsWith(\"{\")) {\n reportFilterWarning(context, \"Could not parse structured value as JSON\", \"INVALID_FILTER_INPUT\");\n }\n value = str;\n }\n if (Array.isArray(value)) {\n const slicedArray = value.slice(start, end);\n if (slicedArray.length === 1) {\n return slicedArray[0] == null ? \"\" : slicedArray[0].toString();\n }\n return JSON.stringify(slicedArray);\n } else {\n const slicedString = str.slice(start, end);\n return slicedString;\n }\n};\n\n// src/filters/snake.ts\nvar snake = (str) => str.replace(/([a-z])([A-Z])/g, \"$1_$2\").replace(/[\\s-]+/g, \"_\").toLowerCase();\n\n// src/filters/sort.ts\nfunction parseParams(param) {\n if (!param) return { direction: \"asc\" };\n const parts = splitParams(unwrapParamList(param)).map(cleanParamToken);\n if (parts.length === 1 && (parts[0] === \"asc\" || parts[0] === \"desc\")) {\n return { direction: parts[0] };\n }\n return {\n property: parts[0] || void 0,\n direction: parts[1] || \"asc\"\n };\n}\nvar validateSortParams = (param) => {\n if (!param) return { valid: true };\n const parts = splitParams(unwrapParamList(param)).map(cleanParamToken);\n if (parts.length > 2) return { valid: false, error: \"accepts at most a property and direction\" };\n if (parts.length === 2 && !parts[0]) return { valid: false, error: \"property cannot be empty\" };\n const direction = parts.length === 1 && (parts[0] === \"asc\" || parts[0] === \"desc\") ? parts[0] : parts[1] || \"asc\";\n if (direction !== \"asc\" && direction !== \"desc\") {\n return { valid: false, error: `invalid direction \"${direction}\". Use \"asc\" or \"desc\"` };\n }\n return { valid: true };\n};\nfunction propertyValue(value, property) {\n if (!property) return value;\n return property.split(\".\").reduce(\n (current, key) => current && typeof current === \"object\" ? current[key] : void 0,\n value\n );\n}\nfunction compareValues(left, right) {\n if (left === right) return 0;\n if (left === null || left === void 0) return 1;\n if (right === null || right === void 0) return -1;\n if (typeof left === \"number\" && typeof right === \"number\") return left - right;\n const leftText = typeof left === \"string\" ? left : JSON.stringify(left);\n const rightText = typeof right === \"string\" ? right : JSON.stringify(right);\n return leftText < rightText ? -1 : leftText > rightText ? 1 : 0;\n}\nvar sort = (value, param, context) => {\n const input = inputValue(value, context);\n if (!Array.isArray(input)) return input;\n const { property, direction } = parseParams(param);\n return [...input].sort((left, right) => {\n const leftValue = propertyValue(left, property);\n const rightValue = propertyValue(right, property);\n const comparison = compareValues(leftValue, rightValue);\n if (leftValue === null || leftValue === void 0 || rightValue === null || rightValue === void 0) {\n return comparison;\n }\n return direction === \"desc\" ? -comparison : comparison;\n });\n};\n\n// src/filters/split.ts\nvar split = (str, param, context) => {\n if (!param || param === \"\") {\n return JSON.stringify(str.split(\"\"));\n }\n param = unquoteScalarParam(param) ?? \"\";\n const separator = param.length === 1 || context?.allowRegex === false ? param : new RegExp(param);\n const result = str.split(separator);\n return JSON.stringify(result);\n};\n\n// src/filters/sum.ts\nvar validateSumParams = (param) => {\n if (!param) return { valid: true };\n const parts = splitParams(unwrapParamList(param));\n if (parts.length !== 1) return { valid: false, error: \"accepts at most one property path\" };\n const path = unquoteParamToken(parts[0]);\n if (!path) return { valid: false, error: \"property path cannot be empty\" };\n if (path.split(\".\").some((segment) => segment === \"\")) {\n return { valid: false, error: \"property path cannot contain empty segments\" };\n }\n return { valid: true };\n};\nvar sum = (value, param, context) => {\n const input = collectionInputValue(value, context);\n if (!Array.isArray(input)) return input;\n const args = context?.rawArguments ?? parseTypedParams(param) ?? [];\n const path = args[0];\n if (path !== void 0 && (typeof path !== \"string\" || !path)) return input;\n let total = 0;\n for (const item of input) {\n let candidate = item;\n if (typeof path === \"string\") {\n const property = ownPropertyAtPath(item, path);\n if (!property.exists) continue;\n candidate = property.value;\n }\n const number = finiteNumber(candidate);\n if (number !== void 0) total += number;\n }\n return total;\n};\n\n// src/filters/strip_attr.ts\nvar strip_attr = (html, keepAttributes = \"\") => {\n const keepAttributesList = normalizeParamList(keepAttributes).filter(Boolean);\n return html.replace(/<(\\w+)\\s+(?:[^>]*?)>/g, (match, tag) => {\n if (keepAttributesList.length === 0) {\n return `<${tag}>`;\n }\n const keepAttrs = keepAttributesList.map((attr) => {\n const escapedAttr = attr.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const regex = new RegExp(`\\\\s${escapedAttr}\\\\s*=\\\\s*(\"[^\"]*\"|'[^']*')`, \"i\");\n const attrMatch = match.match(regex);\n return attrMatch ? attrMatch[0].trim() : \"\";\n }).filter(Boolean).join(\" \");\n return keepAttrs ? `<${tag} ${keepAttrs}>` : `<${tag}>`;\n });\n};\n\n// src/filters/strip_tags.ts\nvar strip_tags = (html, keepTags = \"\") => {\n const keepTagsList = normalizeParamList(keepTags).filter(Boolean);\n let result;\n if (keepTagsList.length === 0) {\n result = html.replace(/<\\/?[^>]+(>|$)/g, \"\");\n } else {\n const escapedTags = keepTagsList.map((tag) => tag.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(`<(?!\\\\/?(?:${escapedTags})\\\\b)[^>]+>`, \"gi\");\n result = html.replace(regex, \"\");\n }\n result = result.replace(/&nbsp;/g, \" \").replace(/&amp;/g, \"&\").replace(/&lt;/g, \"<\").replace(/&gt;/g, \">\").replace(/&quot;/g, '\"').replace(/&#39;/g, \"'\").replace(/&ldquo;/g, '\"').replace(/&rdquo;/g, '\"').replace(/&lsquo;/g, \"'\").replace(/&rsquo;/g, \"'\").replace(/&mdash;/g, \"\\u2014\").replace(/&ndash;/g, \"\\u2013\").replace(/&hellip;/g, \"\\u2026\").replace(/&#(\\d+);/g, (match, dec) => String.fromCharCode(Number(dec))).replace(/&#x([0-9A-Fa-f]+);/g, (match, hex) => String.fromCharCode(parseInt(hex, 16)));\n result = result.replace(/\\n{3,}/g, \"\\n\\n\");\n return result.trim();\n};\n\n// src/filters/table.ts\nfunction parseHeaders(params) {\n if (!params) return [];\n return splitParams(unwrapParamList(params)).map(unquoteParamToken);\n}\nvar escapeCell = (cell) => cell.replace(/\\|/g, \"\\\\|\");\nvar cellWidth = (cell) => Array.from(cell).length;\nvar padCell = (cell, width) => `${cell}${\" \".repeat(width - cellWidth(cell))}`;\nfunction widestCell(rows, column, minimum) {\n let width = minimum;\n for (const row of rows) {\n width = Math.max(width, cellWidth(row[column]));\n }\n return width;\n}\nfunction widestRow(rows) {\n let width = 0;\n for (const row of rows) {\n width = Math.max(width, row.length);\n }\n return width;\n}\nfunction renderTable(headers, rows, pretty) {\n const columnCount = headers.length;\n const normalizedHeaders = headers.map((value) => escapeCell(String(value)));\n const normalizedRows = rows.map(\n (row) => [...row, ...Array(Math.max(0, columnCount - row.length)).fill(\"\")].slice(0, columnCount).map((value) => escapeCell(String(value)))\n );\n if (!pretty) {\n return [\n `| ${normalizedHeaders.join(\" | \")} |`,\n `| ${normalizedHeaders.map(() => \"-\").join(\" | \")} |`,\n ...normalizedRows.map((row) => `| ${row.join(\" | \")} |`)\n ].join(\"\\n\");\n }\n const widths = normalizedHeaders.map((header, column) => widestCell(normalizedRows, column, Math.max(3, cellWidth(header))));\n const formatRow = (row) => `| ${row.map((cell, column) => padCell(cell, widths[column])).join(\" | \")} |`;\n return [\n formatRow(normalizedHeaders),\n `| ${widths.map((width) => \"-\".repeat(width)).join(\" | \")} |`,\n ...normalizedRows.map(formatRow)\n ].join(\"\\n\");\n}\nvar formatTable = (str, params, context, pretty) => {\n if (!str || str === \"undefined\" || str === \"null\") return str;\n try {\n const data = JSON.parse(str);\n const customHeaders = parseHeaders(params);\n if (typeof data === \"object\" && data !== null && !Array.isArray(data)) {\n const entries = Object.entries(data);\n if (entries.length === 0) return str;\n return renderTable(entries[0], entries.slice(1), pretty);\n }\n if (Array.isArray(data) && data.length > 0 && Array.isArray(data[0])) {\n const maxColumns = widestRow(data);\n const headers = customHeaders.length > 0 ? [...customHeaders, ...Array(Math.max(0, maxColumns - customHeaders.length)).fill(\"\")] : Array(maxColumns).fill(\"\");\n return renderTable(headers, data, pretty);\n }\n if (Array.isArray(data) && data.length > 0 && typeof data[0] === \"object\" && data[0] !== null) {\n const headers = customHeaders.length > 0 ? customHeaders : Object.keys(data[0]);\n const rows = data.map((row) => headers.map((header) => row[header] ?? \"\"));\n return renderTable(headers, rows, pretty);\n }\n if (Array.isArray(data)) {\n if (customHeaders.length > 0) {\n const rows = [];\n for (let index = 0; index < data.length; index += customHeaders.length) {\n rows.push(data.slice(index, index + customHeaders.length));\n }\n return renderTable(customHeaders, rows, pretty);\n }\n return renderTable([\"Value\"], data.map((item) => [item]), pretty);\n }\n return str;\n } catch {\n reportFilterWarning(context, \"Could not parse value as JSON table data\", \"INVALID_FILTER_INPUT\");\n return str;\n }\n};\nvar table = (str, params, context) => formatTable(str, params, context, false);\nvar table_pretty = (str, params, context) => formatTable(str, params, context, true);\n\n// src/filters/template.ts\nvar validateTemplateParams = (param) => {\n if (!param) {\n return { valid: false, error: 'requires a template string (e.g., template:\"${name}\")' };\n }\n return { valid: true };\n};\nvar template = (input, param) => {\n if (!param) {\n return typeof input === \"string\" ? input : JSON.stringify(input);\n }\n param = unquoteScalarParam(param) ?? \"\";\n let obj = [];\n if (typeof input === \"string\") {\n try {\n obj = JSON.parse(input);\n } catch {\n obj = [input];\n }\n } else {\n obj = input;\n }\n obj = Array.isArray(obj) ? obj : [obj];\n return obj.map((item) => replaceTemplateVariables(item, param)).join(\"\\n\\n\");\n};\nfunction replaceTemplateVariables(obj, template2) {\n if (typeof obj === \"string\") {\n const strValue = obj;\n try {\n obj = parseObjectString(obj);\n } catch {\n }\n if (obj.str === void 0) {\n obj.str = strValue;\n }\n }\n let result = template2.replace(/\\$\\{([\\w.]+)\\}/g, (_match, path) => {\n const value = getNestedProperty2(obj, path);\n return value !== void 0 && value !== \"undefined\" ? value : \"\";\n });\n result = result.replace(/\\\\n/g, \"\\n\");\n result = result.split(\"\\n\").filter((line) => line.trim() !== \"\").join(\"\\n\");\n return result.trim();\n}\nfunction parseObjectString(str) {\n const obj = /* @__PURE__ */ Object.create(null);\n const regex = /(\\w+):\\s*(\"(?:\\\\.|[^\"\\\\])*\"|[^,}]+)/g;\n let match;\n while ((match = regex.exec(str)) !== null) {\n let [, key, value] = match;\n if (value.startsWith('\"') && value.endsWith('\"')) {\n value = value.slice(1, -1);\n }\n obj[key] = value === \"undefined\" ? void 0 : value;\n }\n return obj;\n}\nfunction getNestedProperty2(obj, path) {\n return ownPropertyAtPath(obj, path).value;\n}\n\n// src/filters/title.ts\nvar lowercaseWords = [\"a\", \"an\", \"the\", \"and\", \"but\", \"or\", \"for\", \"nor\", \"on\", \"at\", \"to\", \"from\", \"by\", \"in\", \"of\"];\nvar title = (input, param) => {\n const toTitleCase = (str) => {\n return str.split(/\\s+/).map((word, index) => {\n if (index !== 0 && lowercaseWords.includes(word.toLowerCase())) {\n return word.toLowerCase();\n }\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n }).join(\" \");\n };\n const processValue = (value) => {\n if (typeof value === \"string\") {\n return toTitleCase(value);\n } else if (Array.isArray(value)) {\n return value.map(processValue);\n } else if (typeof value === \"object\" && value !== null) {\n const result = {};\n for (const [key, val] of Object.entries(value)) {\n result[toTitleCase(key)] = processValue(val);\n }\n return result;\n }\n return value;\n };\n try {\n const parsedInput = JSON.parse(input);\n const result = processValue(parsedInput);\n return JSON.stringify(result);\n } catch (error) {\n return processValue(input);\n }\n};\n\n// src/filters/trim.ts\nvar trim = (str) => {\n return str.trim();\n};\n\n// src/filters/truncate.ts\nvar graphemeSegmenter = new Intl.Segmenter(void 0, { granularity: \"grapheme\" });\nfunction graphemes(value) {\n return [...graphemeSegmenter.segment(value)].map((segment) => segment.segment);\n}\nfunction paramParts2(param) {\n return param ? splitParams(unwrapParamList(param)).map(cleanParamToken) : [];\n}\nfunction parseParams2(param) {\n const parts = paramParts2(param);\n return {\n limit: Number.parseInt(parts[0] ?? \"0\", 10),\n suffix: parts[1] ?? \"\\u2026\"\n };\n}\nfunction validateParams(param, example) {\n const parts = paramParts2(param);\n if (parts.length === 0 || parts[0] === \"\") {\n return { valid: false, error: `requires a non-negative limit (e.g., ${example})` };\n }\n if (parts.length > 2) return { valid: false, error: \"accepts at most a limit and suffix\" };\n if (!/^\\d+$/.test(parts[0])) return { valid: false, error: \"limit must be a non-negative integer\" };\n return { valid: true };\n}\nvar validateTruncateParams = (param) => validateParams(param, \"truncate:100\");\nvar validateTruncatewordsParams = (param) => validateParams(param, \"truncatewords:20\");\nfunction truncateString(value, options) {\n if (options.limit === 0) return \"\";\n const characters = graphemes(value);\n if (characters.length <= options.limit) return value;\n const suffix = graphemes(options.suffix).slice(0, options.limit);\n const contentLimit = Math.max(0, options.limit - suffix.length);\n return `${characters.slice(0, contentLimit).join(\"\")}${suffix.join(\"\")}`;\n}\nfunction truncateWordsString(value, options) {\n if (options.limit === 0) return \"\";\n const words = [...value.matchAll(/\\S+/g)];\n if (words.length <= options.limit) return value;\n const finalWord = words[options.limit - 1];\n return `${value.slice(0, finalWord.index + finalWord[0].length)}${options.suffix}`;\n}\nfunction truncateValue(value, param, context, formatter) {\n const options = parseParams2(param);\n return mapStringValues(inputValue(value, context), (item) => formatter(item, options));\n}\nvar truncate = (value, param, context) => truncateValue(value, param, context, truncateString);\nvar truncatewords = (value, param, context) => truncateValue(value, param, context, truncateWordsString);\n\n// src/filters/uncamel.ts\nvar uncamel = (str) => {\n const spaced = str.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\");\n return spaced.replace(/([A-Z])([A-Z][a-z])/g, \"$1 $2\").toLowerCase();\n};\n\n// src/filters/unescape.ts\nvar unescape = (str) => str.replace(/\\\\\"/g, '\"').replace(/\\\\n/g, \"\\n\");\n\n// src/filters/unique.ts\nvar unique = (input) => {\n try {\n const parsed = JSON.parse(input);\n if (Array.isArray(parsed)) {\n if (parsed.every((item) => typeof item !== \"object\")) {\n return JSON.stringify([...new Set(parsed)]);\n }\n const seen = /* @__PURE__ */ new Set();\n const uniqueArray = parsed.filter((item) => {\n const stringified = JSON.stringify(item);\n if (seen.has(stringified)) {\n return false;\n }\n seen.add(stringified);\n return true;\n });\n return JSON.stringify(uniqueArray);\n }\n if (typeof parsed === \"object\" && parsed !== null) {\n const reverseEntries = Object.entries(parsed).reverse();\n const seen = /* @__PURE__ */ new Set();\n const uniqueEntries = reverseEntries.filter(([_, value]) => {\n const stringified = JSON.stringify(value);\n if (seen.has(stringified)) {\n return false;\n }\n seen.add(stringified);\n return true;\n }).reverse();\n return JSON.stringify(Object.fromEntries(uniqueEntries));\n }\n return input;\n } catch {\n return input;\n }\n};\n\n// src/filters/upper.ts\nvar upper = (input) => {\n const toUpperCase = (str) => {\n return str.toLocaleUpperCase();\n };\n if (Array.isArray(input)) {\n return input.map(toUpperCase);\n } else {\n return toUpperCase(input);\n }\n};\n\n// src/filters/wikilink.ts\nvar wikiReference = (str, param, prefix) => {\n if (!str.trim()) {\n return str;\n }\n let alias = \"\";\n if (param) {\n alias = unquoteScalarParam(param) ?? alias;\n }\n try {\n const data = JSON.parse(str);\n const processObject = (obj) => {\n return Object.entries(obj).map(([key, value]) => {\n if (typeof value === \"object\" && value !== null) {\n return processObject(value);\n }\n return `${prefix}[[${key}|${value}]]`;\n }).flat();\n };\n if (Array.isArray(data)) {\n const result = data.flatMap((item) => {\n if (typeof item === \"object\" && item !== null) {\n return processObject(item);\n }\n return item ? alias ? `${prefix}[[${item}|${alias}]]` : `${prefix}[[${item}]]` : \"\";\n });\n return JSON.stringify(result);\n } else if (typeof data === \"object\" && data !== null) {\n return JSON.stringify(processObject(data));\n }\n } catch (error) {\n return alias ? `${prefix}[[${str}|${alias}]]` : `${prefix}[[${str}]]`;\n }\n return str;\n};\nvar wikilink = (str, param, context) => wikiReference(Array.isArray(context?.rawValue) ? JSON.stringify(context.rawValue) : str, param, \"\");\nvar embed = (str, param, context) => wikiReference(Array.isArray(context?.rawValue) ? JSON.stringify(context.rawValue) : str, param, \"!\");\n\n// src/filters/duration.ts\nimport dayjs3 from \"dayjs\";\nimport durationPlugin from \"dayjs/plugin/duration.js\";\ndayjs3.extend(durationPlugin);\nvar duration = (str, param, context) => {\n if (!str) {\n return str;\n }\n try {\n str = str.replace(/^[\"'](.*)[\"']$/g, \"$1\");\n const matches = str.match(/^P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?)?$/);\n if (!matches) {\n const seconds2 = parseInt(str, 10);\n if (!isNaN(seconds2)) {\n return formatDuration(dayjs3.duration(seconds2, \"seconds\"), param);\n }\n return str;\n }\n const [, years, months, days, hours, minutes, seconds] = matches;\n const totalSeconds = (years ? parseInt(years) * 365 * 24 * 3600 : 0) + (months ? parseInt(months) * 30 * 24 * 3600 : 0) + (days ? parseInt(days) * 24 * 3600 : 0) + (hours ? parseInt(hours) * 3600 : 0) + (minutes ? parseInt(minutes) * 60 : 0) + (seconds ? parseInt(seconds) : 0);\n const dur = dayjs3.duration(totalSeconds, \"seconds\");\n return formatDuration(dur, param);\n } catch (error) {\n reportFilterWarning(context, `Could not format duration: ${errorMessage(error)}`);\n return str;\n }\n};\nfunction formatDuration(dur, format) {\n if (!format) {\n if (dur.asHours() >= 1) {\n format = \"HH:mm:ss\";\n } else {\n format = \"mm:ss\";\n }\n }\n format = format.replace(/^[\"'(](.*)[\"')]$/g, \"$1\");\n const hours = Math.floor(dur.asHours());\n const minutes = dur.minutes();\n const seconds = dur.seconds();\n const parts = {\n \"HH\": padZero(hours),\n \"H\": hours.toString(),\n \"mm\": padZero(minutes),\n \"m\": minutes.toString(),\n \"ss\": padZero(seconds),\n \"s\": seconds.toString()\n };\n return format.replace(/HH|H|mm|m|ss|s/g, (match) => parts[match].toString());\n}\nfunction padZero(num) {\n return num.toString().padStart(2, \"0\");\n}\n\n// src/filters/yaml.ts\nvar validateYamlParams = (param) => {\n return !param || cleanScalarParam(param) === \"flow\" ? { valid: true } : { valid: false, error: 'accepts only \"flow\"; omit the parameter for block YAML' };\n};\nfunction propertyKey(param) {\n if (!param) return void 0;\n const parts = splitParams(unwrapParamList(param));\n return parts.length === 1 ? cleanParamToken(parts[0]) : void 0;\n}\nvar validateYamlPropertyParams = (param) => {\n return propertyKey(param)?.trim() ? { valid: true } : { valid: false, error: 'requires one non-empty property name (e.g., yaml_property:\"director\")' };\n};\nfunction flow(value) {\n return JSON.stringify(value).replace(\n /[\\u007f-\\u009f\\u2028\\u2029]/g,\n (character) => `\\\\u${character.charCodeAt(0).toString(16).padStart(4, \"0\")}`\n );\n}\nfunction keyText(key) {\n return /^[a-z_][\\w-]*$/i.test(key) && !/^(?:true|false|null|yes|no|on|off|y|n)$/i.test(key) ? key : flow(key);\n}\nfunction isBlock(value) {\n return value !== null && typeof value === \"object\" && Object.keys(value).length > 0;\n}\nfunction block(value) {\n if (Array.isArray(value)) {\n return value.length === 0 ? \"[]\" : value.map((item) => `- ${block(item).replace(/\\n/g, \"\\n \")}`).join(\"\\n\");\n }\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n return entries.length === 0 ? \"{}\" : entries.map(([key, item]) => isBlock(item) ? `${keyText(key)}:\n ${block(item).replace(/\\n/g, \"\\n \")}` : `${keyText(key)}: ${block(item)}`).join(\"\\n\");\n }\n return flow(value);\n}\nfunction containsNonFiniteNumber(value) {\n if (typeof value === \"number\") return !Number.isFinite(value);\n if (Array.isArray(value)) return value.some(containsNonFiniteNumber);\n if (value !== null && typeof value === \"object\") {\n return Object.values(value).some(containsNonFiniteNumber);\n }\n return false;\n}\nfunction collection(value, context) {\n try {\n if ((Array.isArray(context?.rawValue) || isPlainObject(context?.rawValue)) && containsNonFiniteNumber(context.rawValue)) {\n reportFilterWarning(\n context,\n \"Could not serialize a collection containing a number outside the finite JavaScript range\",\n \"INVALID_FILTER_INPUT\"\n );\n return void 0;\n }\n const parsed = JSON.parse(Array.isArray(context?.rawValue) ? JSON.stringify(context.rawValue) : value);\n if (parsed !== null && typeof parsed === \"object\") {\n if (containsNonFiniteNumber(parsed)) {\n reportFilterWarning(\n context,\n \"Could not serialize a JSON collection containing a number outside the finite JavaScript range\",\n \"INVALID_FILTER_INPUT\"\n );\n return void 0;\n }\n return parsed;\n }\n } catch {\n }\n return void 0;\n}\nfunction scalar(value, context) {\n const rawValue = context?.rawValue;\n if (rawValue === null || typeof rawValue === \"boolean\" || typeof rawValue === \"number\" && Number.isFinite(rawValue)) {\n return flow(rawValue);\n }\n return flow(value);\n}\nvar yaml = (value, param, context) => {\n const parsed = collection(value, context);\n return parsed ? cleanScalarParam(param) === \"flow\" ? flow(parsed) : block(parsed) : scalar(value, context);\n};\nvar yaml_property = (value, param, context) => {\n const key = propertyKey(param);\n if (!key?.trim()) return value;\n const parsed = collection(value, context);\n return parsed ? block({ [key]: parsed }) : `${keyText(key)}: ${scalar(value, context)}`;\n};\n\n// src/filters/where.ts\nvar validateWhereParams = (param) => {\n if (!param) return { valid: false, error: \"requires a property path and value\" };\n const parts = splitParams(unwrapParamList(param));\n if (parts.length !== 2) return { valid: false, error: \"requires exactly a property path and value\" };\n const path = unquoteParamToken(parts[0]);\n if (!path) return { valid: false, error: \"property path cannot be empty\" };\n if (path.split(\".\").some((segment) => segment === \"\")) {\n return { valid: false, error: \"property path cannot contain empty segments\" };\n }\n return { valid: true };\n};\nfunction isScalar(value) {\n return value === null || [\"string\", \"number\", \"boolean\"].includes(typeof value);\n}\nvar where = (value, param, context) => {\n const input = collectionInputValue(value, context);\n if (!Array.isArray(input)) return input;\n const args = context?.rawArguments ?? parseTypedParams(param) ?? [];\n const [path, expected] = args;\n if (typeof path !== \"string\" || !path || !isScalar(expected)) return input;\n return input.filter((item) => {\n const property = ownPropertyAtPath(item, path);\n return property.exists && property.value === expected;\n });\n};\n\n// src/filters/index.ts\nvar filterMetadata = {\n // Filters with validators\n calc: { example: 'calc:\"+10\"', validateParams: validateCalcParams },\n code: { example: 'code:\"typescript\"', validateParams: validateCodeParams },\n code_block: { example: 'code_block:\"typescript\"', validateParams: validateCodeParams },\n date_modify: { example: 'date_modify:\"+1 day\"', validateParams: validateDateModifyParams },\n hr: { example: \"hr:before\", validateParams: validateHrParams },\n highlight: { example: \"highlight:blue\", validateParams: validateHighlightParams },\n map: { example: \"map:x => x.name\", validateParams: validateMapParams },\n replace: { example: 'replace:\"old\":\"new\"', validateParams: validateReplaceParams },\n slice: { example: \"slice:0,5\", validateParams: validateSliceParams },\n sort: { example: 'sort:(\"name\", \"desc\")', validateParams: validateSortParams },\n sum: { example: 'sum:\"amount\"', validateParams: validateSumParams },\n template: { example: 'template:\"${name}\"', validateParams: validateTemplateParams },\n truncate: { example: 'truncate:(100, \"\\u2026\")', validateParams: validateTruncateParams },\n truncatewords: { example: 'truncatewords:(20, \"\\u2026\")', validateParams: validateTruncatewordsParams },\n where: { example: 'where:(\"published\", true)', validateParams: validateWhereParams },\n // Filters with optional parameters (examples for documentation)\n blockquote: {},\n bold: { example: \"bold:_\", validateParams: validateBoldParams },\n callout: { example: \"callout:info\" },\n camel: {},\n capitalize: {},\n compact: {},\n comment: {},\n date: { example: 'date:\"YYYY-MM-DD\"' },\n decode_uri: {},\n duration: {},\n embed: { example: 'embed:\"Preview\"' },\n encode_uri: {},\n escape_md: {},\n first: {},\n footnote: {},\n fragment_link: {},\n h1: {},\n h2: {},\n h3: {},\n h4: {},\n h5: {},\n h6: {},\n hard_break: {},\n image: {},\n indent: { example: \"indent:2\", validateParams: validateIndentParams },\n italic: { example: \"italic:_\", validateParams: validateItalicParams },\n join: { example: 'join:\", \"' },\n kebab: {},\n last: {},\n length: {},\n link: {},\n list: { example: \"list:numbered\", validateParams: validateListParams },\n lower: {},\n math: {},\n math_block: {},\n merge: {},\n nth: { example: \"nth:2\", validateParams: validateNthParams },\n number_format: {},\n object: { example: 'object:\"keys\"', validateParams: validateObjectParams },\n pascal: {},\n parse_json: {},\n remove_attr: {},\n remove_tags: {},\n replace_tags: {},\n reverse: {},\n round: { example: \"round:2\", validateParams: validateRoundParams },\n safe_name: { example: \"safe_name:windows\", validateParams: validateSafeNameParams },\n snake: {},\n split: { example: 'split:\",\"' },\n strip_attr: {},\n strip_md: {},\n strip_tags: {},\n stripmd: {},\n strike: {},\n table: {},\n table_pretty: {},\n title: {},\n trim: {},\n uncamel: {},\n unescape: {},\n unique: {},\n upper: {},\n wikilink: {},\n yaml: { example: \"yaml:flow\", validateParams: validateYamlParams },\n yaml_property: { example: 'yaml_property:\"director\"', validateParams: validateYamlPropertyParams }\n};\nvar standardFilterMetadata = Object.freeze(\n Object.fromEntries(\n Object.entries(filterMetadata).map(([name, metadata]) => [name, Object.freeze({ ...metadata })])\n )\n);\nvar filters = {\n blockquote,\n bold,\n calc,\n callout,\n camel,\n capitalize,\n compact,\n code,\n code_block,\n comment,\n date_modify,\n date,\n decode_uri,\n duration,\n embed,\n encode_uri,\n escape_md,\n first,\n footnote,\n fragment_link,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hard_break,\n highlight,\n hr,\n image,\n indent,\n italic,\n join,\n kebab,\n last,\n length,\n link,\n list,\n lower,\n map,\n math,\n math_block,\n merge,\n number_format,\n nth,\n object,\n pascal,\n parse_json,\n reverse,\n remove_attr,\n remove_tags,\n replace,\n replace_tags,\n round,\n safe_name,\n slice,\n snake,\n sort,\n split,\n sum,\n strip_attr,\n strip_md,\n strip_tags,\n stripmd: strip_md,\n // an alias for strip_md\n strike,\n table,\n table_pretty,\n template,\n title,\n trim,\n truncate,\n truncatewords,\n uncamel,\n unescape,\n unique,\n upper,\n wikilink,\n yaml,\n yaml_property,\n where\n};\nfunction asTemplateFilter(name, filter) {\n const wrapped = (value, param, context) => filter(value, param === \"\" ? void 0 : param, context);\n wrapped.metadata = standardFilterMetadata[name] ?? {};\n return wrapped;\n}\nvar standardFilters = Object.freeze(\n Object.fromEntries(\n Object.entries(filters).map(([name, filter]) => [name, asTemplateFilter(name, filter)])\n )\n);\nfunction splitFilterString(filterString) {\n const filters2 = [];\n const state = createParserState();\n for (let i = 0; i < filterString.length; i++) {\n const char = filterString[i];\n if (char === \"|\" && !state.escapeNext && !state.inQuote && !state.inRegex && state.curlyDepth === 0 && state.parenDepth === 0) {\n filters2.push(state.current.trim());\n state.current = \"\";\n } else {\n processCharacter(char, state);\n }\n }\n if (state.current) {\n filters2.push(state.current.trim());\n }\n return filters2;\n}\nfunction parseFilterString(filterString) {\n const parts = [];\n const state = createParserState();\n for (let i = 0; i < filterString.length; i++) {\n const char = filterString[i];\n if (char === \":\" && !state.escapeNext && !state.inQuote && !state.inRegex && state.parenDepth === 0 && parts.length === 0) {\n parts.push(state.current.trim());\n state.current = \"\";\n } else {\n processCharacter(char, state);\n }\n }\n if (state.current) {\n parts.push(state.current.trim());\n }\n return parts;\n}\nfunction isThenable(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\") && typeof value.then === \"function\";\n}\nfunction applyFiltersWithRegistry(value, filterString, registry, context) {\n if (!filterString) {\n return typeof value === \"string\" ? value : JSON.stringify(value) ?? \"\";\n }\n let processedValue = value;\n for (const filterExpression of splitFilterString(filterString)) {\n const [name, ...params] = parseFilterString(filterExpression);\n const filter = Object.prototype.hasOwnProperty.call(registry, name) ? registry[name] : void 0;\n if (!filter) continue;\n const stringInput = typeof processedValue === \"string\" ? processedValue : JSON.stringify(processedValue) ?? \"\";\n const output = filter(stringInput, params.join(\":\"), {\n ...context,\n rawValue: processedValue,\n rawArguments: parseTypedParams(params.join(\":\"))\n });\n if (isThenable(output)) {\n throw new TypeError(`Filter \"${name}\" is asynchronous; use engine.render() for async filters`);\n }\n if (typeof output === \"string\" && (output.startsWith(\"[\") || output.startsWith(\"{\"))) {\n try {\n processedValue = JSON.parse(output);\n continue;\n } catch {\n }\n }\n processedValue = output;\n }\n if (processedValue === void 0 || processedValue === null) return \"\";\n return typeof processedValue === \"string\" ? processedValue : JSON.stringify(processedValue) ?? \"\";\n}\n\nexport {\n TemplateRuntimeError,\n TemplateRenderError,\n defaultRenderLimits,\n tokenize,\n parse,\n validateVariables,\n validateFilters,\n createEngine,\n standardFilterMetadata,\n standardFilters,\n applyFiltersWithRegistry\n};\n//# sourceMappingURL=chunk-HIM7QCSR.js.map","/**\n * Knap template support for the markdown chart.\n *\n * A markdown portlet with a query renders its content as a Knap template rather\n * than as literal markdown, so a dashboard can carry a written summary that is\n * computed from live data instead of typed by hand.\n *\n * Knap resolves `a.b` as nested member access, so a cube-qualified result key\n * such as `Employees.avgSalary` is unreachable from a `for` loop or from the\n * `map` / `where` filters — those see a missing `Employees` object and yield\n * nothing. Every row is therefore offered three ways:\n *\n * rows aliased keys (`employees_avg_salary`) — loops and arithmetic\n * labelled human field labels as keys — `{{ labelled | table }}` headers\n * data the raw dotted keys — `{{ data[0][\"Employees.avgSalary\"] }}`\n *\n * `first` and `last` exist because Knap's filters stringify on assignment:\n * `{% set top = rows | sort:\"x\" %}` makes `top` a string, so a template cannot\n * sort and then index. The query's own ordering has to be surfaced directly.\n */\n\nimport {\n createEngine,\n parse,\n standardFilters,\n type TemplateEngine,\n type TemplateVariables\n} from 'knap'\n\n/** One result field, in the three namings a template can address it by. */\nexport interface MarkdownTemplateField {\n /** The raw cube-qualified key, e.g. `Employees.avgSalary`. */\n key: string\n /** The template-safe alias, e.g. `employees_avg_salary`. */\n alias: string\n /** The human-readable label, e.g. `Avg Salary`. */\n label: string\n}\n\n/** The variables a markdown template is rendered against. */\nexport interface MarkdownTemplateContext {\n rows: Record<string, unknown>[]\n labelled: Record<string, unknown>[]\n data: Record<string, unknown>[]\n rowCount: number\n first: Record<string, unknown> | null\n last: Record<string, unknown> | null\n fields: MarkdownTemplateField[]\n}\n\n/** A rendered template, or the diagnostics explaining why it did not render. */\nexport interface MarkdownTemplateResult {\n output: string\n errors: MarkdownTemplateDiagnostic[]\n /**\n * References the template makes that resolve to nothing. Knap renders an\n * unknown name as an empty string, so a misspelt field produces a blank\n * heading rather than any complaint — the failure is invisible at exactly the\n * moment the author needs to see it.\n */\n warnings: MarkdownTemplateDiagnostic[]\n}\n\nexport interface MarkdownTemplateDiagnostic {\n message: string\n line: number\n column: number\n}\n\n/**\n * Turn one segment of a field name into lower snake case.\n *\n * Splitting on camel-case boundaries is what keeps `avgSalary` readable as\n * `avg_salary`; a plain lower-casing would give `avgsalary`, which is both\n * hard to guess and hard to read back in a template.\n */\nfunction snakeSegment(segment: string): string {\n return segment\n .replace(/([a-z0-9])([A-Z])/g, '$1_$2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/[^A-Za-z0-9]+/g, '_')\n .toLowerCase()\n}\n\n/**\n * Derive the template alias for a cube-qualified field key.\n *\n * `Employees.avgSalary` becomes `employees_avg_salary`. A key that would start\n * with a digit is prefixed, since Knap identifiers cannot.\n */\nexport function aliasForField(key: string): string {\n const alias = key\n .split('.')\n .map(snakeSegment)\n .filter(Boolean)\n .join('_')\n .replace(/_+/g, '_')\n .replace(/^_|_$/g, '')\n\n if (!alias) return 'field'\n return /^[0-9]/.test(alias) ? `_${alias}` : alias\n}\n\n/**\n * Claim a name, suffixing it until it is unique.\n *\n * Two fields must never collapse onto one template variable — a silently lost\n * column is far worse than an ugly `_2`.\n */\nfunction claimUnique(name: string, taken: Set<string>): string {\n if (!taken.has(name)) {\n taken.add(name)\n return name\n }\n let suffix = 2\n while (taken.has(`${name}_${suffix}`)) suffix++\n const unique = `${name}_${suffix}`\n taken.add(unique)\n return unique\n}\n\n/**\n * Collect the result's field keys in a stable order.\n *\n * Driven by the rows rather than by the query, so a field the engine did not\n * return simply is not offered, and a field only some rows carry still is.\n */\nfunction collectKeys(rows: Record<string, unknown>[]): string[] {\n const keys: string[] = []\n const seen = new Set<string>()\n for (const row of rows) {\n for (const key of Object.keys(row)) {\n if (!seen.has(key)) {\n seen.add(key)\n keys.push(key)\n }\n }\n }\n return keys\n}\n\n/**\n * Build the template variables for a set of result rows.\n *\n * @param rows - raw result rows, as `resultSet.rawData()` returns them\n * @param getFieldLabel - resolves a field key to its human label; pass the\n * value of `useCubeFieldLabel()` so labels match the rest of the app\n */\nexport function buildTemplateContext(\n rows: Record<string, unknown>[],\n getFieldLabel: (key: string) => string = (key) => key\n): MarkdownTemplateContext {\n const keys = collectKeys(rows)\n\n const aliasTaken = new Set<string>()\n const labelTaken = new Set<string>()\n const fields: MarkdownTemplateField[] = keys.map((key) => ({\n key,\n alias: claimUnique(aliasForField(key), aliasTaken),\n label: claimUnique(safeLabel(getFieldLabel, key), labelTaken)\n }))\n\n const project = (pick: (field: MarkdownTemplateField) => string) =>\n rows.map((row) => {\n const projected: Record<string, unknown> = {}\n for (const field of fields) {\n if (field.key in row) projected[pick(field)] = row[field.key]\n }\n return projected\n })\n\n const aliased = project((field) => field.alias)\n\n return {\n rows: aliased,\n labelled: project((field) => field.label),\n data: rows,\n rowCount: rows.length,\n first: aliased[0] ?? null,\n last: aliased.length > 0 ? aliased[aliased.length - 1] : null,\n fields\n }\n}\n\n/**\n * Resolve a field label without letting a provider failure break the chart.\n * Falls back to the raw key, which is always meaningful.\n */\nfunction safeLabel(getFieldLabel: (key: string) => string, key: string): string {\n try {\n return getFieldLabel(key) || key\n } catch {\n return key\n }\n}\n\n/** The variables every template is given, whatever the query returned. */\nconst CONTEXT_NAMES = ['rows', 'labelled', 'data', 'rowCount', 'first', 'last', 'fields']\n\n/** Variables whose members are result fields, so `x.alias` must be a real one. */\nconst ROW_SHAPED = ['first', 'last']\n\n/** The members a `fields` entry carries. */\nconst FIELD_MEMBERS = ['key', 'alias', 'label']\n\n/** A Knap identifier, which carries its dotted access as a `path`. */\ninterface IdentifierNode {\n type: 'identifier'\n name: string\n path?: string[]\n line: number\n column: number\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n\nfunction isIdentifier(node: unknown): node is IdentifierNode {\n return isRecord(node) && node.type === 'identifier' && typeof node.name === 'string'\n}\n\n/** Depth-first walk over the parsed template, visiting every node once. */\nfunction walkNodes(node: unknown, visit: (node: Record<string, unknown>) => void): void {\n if (Array.isArray(node)) {\n for (const child of node) walkNodes(child, visit)\n return\n }\n if (!isRecord(node)) return\n visit(node)\n for (const value of Object.values(node)) walkNodes(value, visit)\n}\n\n/**\n * Map each `{% for %}` iterator to what it iterates.\n *\n * A loop variable is only checkable once we know its source: `row` in\n * `for row in rows` holds a result row, so its members are field aliases, while\n * `f` in `for f in fields` holds metadata instead.\n */\nfunction collectLoopSources(ast: unknown): Map<string, string> {\n const sources = new Map<string, string>()\n walkNodes(ast, (node) => {\n if (node.type !== 'for' || typeof node.iterator !== 'string') return\n const iterable = node.iterable\n sources.set(node.iterator, isIdentifier(iterable) ? iterable.name : '')\n })\n return sources\n}\n\n/** What a root variable holds, which decides how its members are checked. */\ntype RootKind =\n /** A row under aliases — members must be real aliases. */\n | { kind: 'aliased' }\n /** A `fields` entry — members are the metadata keys. */\n | { kind: 'metadata' }\n /** A raw row with dotted keys — dotted access never resolves on it. */\n | { kind: 'raw' }\n /** Not checkable, e.g. `labelled`, whose keys contain spaces. */\n | { kind: 'skip' }\n\nfunction rootKind(root: string, loopSources: Map<string, string>): RootKind {\n if (ROW_SHAPED.includes(root)) return { kind: 'aliased' }\n\n switch (loopSources.get(root)) {\n case 'rows': return { kind: 'aliased' }\n case 'fields': return { kind: 'metadata' }\n case 'data': return { kind: 'raw' }\n default: return { kind: 'skip' }\n }\n}\n\n/**\n * Find references that will silently render as nothing.\n *\n * Two mistakes account for nearly all of them: naming a variable the context\n * does not provide, and reading a field off a row under a name that is not its\n * alias. Both look identical in the output — a blank space where a value should\n * be — so they are reported with the names that would have worked.\n */\nexport function findUnknownReferences(\n template: string,\n context: MarkdownTemplateContext\n): MarkdownTemplateDiagnostic[] {\n const { ast, errors } = parse(template)\n // A template that does not parse has real errors to fix first.\n if (errors.length > 0) return []\n\n const aliases = context.fields.map((field) => field.alias)\n const loopSources = collectLoopSources(ast)\n const knownRoots = new Set([...CONTEXT_NAMES, ...loopSources.keys()])\n const available = aliases.length > 0 ? aliases.join(', ') : CONTEXT_NAMES.join(', ')\n\n const scope: ReferenceScope = { aliases, loopSources, knownRoots, available }\n const diagnostics: MarkdownTemplateDiagnostic[] = []\n const reported = new Set<string>()\n\n walkNodes(ast, (node) => {\n if (!isIdentifier(node)) return\n const message = describeReference(node.path ?? [node.name], scope)\n if (message) addOnce(diagnostics, reported, node, message)\n })\n\n return diagnostics\n}\n\n/** What a template may legitimately name, derived from the context and its loops. */\ninterface ReferenceScope {\n aliases: string[]\n loopSources: Map<string, string>\n knownRoots: Set<string>\n /** The alias list as prose, for the \"Available: …\" half of a message. */\n available: string\n}\n\n/** The problem with one reference, or null if there is none. */\nfunction describeReference(path: string[], scope: ReferenceScope): string | null {\n const [root, member] = path\n\n if (!scope.knownRoots.has(root)) {\n return `Unknown variable \"${root}\". Available: ${CONTEXT_NAMES.join(', ')}.`\n }\n if (member === undefined) return null\n\n return describeMember(path, member, scope)\n}\n\n/** The problem with reading `member` off a known root, or null if there is none. */\nfunction describeMember(path: string[], member: string, scope: ReferenceScope): string | null {\n const root = path[0]\n\n switch (rootKind(root, scope.loopSources).kind) {\n case 'raw':\n // `data` keeps the cube-qualified keys, and Knap reads `r.Employees.count`\n // as two levels of nesting rather than one literal key, so it resolves to\n // nothing. Bracket syntax is the only way in.\n return `\"${root}\" holds raw rows, so dotted access does not resolve. `\n + `Use ${root}[\"${path.slice(1).join('.')}\"], or loop over rows and use ${root}.${scope.aliases[0] ?? 'alias'}.`\n case 'aliased':\n return unknownField(member, scope.aliases, scope.available)\n case 'metadata':\n return unknownField(member, FIELD_MEMBERS, FIELD_MEMBERS.join(', '))\n case 'skip':\n return null\n }\n}\n\n/** \"Unknown field\" with the names that would have worked, or null if it is known. */\nfunction unknownField(member: string, known: string[], available: string): string | null {\n return known.includes(member) ? null : `Unknown field \"${member}\". Available: ${available}.`\n}\n\n/** Record a diagnostic once per name, so a loop does not repeat the same advice. */\nfunction addOnce(\n diagnostics: MarkdownTemplateDiagnostic[],\n reported: Set<string>,\n node: IdentifierNode,\n message: string\n): void {\n if (reported.has(message)) return\n reported.add(message)\n diagnostics.push({ message, line: node.line, column: node.column })\n}\n\n/**\n * Render limits for a dashboard portlet.\n *\n * Knap's defaults allow a five-megabyte output, which is not a size any portlet\n * should reach. These are tightened so that a runaway loop over a large result\n * fails with a diagnostic rather than locking up the browser tab.\n */\nconst RENDER_LIMITS = {\n maxTemplateLength: 100_000,\n maxOutputLength: 500_000,\n maxValueLength: 100_000,\n maxOperations: 500_000,\n maxDepth: 50\n}\n\nlet engine: TemplateEngine | null = null\n\n/**\n * The shared Knap engine.\n *\n * `allowRegex` is off: Knap's own guidance is that native regexes need worker\n * or process isolation before they are safe on untrusted input, and a template\n * whose variables come from the warehouse is not hand-typed input.\n */\nfunction getEngine(): TemplateEngine {\n if (!engine) {\n engine = createEngine({ filters: standardFilters, allowRegex: false })\n }\n return engine\n}\n\n/**\n * Check a template for syntax errors and unknown filters without rendering it.\n * Synchronous, so an editor can show diagnostics as the author types.\n */\nexport function validateTemplate(template: string): MarkdownTemplateDiagnostic[] {\n if (!template.trim()) return []\n try {\n return getEngine()\n .validate(template)\n .map((error) => ({ message: error.message, line: error.line, column: error.column }))\n } catch (error) {\n return [{ message: toMessage(error), line: 1, column: 1 }]\n }\n}\n\n/**\n * Render a markdown template against result rows.\n *\n * Never throws. A broken template reports its diagnostics so the portlet can\n * show them in place, rather than taking the dashboard down with it.\n */\nexport async function renderMarkdownTemplate(\n template: string,\n context: MarkdownTemplateContext\n): Promise<MarkdownTemplateResult> {\n try {\n // Listed field by field rather than spread: an interface is not assignable\n // to Knap's `Record<string, unknown>` variables, and writing them out keeps\n // this the one authoritative list of what a template can reference.\n const variables: TemplateVariables = {\n rows: context.rows,\n labelled: context.labelled,\n data: context.data,\n rowCount: context.rowCount,\n first: context.first,\n last: context.last,\n fields: context.fields\n }\n\n const result = await getEngine().render(template, { variables }, { limits: RENDER_LIMITS })\n const errors = result.errors.map((error) => ({\n message: error.message,\n line: error.line,\n column: error.column\n }))\n return {\n output: result.output,\n errors,\n // Only worth computing when the template ran: a parse failure has real\n // errors to fix first, and every reference would look unresolved.\n warnings: errors.length > 0 ? [] : findUnknownReferences(template, context)\n }\n } catch (error) {\n return {\n output: '',\n errors: [{ message: toMessage(error), line: 1, column: 1 }],\n warnings: []\n }\n }\n}\n\nfunction toMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error)\n}\n","/**\n * Presentation helpers and the template hook for MarkdownChart.\n *\n * The chart resolves a lot of small styling choices from its display config —\n * heading scale, alignment, accent border — and, since gaining a template mode,\n * also runs an async render. Both live here so the component itself stays a\n * readable sequence of \"read config, render body\".\n */\n\nimport { useContext, useEffect, useMemo, useState } from 'react'\nimport { sanitizer } from 'markdown-to-jsx'\nimport type { CSSProperties } from 'react'\nimport { CubeMetaContext, type CubeMetaContextValue } from '../../providers/CubeMetaContext.js'\nimport { queryHasMembers } from '../../../shared/query-shape.js'\nimport type { CubeQuery } from '../../types.js'\nimport {\n buildTemplateContext,\n renderMarkdownTemplate,\n type MarkdownTemplateDiagnostic,\n type MarkdownTemplateResult\n} from './markdownTemplate.js'\n\n/** Heading scale per fontSize setting. */\nconst HEADER_SIZES: Record<string, Record<number, string>> = {\n small: { 1: 'dc:text-lg', 2: 'dc:text-base', 3: 'dc:text-sm' },\n medium: { 1: 'dc:text-3xl', 2: 'dc:text-2xl', 3: 'dc:text-xl' },\n large: { 1: 'dc:text-5xl', 2: 'dc:text-4xl', 3: 'dc:text-3xl' }\n}\n\nconst HEADER_MARGINS: Record<number, string> = { 1: 'dc:mb-4', 2: 'dc:mb-3', 3: 'dc:mb-2' }\n\nconst BODY_SIZES: Record<string, string> = {\n small: 'dc:text-sm',\n medium: 'dc:text-lg',\n large: 'dc:text-xl'\n}\n\nconst ALIGNMENTS: Record<string, string> = {\n left: 'dc:text-left',\n center: 'dc:text-center',\n right: 'dc:text-right'\n}\n\n/** Body text size class for a fontSize setting. */\nexport function bodySizeClass(fontSize: string): string {\n return BODY_SIZES[fontSize] ?? BODY_SIZES.medium\n}\n\n/** Text alignment class for an alignment setting. */\nexport function alignmentClass(alignment: string): string {\n return ALIGNMENTS[alignment] ?? ALIGNMENTS.left\n}\n\n/** Heading class pair for one level, falling back to the medium scale. */\nfunction headingProps(fontSize: string, level: 1 | 2 | 3, accentColor: string) {\n const size = HEADER_SIZES[fontSize]?.[level] ?? HEADER_SIZES.medium[level]\n return {\n props: {\n className: `dc:font-bold ${size} ${HEADER_MARGINS[level]}`,\n style: { color: accentColor }\n }\n }\n}\n\n/**\n * markdown-to-jsx options for the chart's themed elements.\n *\n * The `sanitizer` is markdown-to-jsx's own, named rather than left implicit:\n * template output can carry warehouse values into link and image destinations,\n * so the protocol policy should be visible in our code.\n */\nexport function buildMarkdownOptions(accentColor: string, fontSize: string) {\n return {\n sanitizer: (value: string) => sanitizer(value),\n overrides: {\n h1: headingProps(fontSize, 1, accentColor),\n h2: headingProps(fontSize, 2, accentColor),\n h3: headingProps(fontSize, 3, accentColor),\n p: { props: { className: 'dc:mb-3 dc:leading-relaxed text-dc-text' } },\n strong: { props: { className: 'dc:font-bold text-dc-text' } },\n em: { props: { className: 'dc:italic text-dc-text' } },\n a: {\n props: {\n className: 'dc:hover:underline dc:transition-colors',\n target: '_blank',\n rel: 'nofollow noopener noreferrer',\n style: { color: accentColor }\n }\n },\n code: { props: { className: 'dc:px-1 dc:py-0.5 dc:rounded-sm dc:text-xs bg-dc-surface-secondary text-dc-accent dc:font-mono' } },\n pre: { props: { className: 'dc:rounded-lg dc:p-3 dc:my-2 dc:overflow-x-auto dc:text-xs bg-dc-surface-secondary text-dc-text dc:font-mono' } },\n ul: { props: { className: 'dc:list-disc dc:ml-6 dc:mb-3 text-dc-text dc:space-y-1' } },\n ol: { props: { className: 'dc:list-decimal dc:ml-6 dc:mb-3 text-dc-text dc:space-y-1' } },\n li: { props: { className: 'dc:mb-1 text-dc-text' } },\n blockquote: { props: { className: 'dc:border-l-4 border-dc-accent dc:pl-3 dc:my-2 dc:italic text-dc-text-secondary' } },\n hr: {\n props: {\n className: 'dc:my-4 dc:border-none',\n style: { height: '2px', backgroundColor: accentColor, opacity: 0.3 }\n }\n },\n table: { props: { className: 'dc:w-full dc:border-collapse dc:my-3 dc:text-sm' } },\n thead: { props: { className: 'bg-dc-surface-secondary' } },\n th: { props: { className: 'dc:px-3 dc:py-2 dc:text-left dc:font-semibold dc:text-xs text-dc-text-secondary dc:uppercase dc:tracking-wider border-dc-border dc:border-b' } },\n td: { props: { className: 'dc:px-3 dc:py-2 text-dc-text border-dc-border dc:border-b' } },\n tr: { props: { className: 'dc:hover:opacity-80' } }\n }\n }\n}\n\n/** The accent stripe, on whichever side the config names. */\nexport function buildAccentBorderStyle(\n accentBorder: string,\n accentColor: string,\n transparentBackground: boolean\n): CSSProperties {\n if (accentBorder === 'none') return {}\n\n const side = accentBorder.charAt(0).toUpperCase() + accentBorder.slice(1)\n const style: CSSProperties = {\n [`border${side}`]: `4px solid ${accentColor}`\n }\n // A transparent block has no padding of its own, so the stripe would sit\n // flush against the text.\n if (transparentBackground && accentBorder === 'left') {\n style.paddingLeft = '12px'\n }\n return style\n}\n\n/** The palette colour at `index`, or the chart default. */\nexport function resolveAccentColor(\n colors: string[] | undefined,\n index: number\n): string {\n return colors && index < colors.length ? colors[index] : '#8884d8'\n}\n\n/** Rows arrive as `unknown[]`; only plain objects can become template variables. */\nexport function toTemplateRows(data: unknown): Record<string, unknown>[] {\n if (!Array.isArray(data)) return []\n return data.filter(\n (row): row is Record<string, unknown> =>\n typeof row === 'object' && row !== null && !Array.isArray(row)\n )\n}\n\nexport interface MarkdownTemplateState {\n /** Whether the content is a template rather than literal markdown. */\n isTemplate: boolean\n /** The rendered body, or null before the first async render lands. */\n output: string | null\n errors: MarkdownTemplateDiagnostic[]\n /** References that resolved to nothing, reported alongside the output. */\n warnings: MarkdownTemplateDiagnostic[]\n}\n\n/**\n * Render the chart's content as a Knap template when a query is attached.\n *\n * A real query is what distinguishes the two modes, and it has to be the\n * members rather than the object: several callers pass `{}` for \"no query\", and\n * treating that as a template would silently reinterpret every text block.\n */\nexport function useMarkdownTemplate(\n content: string,\n data: unknown,\n queryObject: CubeQuery | undefined\n): MarkdownTemplateState {\n const isTemplate = queryHasMembers(queryObject)\n const rows = useMemo(() => toTemplateRows(data), [data])\n\n // Field labels give `{{ labelled | table }}` readable column headers. Read\n // from context directly rather than through useCubeFieldLabel, which throws\n // outside a CubeProvider — the chart also renders in previews and in the MCP\n // app, where losing labels is fine but crashing is not.\n const metaContext = useContext(CubeMetaContext) as CubeMetaContextValue | null\n const getFieldLabel = metaContext?.getFieldLabel\n\n const [result, setResult] = useState<MarkdownTemplateResult | null>(null)\n\n useEffect(() => {\n if (!isTemplate || !content.trim()) {\n setResult(null)\n return\n }\n\n let cancelled = false\n const context = buildTemplateContext(rows, getFieldLabel)\n void renderMarkdownTemplate(content, context).then((rendered) => {\n if (!cancelled) setResult(rendered)\n })\n\n return () => {\n cancelled = true\n }\n }, [isTemplate, content, rows, getFieldLabel])\n\n return {\n isTemplate,\n output: result?.output ?? null,\n errors: result?.errors ?? [],\n warnings: result?.warnings ?? []\n }\n}\n","import React, { useMemo } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport Markdown from 'markdown-to-jsx'\nimport type { ChartProps } from '../../types.js'\nimport type { MarkdownTemplateDiagnostic } from './markdownTemplate.js'\nimport {\n alignmentClass,\n bodySizeClass,\n buildAccentBorderStyle,\n buildMarkdownOptions,\n resolveAccentColor,\n useMarkdownTemplate\n} from './MarkdownChart.helpers.js'\n\n/**\n * A template that failed to parse or render reports its diagnostics in place.\n * Showing them beats showing nothing: the author is usually looking straight at\n * the portlet while editing, and a thrown error would take the dashboard down.\n */\nfunction Diagnostics({ heading, items, tone }: {\n heading: string\n items: MarkdownTemplateDiagnostic[]\n tone: 'error' | 'warning'\n}) {\n return (\n <>\n <div className={`dc:font-semibold dc:mb-2 ${tone === 'error' ? 'text-dc-error' : 'text-dc-warning'}`}>\n {heading}\n </div>\n <ul className=\"dc:list-disc dc:ml-5 dc:space-y-1 dc:text-xs text-dc-text-secondary\">\n {items.map((item, index) => (\n <li key={`${item.line}:${item.column}:${index}`}>\n <span className=\"dc:font-mono\">{`${item.line}:${item.column}`}</span>\n {` ${item.message}`}\n </li>\n ))}\n </ul>\n </>\n )\n}\n\nconst MarkdownChart = React.memo(function MarkdownChart({\n data,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const { t } = useTranslation()\n const content = displayConfig.content || ''\n const fontSize = displayConfig.fontSize || 'medium'\n const transparentBackground = !!displayConfig.transparentBackground\n\n const accentColor = resolveAccentColor(colorPalette?.colors, displayConfig.accentColorIndex ?? 0)\n\n // With a query attached the content is a Knap template over the result rows\n // rather than literal markdown. Without one this is inert.\n const template = useMarkdownTemplate(content, data, queryObject)\n\n const markdownOptions = useMemo(\n () => buildMarkdownOptions(accentColor, fontSize),\n [accentColor, fontSize]\n )\n\n if (!content.trim()) {\n if (transparentBackground) return null\n\n return (\n <div\n className=\"dc:flex dc:items-center dc:justify-center dc:w-full dc:h-full\"\n style={{ height: height === \"100%\" ? \"100%\" : height }}\n >\n <div className=\"dc:text-center text-dc-text-muted\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.markdown.noContent')}</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">{t('chart.runtime.markdown.addContent')}</div>\n </div>\n </div>\n )\n }\n\n const containerStyle = {\n height: height === \"100%\" ? \"100%\" : height,\n ...buildAccentBorderStyle(displayConfig.accentBorder || 'none', accentColor, transparentBackground)\n }\n const padding = transparentBackground ? '' : 'dc:p-4 '\n\n if (template.errors.length > 0) {\n return (\n <div\n className={`dc-markdown-content dc:w-full dc:overflow-auto ${padding}dc:text-sm`}\n style={containerStyle}\n >\n <Diagnostics\n heading={t('chart.runtime.markdown.templateError')}\n items={template.errors}\n tone=\"error\"\n />\n </div>\n )\n }\n\n // In template mode the rendered output replaces the raw content. Before the\n // first async render lands there is nothing to show, so the body is empty for\n // one paint rather than flashing the un-rendered template source.\n const body = template.isTemplate ? (template.output ?? '') : content\n const alignment = alignmentClass(displayConfig.alignment || 'left')\n\n return (\n <div\n className={`dc-markdown-content dc:w-full dc:overflow-auto ${padding}${bodySizeClass(fontSize)} ${alignment}`}\n style={containerStyle}\n >\n {/* Shown above the body, not instead of it: the rest of the narrative is\n usually correct, and the blank it leaves behind is the only other clue\n the author gets. */}\n {template.warnings.length > 0 ? (\n <div className=\"dc:mb-3 dc:pb-2 dc:text-sm border-dc-border dc:border-b\">\n <Diagnostics\n heading={t('chart.runtime.markdown.templateWarning')}\n items={template.warnings}\n tone=\"warning\"\n />\n </div>\n ) : null}\n {body ? <Markdown options={markdownOptions}>{body}</Markdown> : null}\n </div>\n )\n})\n\nexport default MarkdownChart\n"],"ignoreList":[1,2,3,4,5,6,7,8,9,10],"mappings":"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"}