drizzle-cube 0.9.0 → 0.9.3
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.
- package/dist/adapters/ActivityGridChart.config-BIHNNXe8.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-D8brFtkU.js +2 -0
- package/dist/adapters/AreaChart.config-BjBnqhrD.js +2 -0
- package/dist/adapters/AreaChart.config-hCYHwAaC.cjs +1 -0
- package/dist/adapters/BarChart.config-JWskLg7a.js +2 -0
- package/dist/adapters/BarChart.config-ldUoUV-V.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-DXgi-pWk.js +2 -0
- package/dist/adapters/BoxPlotChart.config-t7CU_SEB.cjs +1 -0
- package/dist/adapters/BubbleChart.config-BqNbgcs4.js +2 -0
- package/dist/adapters/BubbleChart.config-SRbrJWj2.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-CTqj07at.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-D-KaQpN1.js +2 -0
- package/dist/adapters/DataTable.config-4QtzEm2K.js +2 -0
- package/dist/adapters/DataTable.config-C4OZyZKL.cjs +1 -0
- package/dist/adapters/DotStripChart.config-CrwF5K67.cjs +1 -0
- package/dist/adapters/DotStripChart.config-tmdykLsT.js +2 -0
- package/dist/adapters/FunnelChart.config-Dk7bb3KU.cjs +1 -0
- package/dist/adapters/FunnelChart.config-Uah6h6t6.js +2 -0
- package/dist/adapters/GaugeChart.config-BGi82n3v.cjs +1 -0
- package/dist/adapters/GaugeChart.config-DIWl6xVG.js +2 -0
- package/dist/adapters/HeatMapChart.config-C1Wl6SHf.js +2 -0
- package/dist/adapters/HeatMapChart.config-CsA67rfc.cjs +1 -0
- package/dist/adapters/KpiDelta.config-CBo61Kp9.cjs +1 -0
- package/dist/adapters/KpiDelta.config-CgYK9zIF.js +2 -0
- package/dist/adapters/KpiNumber.config-BqQjoY4A.cjs +1 -0
- package/dist/adapters/KpiNumber.config-Dt8kOvIA.js +2 -0
- package/dist/adapters/KpiText.config-BE8HbXQ0.js +2 -0
- package/dist/adapters/KpiText.config-DaSbcfKE.cjs +1 -0
- package/dist/adapters/LineChart.config-CUPtbHNz.cjs +1 -0
- package/dist/adapters/LineChart.config-DHlctcYT.js +2 -0
- package/dist/adapters/MarkdownChart.config-B0T5A7dw.js +2 -0
- package/dist/adapters/MarkdownChart.config-iV60Icd3.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-CBCezRPr.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-CO9Cc3Ha.js +2 -0
- package/dist/adapters/PieChart.config-D6Ofc2h-.js +2 -0
- package/dist/adapters/PieChart.config-TOCX24yj.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-BfiCmXI7.js +2 -0
- package/dist/adapters/ProportionBarChart.config-Bh8_aieC.cjs +1 -0
- package/dist/adapters/RadarChart.config-BfWKUYv4.cjs +1 -0
- package/dist/adapters/RadarChart.config-x87UPfQH.js +2 -0
- package/dist/adapters/RadialBarChart.config-BGA-fVmo.js +2 -0
- package/dist/adapters/RadialBarChart.config-Bo3E1IWc.cjs +1 -0
- package/dist/adapters/RecordsTable.config-CKb4xY0c.cjs +1 -0
- package/dist/adapters/RecordsTable.config-KsPOo8YB.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-DVDQBMW8.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-DqfOBn6k.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-B7NVTM5_.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-tnd7N7g-.js +2 -0
- package/dist/adapters/SankeyChart.config-B1K4e0RA.js +2 -0
- package/dist/adapters/SankeyChart.config-I26Q_e5f.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CMta6GGl.cjs +1 -0
- package/dist/adapters/ScatterChart.config-WwER0vgC.js +2 -0
- package/dist/adapters/SunburstChart.config-CBYye6Ez.js +2 -0
- package/dist/adapters/SunburstChart.config-DbC1AZCI.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-EcJf0Dzm.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-wNJWipDf.js +2 -0
- package/dist/adapters/WaterfallChart.config--d2EuVF-.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-CPJLjH4K.js +2 -0
- package/dist/adapters/{compiler-SBDjxyQ3.js → compiler-B4tLaYye.js} +10 -10
- package/dist/adapters/{compiler-BdVMQ3Xj.cjs → compiler-BYm93X_G.cjs} +5 -5
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-CSt8MGbw.cjs → core-BQEJzwTJ.cjs} +1 -1
- package/dist/adapters/{core-CXrxqh7l.js → core-CVDf8WNs.js} +2 -2
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +5 -5
- package/dist/adapters/{handler-Cppe-aqH.js → handler-Ck2X85KS.js} +170 -151
- package/dist/adapters/handler-MFn_eVcJ.cjs +16 -0
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-app-html-28O1Eww7.js +5 -0
- package/dist/adapters/mcp-app-html-DXdKk-cp.cjs +1 -0
- package/dist/adapters/mcp-app-html.cjs +1 -0
- package/dist/adapters/mcp-app-html.d.ts +25 -0
- package/dist/adapters/mcp-app-html.js +2 -0
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +21 -20
- package/dist/adapters/mcp-transport-BQxL1h2h.cjs +42 -0
- package/dist/adapters/mcp-transport-yJDy3T6W.js +758 -0
- package/dist/adapters/mcp-transport.d.ts +19 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-BIoIunc7.js → openai-B7EVH3cl.js} +2578 -1797
- package/dist/adapters/openai-BkD4iuG8.cjs +19 -0
- package/dist/adapters/{openai-62sEF0Ev.js → openai-DRFOtBUU.js} +1 -1
- package/dist/adapters/{openai-CaxNY6TC.cjs → openai-FjvP4Mek.cjs} +1 -1
- package/dist/adapters/{utils-C_RKaP0n.js → utils-BY3FDOmN.js} +8 -1
- package/dist/adapters/utils-BkdzL4m9.cjs +132 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/mcp-app-html.d.ts +25 -0
- package/dist/cjs/adapters/mcp-transport.d.ts +19 -2
- package/dist/cjs/client/charts/chartConfigs.d.ts +34 -0
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +10 -2
- package/dist/cjs/client/components/AnalysisBuilder/TemplateEditor.d.ts +17 -0
- package/dist/cjs/client/components/AnalysisBuilder/templateSyntax.d.ts +26 -0
- package/dist/cjs/client/components/analyticsPortlet/parsePortletQuery.d.ts +12 -0
- package/dist/cjs/client/components/analyticsPortlet/portletRenderState.d.ts +7 -0
- package/dist/cjs/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/MarkdownChart.helpers.d.ts +156 -0
- package/dist/cjs/client/components/charts/markdownTemplate.d.ts +92 -0
- package/dist/client/charts/chartConfigs.d.ts +34 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-DjMGNTUa.js → DashboardEditModal-B8zIH0ja.js} +2529 -2368
- package/dist/client/chunks/DashboardEditModal-B8zIH0ja.js.map +1 -0
- package/dist/client/chunks/{DotStripChart-EEtJyV1v.js → DotStripChart-BCgHGY0s.js} +4 -4
- package/dist/client/chunks/{DotStripChart-EEtJyV1v.js.map → DotStripChart-BCgHGY0s.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-3r7ZPX-V.js → ProportionBarChart-DzdKxzr4.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-3r7ZPX-V.js.map → ProportionBarChart-DzdKxzr4.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-DvMXV6F6.js → RecordsTable-kQfZ25Pz.js} +4 -4
- package/dist/client/chunks/{RecordsTable-DvMXV6F6.js.map → RecordsTable-kQfZ25Pz.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-DbxB86fj.js → RetentionCombinedChart-CvddCEOk.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-DbxB86fj.js.map → RetentionCombinedChart-CvddCEOk.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-CE3rxhAU.js → RetentionHeatmap-BURt-mfm.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-CE3rxhAU.js.map → RetentionHeatmap-BURt-mfm.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-lQk_qJBQ.js → analysis-builder-C0hzThmQ.js} +1688 -1675
- package/dist/client/chunks/{analysis-builder-lQk_qJBQ.js.map → analysis-builder-C0hzThmQ.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-C_pLSXJR.js → analysis-builder-shared-CQFcY6vA.js} +476 -476
- package/dist/client/chunks/{analysis-builder-shared-C_pLSXJR.js.map → analysis-builder-shared-CQFcY6vA.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-UZIp9_2E.js → chart-activity-grid-aIyjUpbJ.js} +9 -2
- package/dist/client/chunks/chart-activity-grid-aIyjUpbJ.js.map +1 -0
- package/dist/client/chunks/{chart-area-CEBcvCcn.js → chart-area-DCCvp06H.js} +3 -3
- package/dist/client/chunks/{chart-area-CEBcvCcn.js.map → chart-area-DCCvp06H.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-DGh7cpU-.js → chart-bar-C8xQ15Aa.js} +3 -3
- package/dist/client/chunks/{chart-bar-DGh7cpU-.js.map → chart-bar-C8xQ15Aa.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-CeqoKPFa.js → chart-box-plot-DFMjBoL1.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-CeqoKPFa.js.map → chart-box-plot-DFMjBoL1.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-8uH_JKNt.js → chart-bubble-CavhSOT8.js} +2 -2
- package/dist/client/chunks/{chart-bubble-8uH_JKNt.js.map → chart-bubble-CavhSOT8.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-DogklMg1.js → chart-candlestick-BlJ6l-0-.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-DogklMg1.js.map → chart-candlestick-BlJ6l-0-.js.map} +1 -1
- package/dist/client/chunks/{chart-config-markdown-C5kBQOjP.js → chart-config-markdown-CK8PAWUg.js} +8 -3
- package/dist/client/chunks/chart-config-markdown-CK8PAWUg.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-CCvvgeG_.js → chart-data-table-Dfup1JpL.js} +426 -423
- package/dist/client/chunks/chart-data-table-Dfup1JpL.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-D2vGQhaz.js → chart-funnel-DqBD-oth.js} +2 -2
- package/dist/client/chunks/{chart-funnel-D2vGQhaz.js.map → chart-funnel-DqBD-oth.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DbU0rxqv.js → chart-gauge-Tr9BRoTo.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DbU0rxqv.js.map → chart-gauge-Tr9BRoTo.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-x6aQq91x.js → chart-heat-map-V200X1EP.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-x6aQq91x.js.map → chart-heat-map-V200X1EP.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-B2-m16QC.js → chart-kpi-delta-DuXkAxKV.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-B2-m16QC.js.map → chart-kpi-delta-DuXkAxKV.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DggvlYT_.js → chart-kpi-number-CzRaT5KF.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-DggvlYT_.js.map → chart-kpi-number-CzRaT5KF.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-BFy-m1NP.js → chart-kpi-text-DxMl_C7M.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-BFy-m1NP.js.map → chart-kpi-text-DxMl_C7M.js.map} +1 -1
- package/dist/client/chunks/{chart-line-C4r44HWi.js → chart-line-rl9q-vom.js} +3 -3
- package/dist/client/chunks/{chart-line-C4r44HWi.js.map → chart-line-rl9q-vom.js.map} +1 -1
- package/dist/client/chunks/chart-markdown-DJq7fXKF.js +8622 -0
- package/dist/client/chunks/chart-markdown-DJq7fXKF.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-Dc-d82kF.js → chart-measure-profile-BDpkr55p.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Dc-d82kF.js.map → chart-measure-profile-BDpkr55p.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-BHrPxga2.js → chart-pie-W4Mk0WFB.js} +3 -3
- package/dist/client/chunks/{chart-pie-BHrPxga2.js.map → chart-pie-W4Mk0WFB.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-I9sOFbG5.js → chart-radar-BXkMOUVC.js} +3 -3
- package/dist/client/chunks/{chart-radar-I9sOFbG5.js.map → chart-radar-BXkMOUVC.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DeDMMf9P.js → chart-radial-bar-CSw1hCK2.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-DeDMMf9P.js.map → chart-radial-bar-CSw1hCK2.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-1qB7yWHq.js → chart-sankey-CXG8SeW3.js} +2 -2
- package/dist/client/chunks/{chart-sankey-1qB7yWHq.js.map → chart-sankey-CXG8SeW3.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-BHttSxcc.js → chart-scatter-BHp1yLvR.js} +3 -3
- package/dist/client/chunks/{chart-scatter-BHttSxcc.js.map → chart-scatter-BHp1yLvR.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-Cmzol8kR.js → chart-sunburst-CHgQCRCz.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-Cmzol8kR.js.map → chart-sunburst-CHgQCRCz.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CdSwr_zI.js → chart-tree-map-YBAOj00L.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-CdSwr_zI.js.map → chart-tree-map-YBAOj00L.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-BN3B5luW.js → chart-waterfall-CSQ3xvUJ.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-BN3B5luW.js.map → chart-waterfall-CSQ3xvUJ.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DIneMirc.js → charts-core-ghjDtt0_.js} +2 -2
- package/dist/client/chunks/{charts-core-DIneMirc.js.map → charts-core-ghjDtt0_.js.map} +1 -1
- package/dist/client/chunks/charts-loader-B_ye_C5_.js +87 -0
- package/dist/client/chunks/{charts-loader-OHpTBq8c.js.map → charts-loader-B_ye_C5_.js.map} +1 -1
- package/dist/client/chunks/{dist-BPmPx7kz.js → dist-COqN0-Yj.js} +4 -4
- package/dist/client/chunks/{dist-BPmPx7kz.js.map → dist-COqN0-Yj.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CiByP8VQ.js → exceljs.min-CdNVdwM3.js} +8 -11
- package/dist/client/chunks/{exceljs.min-CiByP8VQ.js.map → exceljs.min-CdNVdwM3.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-dk-kC0sL.js → nl-NL-CKdVNqSp.js} +8 -1
- package/dist/client/chunks/nl-NL-CKdVNqSp.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-PYa578pV.js → schema-visualization-txYCG4v5.js} +4 -4
- package/dist/client/chunks/{schema-visualization-PYa578pV.js.map → schema-visualization-txYCG4v5.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-BQupC3wJ.js → useDirtyStateTracking-BUk23Wbh.js} +6 -6
- package/dist/client/chunks/{useDirtyStateTracking-BQupC3wJ.js.map → useDirtyStateTracking-BUk23Wbh.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-DORnTynt.js → useExplainAI-CGLroDBD.js} +5 -5
- package/dist/client/chunks/{useExplainAI-DORnTynt.js.map → useExplainAI-CGLroDBD.js.map} +1 -1
- package/dist/client/chunks/{vendor-DDo8nSGP.js → vendor-CApRxi77.js} +5 -6
- package/dist/client/chunks/{vendor-DDo8nSGP.js.map → vendor-CApRxi77.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +10 -2
- package/dist/client/components/AnalysisBuilder/TemplateEditor.d.ts +17 -0
- package/dist/client/components/AnalysisBuilder/templateSyntax.d.ts +26 -0
- package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +12 -0
- package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +7 -0
- package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/client/components/charts/MarkdownChart.helpers.d.ts +156 -0
- package/dist/client/components/charts/markdownTemplate.d.ts +92 -0
- package/dist/client/components.js +2 -2
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +409 -409
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +190 -132
- package/dist/server/index.cjs +17 -23
- package/dist/server/index.js +176 -147
- package/dist/server/openai-BWGYfr6Z.cjs +19 -0
- package/dist/server/{openai-nBhuSFd3.js → openai-Cap1nBuK.js} +1 -1
- package/dist/server/{openai-C1gLuR-0.js → openai-DW5TRMXE.js} +2577 -1796
- package/dist/server/{openai-rF50ZEiR.cjs → openai-G2EivP-n.cjs} +1 -1
- package/package.json +16 -5
- package/dist/adapters/ActivityGridChart.config-DfyZh3He.js +0 -2
- package/dist/adapters/ActivityGridChart.config-DgOwl51m.cjs +0 -1
- package/dist/adapters/AreaChart.config-BL_ZpMsg.js +0 -2
- package/dist/adapters/AreaChart.config-rc1phjmI.cjs +0 -1
- package/dist/adapters/BarChart.config-C6k4BxhM.cjs +0 -1
- package/dist/adapters/BarChart.config-CBACR7Z-.js +0 -2
- package/dist/adapters/BoxPlotChart.config-Bvg6yFn2.js +0 -2
- package/dist/adapters/BoxPlotChart.config-CAlLRM0v.cjs +0 -1
- package/dist/adapters/BubbleChart.config-22qXNskY.js +0 -2
- package/dist/adapters/BubbleChart.config-BkB3P6Bi.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-DuZb-y6d.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-G78UbuwS.js +0 -2
- package/dist/adapters/DataTable.config-BXkpzOC2.js +0 -2
- package/dist/adapters/DataTable.config-CwPlSht6.cjs +0 -1
- package/dist/adapters/DotStripChart.config-Bw9Ww5zY.cjs +0 -1
- package/dist/adapters/DotStripChart.config-D5sbLAqA.js +0 -2
- package/dist/adapters/FunnelChart.config-CUs1rqN2.cjs +0 -1
- package/dist/adapters/FunnelChart.config-Cw9qrC2C.js +0 -2
- package/dist/adapters/GaugeChart.config-CjGtJVoO.cjs +0 -1
- package/dist/adapters/GaugeChart.config-F5SA5Oi3.js +0 -2
- package/dist/adapters/HeatMapChart.config-CvgmSiuY.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-DrvQrPHT.js +0 -2
- package/dist/adapters/KpiDelta.config-B-UJWdJ5.cjs +0 -1
- package/dist/adapters/KpiDelta.config-C00mTZYy.js +0 -2
- package/dist/adapters/KpiNumber.config-CB0kTeoV.cjs +0 -1
- package/dist/adapters/KpiNumber.config-D3CogH8j.js +0 -2
- package/dist/adapters/KpiText.config-B0LbKRCf.js +0 -2
- package/dist/adapters/KpiText.config-Dv4TNprC.cjs +0 -1
- package/dist/adapters/LineChart.config-CdONxSLL.js +0 -2
- package/dist/adapters/LineChart.config-DBHsfIYG.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-AYKXdpuw.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-CngxD_Lc.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-B0a5sUk6.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-ByW5F1Ey.js +0 -2
- package/dist/adapters/PieChart.config-Csx1ctk4.js +0 -2
- package/dist/adapters/PieChart.config-Dfw66Xab.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-BaeYznc1.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-DCOizSVs.js +0 -2
- package/dist/adapters/RadarChart.config-AxQh97rB.js +0 -2
- package/dist/adapters/RadarChart.config-BjP-zEGW.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-D5EwyJ0G.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-DMaEJYM_.js +0 -2
- package/dist/adapters/RecordsTable.config-BdN0kZ8b.js +0 -2
- package/dist/adapters/RecordsTable.config-CWRvGDbi.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-BpciOTeX.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-CY8TDzuy.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-BZPRoVpF.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-YMZt-u-T.js +0 -2
- package/dist/adapters/SankeyChart.config-BdSA-Jlp.cjs +0 -1
- package/dist/adapters/SankeyChart.config-Dlgi5_DA.js +0 -2
- package/dist/adapters/ScatterChart.config-VJ0xG0Ak.cjs +0 -1
- package/dist/adapters/ScatterChart.config-oOd1Jplx.js +0 -2
- package/dist/adapters/SunburstChart.config-Cllhyjy4.js +0 -2
- package/dist/adapters/SunburstChart.config-DU11BAei.cjs +0 -1
- package/dist/adapters/TreeMapChart.config--EB8bQTo.js +0 -2
- package/dist/adapters/TreeMapChart.config-BPmMLBH1.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-E99Fl6uM.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-xz3DaoMQ.js +0 -2
- package/dist/adapters/handler-_u5krbOj.cjs +0 -26
- package/dist/adapters/mcp-transport-CpF7usmR.js +0 -754
- package/dist/adapters/mcp-transport-DXIfb0p-.cjs +0 -42
- package/dist/adapters/openai-EBTQKJnV.cjs +0 -19
- package/dist/adapters/utils-DXWQUJbD.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-DjMGNTUa.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-UZIp9_2E.js.map +0 -1
- package/dist/client/chunks/chart-config-markdown-C5kBQOjP.js.map +0 -1
- package/dist/client/chunks/chart-data-table-CCvvgeG_.js.map +0 -1
- package/dist/client/chunks/chart-markdown-b0qPZ617.js +0 -3926
- package/dist/client/chunks/chart-markdown-b0qPZ617.js.map +0 -1
- package/dist/client/chunks/charts-loader-OHpTBq8c.js +0 -87
- package/dist/client/chunks/nl-NL-dk-kC0sL.js.map +0 -1
- package/dist/server/openai-BmADmD1e.cjs +0 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-markdown-DJq7fXKF.js","names":["B","R6","h5","h4","h6","z6","dayjs","customParseFormat","isoWeek","weekOfYear","advancedFormat","dayjs2","customParseFormat2","isoWeek2","weekOfYear2","advancedFormat2","dayjs3","durationPlugin"],"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-RWGZ67NF.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 j;function B(z){if(!j){if(typeof document>\"u\")return;j=document.createElement(\"textarea\")}var q=`&${z};`;j.innerHTML=q;var v=j.value;return v===q?void 0:v}var C={};export{B as decodeEntity,C as NAMED_CODES_TO_UNICODE};\n","var I=32,w=9,I5=13,g=10,Z0=96,b0=126,A0=91,z5=94,l=62,V5=35,M9=37,p=45,K5=61,T0=92,P0=42,O0=95,Y0=60,x9=64,J5=93,c0=33,O9=38,m0=58,D9=70,L5=102,A9=104,C5=119,s5=116,E9=112,Y$=115,c$=160,l$=12,r$=44,j9=59,t5=63,Q5=46,j0=47,f5=39,T5=34,y5=43,E0=124,S5=123,g9=125,F5=40,H5=41,o$=78,i$=110,a$=79,n$=111,V$=120,K$=88,C9=30,r=48,o=57,h=65,u=90,V0=97,q0=122,U9=128,U5=32,w6={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},B=w6;import{decodeEntity as R6}from\"markdown-to-jsx/entities\";function X4($){if(!t$($,\"---\"))return null;let Q=3;for(;Q<$.length&&($[Q]===\" \"||$[Q]===\"\t\");)Q++;if(Q<$.length&&$[Q]===\"\\r\"&&Q++,Q>=$.length||$[Q]!==`\n`)return null;Q++;let Z=!1;for(;Q<$.length;){let X=Q;for(;Q<$.length&&$[Q]!==`\n`&&$[Q]!==\"\\r\";)Q++;if(Q>=$.length)break;let Y=Q;if($[Q]===\"\\r\"&&Q++,Q<$.length&&$[Q]===`\n`&&Q++,t$($,\"---\",X))return{endPos:Q,hasValidYaml:Z};if(!Z){let V=S6($,X,Y);if(V<Y){let K=$.charCodeAt(V);if(K>=V0&&K<=q0||K>=h&&K<=u||K>=r&&K<=o||K===O0){for(V++;V<Y&&(K=$.charCodeAt(V),K>=V0&&K<=q0||K>=h&&K<=u||K>=r&&K<=o||K===O0||K===p||K===Q5);)V++;V<Y&&$.charCodeAt(V)===m0&&(V++,V>=Y?Z=!0:(K=$.charCodeAt(V),(K===I||K===w)&&(Z=!0)))}}}}return null}var b6=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,L6={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\"},T6={};function U$($){if(!$)return T6;var Q={};for(var Z in $){var X=Z.toLowerCase(),Y=L6[X];if(Y)Q[Y]=$[Z];else{var V=Z.indexOf(\":\");V===-1?Q[Z]=$[Z]:Q[Z.slice(0,V)+Z[V+1].toUpperCase()+Z.slice(V+2)]=$[Z]}}return Q}var Y4=/(\\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 N5($){return $.indexOf(\"&\")===-1?$:$.replace(b6,(Q,Z)=>{var X=R6(Z);if(X)return X;if(Z[0]===\"#\"){var Y=Z[1]===\"x\"||Z[1]===\"X\"?Number.parseInt(Z.slice(2),16):Number.parseInt(Z.slice(1),10);return Y===0||Y>=55296&&Y<=57343||Y>1114111?\"\\uFFFD\":Y<=65535?String.fromCharCode(Y):String.fromCharCode(55296+(Y-65536>>10),56320+(Y-65536&1023))}return Q})}var s$=/(javascript|vbscript|data(?!:image)):/i;function G5($){if(s$.test($))return null;if($.indexOf(\"%\")===-1)return $;try{let Q=decodeURIComponent($).replace(/[^A-Za-z0-9/:]/g,\"\");if(s$.test(Q))return null}catch{return null}return $}var o0={},s0,g0;for(s0=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],g0=0;g0<s0.length;g0++)o0[s0[g0]]=\"a\";for(o0[231]=o0[199]=\"c\",o0[240]=o0[208]=\"d\",s0=[200,201,202,203,233,232,234,235],g0=0;g0<s0.length;g0++)o0[s0[g0]]=\"e\";for(s0=[207,239,206,238,205,237,204,236],g0=0;g0<s0.length;g0++)o0[s0[g0]]=\"i\";for(o0[209]=o0[241]=\"n\",s0=[248,216,339,338,213,245,212,244,211,243,210,242],g0=0;g0<s0.length;g0++)o0[s0[g0]]=\"o\";for(s0=[220,252,219,251,218,250,217,249],g0=0;g0<s0.length;g0++)o0[s0[g0]]=\"u\";o0[376]=o0[255]=o0[221]=o0[253]=\"y\";function j5($){for(var Q=\"\",Z=-1,X=$.length,Y=0;Y<X;Y++){var V=$.charCodeAt(Y);if(V>=V0&&V<=q0||V>=r&&V<=o){Z<0&&(Z=Y);continue}if(V>=h&&V<=u){Z>=0&&(Q+=$.slice(Z,Y),Z=-1),Q+=String.fromCharCode(V+U5);continue}if(V===I||V===p){Z>=0&&(Q+=$.slice(Z,Y),Z=-1),Q+=\"-\";continue}Z>=0&&(Q+=$.slice(Z,Y),Z=-1);var K=o0[V];K&&(Q+=K)}return Z>=0&&(Q+=$.slice(Z)),Q}function t$($,Q,Z){return $.startsWith(Q,Z)}var e$=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 Q9($){let Q=$.toLowerCase();if(e$.has(Q))return!0;let Z=Q.indexOf(\":\");return Z!==-1?(Q=Q.slice(Z+1),e$.has(Q)):!1}var h5=1,$4=2,$9=4,Z4=8,y6=16,M5=32,k5=64,V4=(()=>{var $=new Uint8Array(128),Q;for($[w]=h5,$[g]=h5|$4,$[l$]=h5,$[I5]=h5|$4,$[I]=h5,Q=c0;Q<=j0;Q++)$[Q]=$9;for(Q=m0;Q<=x9;Q++)$[Q]=$9;for(Q=A0;Q<=Z0;Q++)$[Q]=$9;for(Q=S5;Q<=b0;Q++)$[Q]=$9;for(Q=r;Q<=o;Q++)$[Q]=y6;for(Q=h;Q<=u;Q++)$[Q]=Z4;for(Q=V0;Q<=q0;Q++)$[Q]=Z4;return $})(),K4=/[\\p{P}\\p{S}]/u,J4=/\\p{Zs}/u,e5=[];function U4($){var Q=$.indexOf(\"\\r\"),Z=$.indexOf(\"\\0\");if(Q===-1&&Z===-1)return $;var X=$.length;e5.length=0;var Y=0,V=0;for(Q===-1?V=Z:Z===-1?V=Q:V=Q<Z?Q:Z;V<X;V++){var K=$.charCodeAt(V);K===I5?(Y<V&&e5.push($.slice(Y,V)),V+1<X&&$.charCodeAt(V+1)===g&&V++,e5.push(`\n`),Y=V+1):K===0&&(Y<V&&e5.push($.slice(Y,V)),e5.push(\"\\uFFFD\"),Y=V+1)}return Y<X&&e5.push($.slice(Y)),e5.join(\"\")}function G4($){return $.replace(/>\\s+</g,\"><\").replace(/\\n+/g,\" \").trim()}function S6($,Q,Z){let X=Z??$.length;for(;Q<X&&($[Q]===\" \"||$[Q]===\"\t\");)Q++;return Q}function h9($){if(!$)return!1;for(var Q in $)return!0;return!1}function q4($){return{attrs:{},children:[{type:B.text,text:$}],c:!0,type:B.htmlBlock,tag:\"header\"}}var k6=/^\\n+/;function W4($){for(var Q=$.length;Q>0&&($[Q-1]===`\n`||$[Q-1]===\"\\r\");)Q--;return`${$.slice(0,Q).replace(k6,\"\")}\n\n`}function Z9($){if(($.type===B.htmlSelfClosing||$.type===B.htmlBlock)&&$.a)return[];if($.type===B.paragraph){var Q=$.children;return Q?Q.flatMap(Z9):[]}return $.type===B.text?$.text?.trim()?[$]:[]:$.type===B.htmlBlock&&$.children?[{...$,children:$.children?.flatMap(Z9)}]:[$]}function G$($){for(var Q=0;Q<$.length;Q++){if($[Q].type===B.htmlBlock){var Z=$[Q],X=!1;if(Z.c&&Q===$.length-1){var Y=Z.j===void 0?Z.a?Z.e||\"\":(Z.e||\"\")+(Z.h||\"\"):Z.j,V=`</${String(Z.tag).toLowerCase()}>`,K=Y.toLowerCase().indexOf(V);if(K!==-1){var J=Y.slice(K+V.length).replace(/<\\/[a-z][a-z0-9-]*\\s*>/gi,\"\");J.trim()&&(X=!0)}}X||(Z.c=!1)}\"children\"in $[Q]&&$[Q].children&&G$($[Q].children)}}function z4($,Q){for(var Z=0;Z<$.length;Z++){var X=$[Z];if(X.type===B.paragraph&&X.children)for(var Y=X.children,V=0;V<Y.length;V++){var K=Y[V];if(K.type===B.htmlSelfClosing&&K.a&&K.tag.toLowerCase()===Q){var J=$.slice(0,Z);V>0&&J.push({type:B.paragraph,children:Y.slice(0,V)});var G=[];if(V+1<Y.length){var U=Y.slice(V+1).filter(W=>!(W.type===B.htmlSelfClosing&&W.a));U.length>0&&(G=U)}return G=G.concat($.slice(Z+1)),{found:!0,beforeClose:J,afterClose:G}}}if((X.type===B.htmlSelfClosing||X.type===B.htmlBlock)&&X.a&&X.tag.toLowerCase()===Q)return{found:!0,beforeClose:$.slice(0,Z),afterClose:$.slice(Z+1)}}return{found:!1,beforeClose:$,afterClose:[]}}function x6($){var Q=\"\";for(var Z in $){var X=$[Z];X===!0?Q+=` ${Z}`:X!==void 0&&X!=null&&X!==!1&&(Q+=` ${Z}=\"${String(X)}\"`)}return Q}function Q4($,Q,Z,X){var Y;return Q===void 0?Y=x6(Z):Y=Q.length>0&&Q.charCodeAt(0)>I?` ${Q}`:Q,`<${$}${Y}${X}`}function q$($){var Q=$.tag,Z=$.type===B.htmlSelfClosing,X=$,Y=X.b,V=`</${Q}>`;if(!Z&&X.a)return{kind:\"literal\",literal:(X.h||V)+(X.e||\"\")};if(Z){var K=$;return K.a?{kind:\"literal\",literal:K.h||V}:K.m?{kind:\"literal\",literal:K.m}:{kind:\"literal\",literal:Q4(Q,Y,$.attrs,\" />\")}}var J=Q4(Q,Y,$.attrs,\">\"),G=X.children,U=G!=null&&G.length>0;if(X.c&&X.j!==void 0)return U?{kind:\"sandwich\",open:J,close:V}:{kind:\"literal\",literal:X.j};if(X.c&&!U)return{kind:\"literal\",literal:J+(X.e||\"\")+(X.h||V)};if(G!=null&&G.length>0){for(var W=\"\",z=0;z<G.length;z++){var H=G[z];if(H.type!==B.text)return{kind:\"sandwich\",open:J,close:V};W+=H.text}return{kind:\"literal\",literal:J+W+V}}var F=X.e||\"\";return F&&F.indexOf(V)!==-1?{kind:\"literal\",literal:J+F}:{kind:\"literal\",literal:J+F+V}}function F4($,Q,Z){var X=[],Y=$,V=Z;if(Y&&X.push(Y),Array.isArray(Q))for(var K=0;K<Q.length;K++)X.push(Q[K]);else Q!=null&&X.push(Q);V&&X.push(V);for(var J=[],G=0;G<X.length;G++){var U=X[G];typeof U==\"string\"&&J.length>0&&typeof J.at(-1)==\"string\"?J[J.length-1]=J.at(-1)+U:J.push(U)}return J}function m5($){return $==null||$.tagfilter!==!1}function H4($,Q,Z,X){var Y=Q($,Z,X);return Y===null?null:E6(Y)}function M4($){var Q=[];if(!$)return Q;for(var Z in $)Z.charCodeAt(0)===94&&Q.push({identifier:Z,footnote:$[Z].target});return Q}function m9($,Q,Z){if(Q.indexOf(\".\")===-1)return $?.[Q]||Z;for(var X=$,Y=Q.split(\".\"),V=0;V<Y.length&&(X=X?.[Y[V]],X!==void 0);)V++;return X||Z}function E6($){for(var Q=!1,Z=0;Z<$.length;Z++){var X=$.charCodeAt(Z);if(X<=I||X===T5||X===M9||X===Y0||X===l||X===A0||X===T0||X===J5||X===z5||X===Z0||X>=123){Q=!0;break}}if(!Q)return $;for(var Y=\"\",Z=0;Z<$.length;Z++){var X=$.charCodeAt(Z);if(X===M9&&Z+2<$.length){var V=$.charCodeAt(Z+1),K=$.charCodeAt(Z+2);if((V>=r&&V<=o||V>=h&&V<=D9||V>=V0&&V<=L5)&&(K>=r&&K<=o||K>=h&&K<=D9||K>=V0&&K<=L5)){Y+=$[Z]+$[Z+1]+$[Z+2],Z+=2;continue}}if(X>=55296&&X<=57343){if(X<=56319&&Z+1<$.length){var J=$.charCodeAt(Z+1);if(J>=56320&&J<=57343){Y+=encodeURI($[Z]+$[Z+1]),Z++;continue}}Y+=$[Z];continue}Y+=encodeURI($[Z])}return Y}function O4(...$){return $.filter(Boolean).join(\" \")}var g6=new Set([\"title\",\"textarea\",\"style\",\"xmp\",\"iframe\",\"noembed\",\"noframes\",\"script\",\"plaintext\"]),f9=/<(\\/?)(title|textarea|style|xmp|iframe|noembed|noframes|script|plaintext)(\\s|>|\\/)/gi;function W$($){return g6.has($.toLowerCase())}function D4($){return f9.lastIndex=0,f9.test($)}function z$($){return f9.lastIndex=0,$.replace(f9,(Q,Z,X,Y)=>`<${Z}${X}${Y}`)}function I9($,Q){var Z=$||{},X=Z.slugify,Y;if(X){var V=X;Y=K=>V(K,j5)}else Y=j5;return{disableAutoLink:Z.disableAutoLink,disableFrontmatter:Z.disableFrontmatter,disableParsingRawHTML:Z.disableParsingRawHTML,enforceAtxHeadings:Z.enforceAtxHeadings,evalUnserializableExpressions:Z.evalUnserializableExpressions,forceBlock:Z.forceBlock,forceInline:Q===void 0?Z.forceInline:Q,ignoreHTMLBlocks:Z.ignoreHTMLBlocks,optimizeForStreaming:Z.optimizeForStreaming,preserveFrontmatter:Z.preserveFrontmatter,sanitizer:Z.sanitizer||G5,slugify:Y,tagfilter:m5(Z)}}var h4=/^<([a-zA-Z][a-zA-Z0-9-]*)\\s[^>]*>/,m4=/^<[A-Z]/,D$=[\"script\",\"pre\",\"style\",\"textarea\"],N9=new Set(D$),C6=/<(?:pre|script|style|textarea)\\b/i,j4=/<(?:pre|script|style|textarea)\\b/iy,F$=/^(\\s{0,3}#[#\\s]|\\s{0,3}[-*+]\\s|\\s{0,3}\\d+\\.\\s|\\s{0,3}>\\s|\\s{0,3}```)/m,B4=/^<([a-z][^ >/\\n\\r]*) ?([^>]*?)>/im,u4=new Uint8Array(128);(()=>{for(var $=[Z0,P0,O0,b0,K5,A0,c0,Y0,T0,O9,g,A9,C5,L5],Q=0;Q<$.length;Q++)u4[$[Q]]=1})();var _4=/([a-zA-Z_][a-zA-Z0-9_-]*)=(?:\"([^\"]*)\"|'([^']*)')/g;function p4($){return N9.has($)}function d4($){return C6.test($)}function c4($,Q,Z){for(var X=Q,Y=Z;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;if(X>=Y)return!1;$.charCodeAt(X)===E0&&X++;for(var V=0;X<Y;){for(;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;if(X>=Y)break;if($.charCodeAt(X)===E0&&V>0){for(var K=X+1;K<Y&&($.charCodeAt(K)===I||$.charCodeAt(K)===w);)K++;if(K>=Y)return!0}if($.charCodeAt(X)===m0&&X++,X>=Y||$.charCodeAt(X)!==p)return!1;for(;X<Y&&$.charCodeAt(X)===p;)X++;for(X<Y&&$.charCodeAt(X)===m0&&X++,V++;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;if(X<Y)if($.charCodeAt(X)===E0)X++;else return!1}return V>0}var f6=/[\\u0000-\\u001F\\u007F]/g,h6={action:1,background:1,cite:1,data:1,formaction:1,href:1,longdesc:1,poster:1,src:1,\"xlink:href\":1},m6=/&#(x[0-9a-f]+|[0-9]+);?/gi;function u6($){return $.indexOf(\"&#\")===-1?$:$.replace(m6,(Q,Z)=>{var X=Z.charCodeAt(0)===V$||Z.charCodeAt(0)===K$?Number.parseInt(Z.slice(1),16):Number.parseInt(Z,10);return X>0&&X<=1114111?String.fromCodePoint(X):Q})}function p6($,Q,Z){if(Z&&Q.charCodeAt(0)===S5)return!1;var X=$.charCodeAt(0),Y=$.charCodeAt(1);if((X===n$||X===a$)&&(Y===i$||Y===o$))return!(Z&&Q===\"\");var V=$.toLowerCase();if(V===\"srcdoc\")return!0;if(V===\"style\")return/url\\s*\\(\\s*(javascript|vbscript|data:(?!image\\/))/i.test(Q);if(h6[V]===1){var K=u6(N5(Q));if(G5(K)===null)return!0;var J=K.replace(f6,\"\");return J!==K&&G5(J)===null}return!1}function A$($){return\"<\"+($.f?\"/\":\"\")+$.tag+$.g+$.b+($.n?$.r?\" />\":\"/>\":\">\")}function v4($,Q,Z,X){for(var Y=[],V=Q,K=0;K<X.length;K+=2){var J=X[K];if(J>V){var G=$.slice(V,J).trim();G&&Y.push(G)}V=X[K+1]}if(V<Z){var U=$.slice(V,Z).trim();U&&Y.push(U)}return Y.join(\" \")}function w5($,Q){if($.charCodeAt(Q)!==Y0)return null;let Z=Q+1,X=$.length,Y=!1;$.charCodeAt(Z)===j0&&(Z++,Y=!0);let V=Z,K=$.charCodeAt(Z);if(!(K>=V0&&K<=q0||K>=h&&K<=u))return null;for(;Z<X&&($.charCodeAt(Z)>=V0&&$.charCodeAt(Z)<=q0||$.charCodeAt(Z)>=h&&$.charCodeAt(Z)<=u||$.charCodeAt(Z)>=r&&$.charCodeAt(Z)<=o||$.charCodeAt(Z)===p);)Z++;let J=$.slice(V,Z);if(!J)return null;let G=J.charCodeAt(0),U=G>=h&&G<=u||J.indexOf(\"-\")!==-1,W=Z;for(;Z<X&&($.charCodeAt(Z)===I||$.charCodeAt(Z)===w||$.charCodeAt(Z)===g);)Z++;let z=$.slice(W,Z);if(Z===W&&Z<X){var H=$.charCodeAt(Z);if(H!==l&&H!==j0)return null}let F=Z,M={},j=!1;for(var _=null;Z<X;){let f=$.charCodeAt(Z);if(f===l){let y=_?v4($,F,Z,_):$.slice(F,Z);return{r:j,u:U,f:Y,b:y,q:_!=null,n:!1,g:z,attrs:M,end:Z+1,tag:J}}if(f===I||f===w||f===g){Z++;continue}if(f===j0&&Z+1<X&&$.charCodeAt(Z+1)===l){j=Z>F&&$.charCodeAt(Z-1)===I;let y=_?v4($,F,Z,_):$.slice(F,Z);return{r:j,u:U,f:Y,b:y,q:_!=null,n:!0,g:z,attrs:M,end:Z+2,tag:J}}var q=Z,D=$.charCodeAt(Z);if(!(D>=V0&&D<=q0||D>=h&&D<=u||D===O0||D===m0))return null;for(Z++;Z<X;){var A=$.charCodeAt(Z);if(A>=V0&&A<=q0||A>=h&&A<=u||A>=r&&A<=o||A===O0||A===Q5||A===m0||A===p)Z++;else break}for(var N=$.slice(q,Z),L=Z;Z<X&&($.charCodeAt(Z)===I||$.charCodeAt(Z)===w);)Z++;var O,P;if($.charCodeAt(Z)===K5){for(Z++;Z<X&&($.charCodeAt(Z)===I||$.charCodeAt(Z)===w);)Z++;var v=$.charCodeAt(Z);if(v===T5||v===f5){Z++;for(var b=Z;Z<X&&$.charCodeAt(Z)!==v;)Z++;if(Z>=X)return null;if(O=$.slice(b,Z),Z++,Z<X){var k=$.charCodeAt(Z);if(k!==I&&k!==w&&k!==g&&k!==l&&k!==j0)return null}P=Z}else if(v===S5){var x=1,b=Z;for(Z++;Z<X&&x>0;){var A=$.charCodeAt(Z);A===S5?x++:A===g9&&x--,Z++}O=$.slice(b,Z),P=Z}else{for(var b=Z;Z<X;){var T=$.charCodeAt(Z);if(T===I||T===w||T===l||T===g||T===T5||T===f5||T===K5||T===Y0||T===Z0)break;Z++}if(Z===b)return null;O=$.slice(b,Z),P=Z}}else O=\"\",P=L;p6(N,O,U)?(_===null&&(_=[]),_.push(q,P)):M[N]=O}return null}function q5($){var Q=$.indexOf(\"<\");if(Q===-1)return $;for(var Z=\"\",X=0,Y=!1;Q!==-1;){var V=w5($,Q);V?(V.q&&(Z+=$.slice(X,Q)+A$(V),X=V.end,Y=!0),Q=$.indexOf(\"<\",V.end)):Q=$.indexOf(\"<\",Q+1)}return Y?Z+$.slice(X):$}function d6($,Q,Z){if(!Z.optimizeForStreaming&&$.indexOf(\"[\")===-1)return!1;for(var X=0,Y=$.length,V=!1,K=!1;X<Y;){for(var J=$.indexOf(`\n`,X),G=J<0?Y:J,U=X,W=0;U<G&&W<4;)if($.charCodeAt(U)===I)W++,U++;else if($.charCodeAt(U)===w)W+=4,U++;else break;if(U>=G){V=!1,X=J<0?Y:J+1;continue}if(W<4){var z=$.charCodeAt(U);if(z===Z0||z===b0){for(var H=z,F=0,M=U;M<G&&$.charCodeAt(M)===H;)F++,M++;if(F>=3){var j=!0;if(H===Z0){for(var _=M;_<G;_++)if($.charCodeAt(_)===Z0){j=!1;break}}if(j){V=!1;for(var q=J<0?Y:J+1;q<Y;){for(var D=q,A=0;D<Y&&A<4;){var N=$.charCodeAt(D);if(N===I)A++,D++;else if(N===w)A+=4,D++;else break}if(A<4&&D<Y&&$.charCodeAt(D)===H){for(var L=0;D<Y&&$.charCodeAt(D)===H;)L++,D++;if(L>=F){for(;D<Y&&($.charCodeAt(D)===I||$.charCodeAt(D)===w);)D++;if(D>=Y||$.charCodeAt(D)===g){X=D>=Y?Y:D+1;break}}}for(;q<Y&&$.charCodeAt(q)!==g;)q++;q<Y&&q++}q>=Y&&(X=Y,K=!0);continue}}}}for(var O=U;O<G&&$.charCodeAt(O)===l;){O++,O<G&&$.charCodeAt(O)===I&&O++;for(var P=0;O<G&&P<4;)if($.charCodeAt(O)===I)P++,O++;else if($.charCodeAt(O)===w)P+=4,O++;else break;if(P>=4)break;V=!1}if(!V&&W<4&&O<G&&$.charCodeAt(O)===A0&&!(O+1<Y&&$.charCodeAt(O+1)===z5)){var v=l4($,O,Q);if(v){X=v,V=!1;continue}}var b=$.charCodeAt(U);if(b===V5&&W<4)V=!1;else if(W<4&&(b===p||b===P0||b===O0)){for(var k=U,x=0;k<G;){var T=$.charCodeAt(k);if(T===b)x++;else if(T!==I&&T!==w)break;k++}V=!(x>=3&&k>=G)}else V=!0;X=J<0?Y:J+1}return K}function l4($,Q,Z){let X=$.length;if($.charCodeAt(Q)!==A0)return null;let Y=Q+1<X&&$.charCodeAt(Q+1)===z5,V=Q+1;for(;V<X;){var K=$.charCodeAt(V);if(K===J5){V++;break}if(K===A0)return null;K===T0&&V+1<X&&V++,V++}if(V>X||$.charCodeAt(V-1)!==J5)return null;let J=$.slice(Q+1,V-1);if(J.length>999)return null;let G=d9(J);if(!G||V>=X||$.charCodeAt(V)!==m0)return null;V++;let U=!1;for(;V<X;){let f=$.charCodeAt(V);if(f===I||f===w)V++;else if(f===g&&!U)U=!0,V++;else break}if(Y){let f=$.indexOf(`\n`,V),y=f<0?X:f,C=$.slice(V,y).trim();return Z[G]={target:C,title:void 0},f<0?X:f+1}var W;if(V<X&&$.charCodeAt(V)===Y0){V++;for(var z=V;V<X&&$.charCodeAt(V)!==l&&$.charCodeAt(V)!==g;)$.charCodeAt(V)===T0&&V+1<X&&V++,V++;if(V>=X||$.charCodeAt(V)!==l)return null;W=$.slice(z,V),V++;for(var H=$.indexOf(`\n`,V),F=H<0?X:H,M=V;M<F&&($.charCodeAt(M)===I||$.charCodeAt(M)===w);)M++;if(M<F){if(M===V)return null;var j=$.charCodeAt(M);if(j!==T5&&j!==f5&&j!==F5)return null}}else{for(var z=V,_=0;V<X;){var K=$.charCodeAt(V);if(K===F5)_++;else if(K===H5){if(_===0)break;_--}else{if(K===I||K===w||K===g)break;K===T0&&V+1<X&&V++}V++}if(W=$.slice(z,V),!W)return null}for(;V<X&&($.charCodeAt(V)===I||$.charCodeAt(V)===w);)V++;var q=$.indexOf(`\n`,V),D=q<0?X:q,A,N=!1,L=V,O=V;if(V===D&&V<X)for(O=V+1;O<X&&($.charCodeAt(O)===I||$.charCodeAt(O)===w);)O++;if(O<X){var P=$.charCodeAt(O);if(P===T5||P===f5||P===F5){for(var v=P===F5?41:P,b=O+1,k=b;b<X;){var x=$.charCodeAt(b);if(x===v){for(var T=b+1;T<X&&($.charCodeAt(T)===I||$.charCodeAt(T)===w);)T++;(T>=X||$.charCodeAt(T)===g)&&(A=$.slice(k,b),N=!0,L=T<X?T+1:X);break}if(x===T0&&b+1<X){b+=2;continue}if(x===g&&b+1<X&&$.charCodeAt(b+1)===g)break;b++}if(!N&&O===V)return null}}if(N)return Z[G]||(Z[G]={target:N5(q9(W)),title:A===void 0?A:N5(q9(A))}),L;for(;V<D&&($.charCodeAt(V)===I||$.charCodeAt(V)===w);)V++;return V<D?null:(Z[G]||(Z[G]={target:N5(q9(W)),title:A}),q<0?X:q+1)}var X5=new Uint8Array(V4);for(X5[V5]|=M5,X5[l]|=M5,X5[p]|=M5|k5,X5[y5]|=M5,X5[P0]|=M5|k5,X5[O0]|=M5|k5,X5[Z0]|=M5|k5,X5[b0]|=M5|k5,X5[Y0]|=M5|k5,X5[A0]|=k5,X5[c0]|=k5,X5[E0]|=M5,B9=r;B9<=o;B9++)X5[B9]|=M5;var B9;function I4($){if($.indexOf(\"[\")<0&&$.indexOf(\"]\")<0)return!1;for(var Q=0;Q<$.length;Q++){if($.charCodeAt(Q)===T0){Q++;continue}if($.charCodeAt(Q)===A0||$.charCodeAt(Q)===J5)return!0}return!1}function d9($){for(var Q=$.length,Z=!0,X=Q>0,Y=0;Y<Q;Y++){var V=$.charCodeAt(Y);if(V===I){if(Z){X=!1;break}Z=!0}else if(V<33||V>126||V>=h&&V<=u){X=!1;break}else Z=!1}if(X&&!Z)return $;var K=$.replace(/\\s+/g,\" \").trim();return K.indexOf(\"\\u1E9E\")!==-1?K.replace(/\\u1E9E/g,\"ss\").toLowerCase():K.toLowerCase()}function R$($){return $<U9?X5[$]:$===c$?h5:0}function q9($){return $.indexOf(\"\\\\\")===-1?$:$.replace(/\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g,\"$1\")}var j$=null,B$=-1,c9=-1;function G0($,Q){if(Q>=B$&&Q<=c9&&$===j$)return c9;var Z=$.indexOf(`\n`,Q),X=Z<0?$.length:Z;return j$=$,B$=Q,c9=X,X}function e($,Q){let Z=G0($,Q);return Z<$.length?Z+1:Z}function v9($,Q,Z){for(;Q<Z;){let X=$.charCodeAt(Q);if(X!==I&&X!==w)break;Q++}return Q}function N4($,Q){let Z=e($,Q);for(;Z<$.length;){let X=G0($,Z);if(t0($,Z,X))return Z;Z=e($,Z)}return $.length}function l5($,Q,Z,X){let Y=0;for(;Q+Y<Z&&$.charCodeAt(Q+Y)===X;)Y++;return Y}var U0=0,Q0=0;function L0($,Q,Z){for(U0=0,Q0=0;Q+Q0<Z;){let X=$.charCodeAt(Q+Q0);if(X===w)U0+=4-U0%4;else if(X===I)U0++;else break;Q0++}}function t0($,Q,Z){return v9($,Q,Z)>=Z}function c6($,Q){if(!$)return $;var Z=Q.v||(Q.v=Object.create(null)),X=Z[$];if(X===void 0)return Z[$]=0,$;for(var Y=X+1,V=`${$}-${Y}`;Z[V]!==void 0;)Y++,V=`${$}-${Y}`;return Z[$]=Y,Z[V]=0,V}function l6($,Q,Z,X){let Y=G0($,Q);if(L0($,Q,Y),U0>3)return null;let V=Q+Q0;if($.charCodeAt(V)!==V5)return null;let K=l5($,V,Y,35);if(K<1||K>6||(V+=K,V<Y&&$.charCodeAt(V)!==I&&$.charCodeAt(V)!==w))return null;V=v9($,V,Y);for(var J=Y;J>V&&$.charCodeAt(J-1)===I;)J--;for(var G=J;J>V&&$.charCodeAt(J-1)===V5;)J--;if(J<G)if(J===V||$.charCodeAt(J-1)===I)for(;J>V&&$.charCodeAt(J-1)===I;)J--;else J=G;let U=$.slice(V,J),W=W9(U,!1,Z,X);return{node:{type:B.heading,level:K,children:W,id:\"\"},end:e($,Y)}}function r6($,Q,Z){var X=$.charCodeAt(Q);if(X!==K5&&X!==p)return!1;for(var Y=Q;Y<Z&&$.charCodeAt(Y)===X;)Y++;for(;Y<Z&&($.charCodeAt(Y)===I||$.charCodeAt(Y)===w);)Y++;return Y>=Z}function d5($,Q){let Z=G0($,Q);if(L0($,Q,Z),U0>3)return null;let X=Q+Q0,Y=$.charCodeAt(X);if(Y!==p&&Y!==P0&&Y!==O0)return null;let V=0;for(;X<Z;){let K=$.charCodeAt(X);if(K===Y)V++;else if(K!==I&&K!==w)return null;X++}return V<3?null:{node:{type:B.breakThematic},end:e($,Z)}}var P4=0,w4=0,R4=\"\";function o6($,Q,Z){let X=G0($,Q);if(L0($,Q,X),U0>3)return null;let Y=U0,V=Q0,K=Q+Q0,J=$.charCodeAt(K);if(J!==Z0&&J!==b0)return null;let G=l5($,K,X,J);if(G<3)return null;K+=G;let U=v9($,K,X),W=X;if(J===Z0){for(let C=U;C<X;C++)if($.charCodeAt(C)===Z0)return null}for(;W>U&&($.charCodeAt(W-1)===I||$.charCodeAt(W-1)===w);)W--;let z=$.slice(U,W),H=\"\",F=\"\",M=z.indexOf(\" \");M===-1?H=z:(H=z.slice(0,M),F=z.slice(M+1).trim()),H=q9(H);var j;if(F){_4.lastIndex=0;for(var _;(_=_4.exec(F))!=null;)j||(j={}),j[_[1]]=_[2]===void 0?_[3]:_[2]}let q=e($,X),D=$.length,A=$.length;var N;J===P4&&G===w4?N=R4:(N=String.fromCharCode(J).repeat(G),P4=J,w4=G,R4=N);for(var L=q;L<$.length;){var O=$.indexOf(N,L);if(O===-1)break;for(var P=O,v=0;P>0&&v<4&&$.charCodeAt(P-1)===I;)P--,v++;if(v<=3&&(P===0||$.charCodeAt(P-1)===g)){for(var b=O+G;b<$.length&&$.charCodeAt(b)===J;)b++;var k=G0($,b);if(t0($,b,k)){D=P,A=e($,k);break}}L=O+1}var x;if(Y===0)x=D>q&&$.charCodeAt(D-1)===g?$.slice(q,D-1):$.slice(q,D);else{x=\"\";for(var T=q;T<D;){var f=G0($,T);L0($,T,f);var y=Math.min(Q0,Y);x+=`${$.slice(T+y,f)}\n`,T=e($,f)}x.length>0&&x.charCodeAt(x.length-1)===g&&(x=x.slice(0,-1))}return{node:{type:B.codeBlock,lang:H||void 0,text:x,infoString:F||void 0,attrs:j},end:A}}function b4($,Q,Z){for(var X=0,Y=Q;Y<Z&&X<4;)$.charCodeAt(Y)===w?X+=4-X%4:X++,Y++;if(X<4)return\"\";for(var V=\"\",K=4;K<X;K++)V+=\" \";return V+$.slice(Y,Z)}function i6($,Q){let Z=G0($,Q);if(L0($,Q,Z),U0<4)return null;let X=\"\",Y=Q;for(;Y<$.length;){let H=G0($,Y);if(L0($,Y,H),t0($,Y,H)){for(var V=`${b4($,Y,H)}\n`,K=e($,H);K<$.length;){var J=G0($,K);if(t0($,K,J)){V+=`${b4($,K,J)}\n`,K=e($,J);continue}L0($,K,J),U0>=4&&(X+=V,Y=K);break}if(Y!==K)break;continue}if(U0<4)break;let F=0,M=0;var G=0;for(let j=Y;j<H&&M<4;j++){if($.charCodeAt(j)===w){var U=4-M%4;M+U>4&&(G=M+U-4),M+=U}else M++;F++}var W=\"\";if(G>0)for(var z=0;z<G;z++)W+=\" \";W+=$.slice(Y+F,H),X+=`${W}\n`,Y=e($,H)}for(;X.length>0&&X.charCodeAt(X.length-1)===g;)X=X.slice(0,-1);return X?{node:{type:B.codeBlock,lang:void 0,text:X,infoString:void 0,attrs:void 0},end:Y}:null}function a6($,Q,Z,X){let Y=G0($,Q);if(L0($,Q,Y),U0>3)return null;let V=Q+Q0;if($.charCodeAt(V)!==l)return null;let K=\"\",J=Q,G,U=!1,W=!1,z=!1;for(;J<$.length;){let S=G0($,J);L0($,J,S);let s=J+Q0;if($.charCodeAt(s)===l){let X0=s+1;var H=U0+1,F=!1;if(X0<S){var M=$.charCodeAt(X0);M===I?(X0++,H++,F=!0):M===w&&(F=!0)}for(var j=\"\",_=!1,q=X0;q<S;q++)if($.charCodeAt(q)===w){_=!0;break}if(_){var D=H;if(F&&X0<S&&$.charCodeAt(X0)===w){for(var A=4-D%4,N=0;N<A-1;N++)j+=\" \";D+=A,X0++}for(var L=X0;L<S;L++)if($.charCodeAt(L)===w){for(var O=4-D%4,P=0;P<O;P++)j+=\" \";D+=O}else j+=$[L],D++}else j=$.slice(X0,S);if(!(K||G)){let I0=j.match(/^\\[!([A-Za-z]+)\\]\\s*$/);if(I0){G=I0[1].toUpperCase(),J=e($,S);continue}}K+=`${j}\n`;var v=j.trimStart();v.startsWith(\"```\")||v.startsWith(\"~~~\")?z=!z:(j.startsWith(\" \")||j.startsWith(\"\t\"))&&(z=!0),W=v.length>0,J=e($,S)}else if(K&&!t0($,J,S)&&W){if(U0<4){var b=J+Q0,k=b<S?$.charCodeAt(b):0;if(k===V5||k===l||k===Z0||k===b0||k===Y0||(k===p||k===P0||k===O0)&&d5($,J)||(k===p||k===P0||k===y5)&&b+1<S&&($.charCodeAt(b+1)===I||$.charCodeAt(b+1)===w))break;if(k>=r&&k<=o){for(var x=b;x<S&&$.charCodeAt(x)>=r&&$.charCodeAt(x)<=o;)x++;if(x<S&&($.charCodeAt(x)===Q5||$.charCodeAt(x)===H5))break}}if(z)break;K+=`${$.slice(J,S)}\n`,U=!0,J=e($,S)}else break}if(!(K||G))return null;var{inBlockQuote:T,l:f}=Z;Z.inBlockQuote=!0,U&&(Z.l=!0);var y=Z.i;Z.i=y||!t0($,J,$.length);let C=c5(K||\"\",Z,X);return Z.i=y,Z.inBlockQuote=T,Z.l=f,{node:{type:B.blockQuote,children:C,alert:G||void 0},end:J}}function r4($,Q,Z){for(var X=0,Y=Q;Y<Z;Y++)$.charCodeAt(Y)===w?X+=4-X%4:X++;return X}function u5($,Q,Z){if(L0($,Q,Z),U0>3)return null;var X=Q+Q0;if(X>=Z)return null;var Y=$.charCodeAt(X),V=U0,K=X,J=X;if(Y===p||Y===P0||Y===y5){if(K=X+1,K<Z&&$.charCodeAt(K)!==I&&$.charCodeAt(K)!==w&&$.charCodeAt(K)!==g)return null}else if(Y>=r&&Y<=o){for(;J<Z&&J-X<9;){var G=$.charCodeAt(J);if(G<r||G>o)break;J++}if(J>X&&J<Z){var U=$.charCodeAt(J);if(U===Q5||U===H5){if(K=J+1,K<Z&&$.charCodeAt(K)!==I&&$.charCodeAt(K)!==w&&$.charCodeAt(K)!==g)return null}else return null}else return null}else return null;var W=K,z=r4($,Q,K),H=0,F=W,M=z;if(W>=Z)return{ordered:Y>=r&&Y<=o,marker:Y>=r&&Y<=o?$[J]:$[X],start:Y>=r&&Y<=o?Number.parseInt($.slice(X,J),10):void 0,contentStart:W,contentCol:z+1,markerCol:V,isEmpty:!0};for(;F<Z&&($.charCodeAt(F)===I||$.charCodeAt(F)===w);){if($.charCodeAt(F)===w){var j=4-M%4;M+=j}else M++;F++,H++}var _=F>=Z,q=M-z;return _||q>4?(M=z+1,F=W+1,H=1):H===0&&(M=z+1,F=W,H=1),{ordered:Y>=r&&Y<=o,marker:Y>=r&&Y<=o?$[J]:$[X],start:Y>=r&&Y<=o?Number.parseInt($.slice(X,J),10):void 0,contentStart:F,contentCol:M,markerCol:V,isEmpty:_}}var G9=0;function L4($,Q,Z,X){var Y=0,V=Q;for(G9=0;V<Z&&Y<X;){var K=$.charCodeAt(V);if(K===w){var J=4-Y%4;if(Y+J>X){G9=Y+J-X,V++,Y=X;break}Y+=J}else if(K===I)Y++;else break;V++}return V}function T4($,Q,Z,X){var Y=G0($,Q),V=u5($,Q,Y);if(!V)return null;var K=[],J=Q,G=V.contentCol,U=\"\",W=V.isEmpty,z=!1,H=!1;if(!V.isEmpty){for(var F=!1,M=V.contentStart;M<Y;M++)if($.charCodeAt(M)===w){F=!0;break}if(F){var j=\"\",_=r4($,Q,V.contentStart),q=_-V.contentCol;if(q>0)for(var D=0;D<q;D++)j+=\" \";for(var A=V.contentStart;A<Y;A++)if($.charCodeAt(A)===w){for(var N=4-_%4,L=0;L<N;L++)j+=\" \";_+=N}else j+=$[A],_++;U=`${j}\n`}else U=`${$.slice(V.contentStart,Y)}\n`}for(J=e($,Y);J<$.length;){var O=G0($,J);L0($,J,O);var P=$.charCodeAt(J+Q0);if(U0<G&&(P===p||P===P0||P===O0)&&U0<=3&&d5($,J))break;var v=u5($,J,O);if(v&&v.ordered===V.ordered&&v.marker===V.marker&&v.markerCol<G){K.push({contentCol:G,raw:U,hasBlankAfter:z,isEmpty:W}),z&&(H=!0),G=v.contentCol,W=v.isEmpty,z=!1,U=v.isEmpty?\"\":`${$.slice(v.contentStart,O)}\n`,J=e($,O);continue}if(t0($,J,O)){var b=L4($,J,O,G);if(G9>0||b<O){for(var k=\"\",x=0;x<G9;x++)k+=\" \";U+=`${k+$.slice(b,O)}\n`}else U+=`\n`;J=e($,O);for(var T=!1,f=0;f<U.length;f++){var y=U.charCodeAt(f);if(y!==g&&y!==I5&&y!==I&&y!==w){T=!0;break}}if(W&&!T)if(J<$.length){var C=G0($,J),E=u5($,J,C);if(!E||E.ordered!==V.ordered||E.marker!==V.marker)break;z=!0}else break;if(J<$.length){var S=G0($,J);L0($,J,S);var s=$.charCodeAt(J+Q0);if((s===p||s===P0||s===O0)&&U0<=3&&d5($,J))break;var X0=u5($,J,S);if(X0&&X0.ordered===V.ordered&&X0.marker===V.marker&&X0.markerCol<G){z=!0;continue}if(!t0($,J,S)&&U0<G)break}continue}if(U0>=G){var I0=L4($,J,O,G);if(G9>0){for(var d=\"\",u0=G,B0=0;B0<G9;B0++)d+=\" \",u0++;for(var W0=I0;W0<O;W0++)if($.charCodeAt(W0)===w){for(var H0=4-u0%4,D0=0;D0<H0;D0++)d+=\" \";u0+=H0}else d+=$[W0],u0++;U+=`${d}\n`}else U+=`${$.slice(I0,O)}\n`;J=e($,O);continue}for(var m=!1,c=0;c<U.length;c++){var K0=U.charCodeAt(c);if(K0!==g&&K0!==I5&&K0!==I&&K0!==w){m=!0;break}}if(!z&&m&&!W){var y0=J+Q0,S0=$.charCodeAt(y0),_0=S0===V5||S0===l||S0===Y0||S0===Z0||S0===b0||(S0===p||S0===P0||S0===O0||S0===y5)&&(d5($,J)!=null||u5($,J,O)!=null)||S0>=r&&S0<=o&&u5($,J,O)!=null;if(!_0){U+=`\u001e${$.slice(y0,O)}\n`,J=e($,O);continue}}break}if(K.push({contentCol:G,raw:U,hasBlankAfter:z,isEmpty:W}),K.length===0)return null;var a=H;if(!a)for(var w0=0;w0<K.length;w0++){if(K[w0].hasBlankAfter&&w0<K.length-1){a=!0;break}if(!K[w0].isEmpty){for(var z0=K[w0].raw,F0=z0.length,M0=0,f0=!1,v0=!1,k0=!1,h0=!1,p0=0,n=0,N0=-1;M0<F0;){var i=z0.indexOf(`\n`,M0);if(i<0&&(i=F0),h0){L0(z0,M0,i);for(var x0=z0.slice(M0+Q0,i),R=0;R<x0.length&&x0.charCodeAt(R)===p0;)R++;R>=n&&x0.slice(R).trim()===\"\"&&(h0=!1),M0=i<F0?i+1:F0;continue}if(t0(z0,M0,i)){N0>=0?k0=!0:f0&&(v0=!0),M0=i<F0?i+1:F0;continue}if(L0(z0,M0,i),N0>=0){if(U0>=N0){M0=i<F0?i+1:F0;continue}var J0=u5(z0,M0,i);if(J0&&J0.markerCol<N0&&J0.contentCol<=N0){M0=i<F0?i+1:F0;continue}if(J0){M0=i<F0?i+1:F0;continue}N0=-1,k0&&(v0=!0,k0=!1)}var i0=z0.slice(M0+Q0,i),W5=i0.charCodeAt(0);if((W5===Z0||W5===b0)&&U0<=3){for(var $0=0;$0<i0.length&&i0.charCodeAt($0)===W5;)$0++;if($0>=3){if(v0&&f0){a=!0;break}h0=!0,p0=W5,n=$0,f0=!0,M0=i<F0?i+1:F0;continue}}var C0=U0<=3?u5(z0,M0,i):null;if(C0&&f0){if(v0){a=!0;break}N0=C0.contentCol,k0=!1,M0=i<F0?i+1:F0,f0=!0;continue}if(v0){a=!0;break}f0=!0,M0=i<F0?i+1:F0}if(a)break}}for(var t=[],d0=0;d0<K.length;d0++){for(var a0=K[d0],$5=a0.raw,l0=$5.length;l0>0&&$5.charCodeAt(l0-1)===g;)l0--;var n0=l0<$5.length?$5.slice(0,l0):$5,r5=null;if(n0.length>=3&&n0.charCodeAt(0)===A0){var x5=n0[1];(x5===\" \"||x5===\"x\"||x5===\"X\")&&n0.charCodeAt(2)===J5&&(r5={type:B.gfmTask,completed:x5===\"x\"||x5===\"X\"},n0=n0.slice(3))}var R0;if(a0.isEmpty&&n0.trim()===\"\")R0=[];else if(a){var o5=Z.inList;Z.inList=!0;var R9=Z.i;Z.i=R9||d0!==K.length-1,R0=c5(n0,Z,X),Z.i=R9,Z.inList=o5}else{var b5=Z.inList;Z.inList=!0;var i5=Z.i;if(Z.i=i5||d0!==K.length-1,R0=c5(n0,Z,X),Z.i=i5,Z.inList=b5,R0.length===1&&R0[0].type===B.paragraph)R0=R0[0].children;else if(Z.p){var E5=[];Z.p.push({src:R0,dest:E5,unwrap:!0}),R0=E5}else{for(var B5=[],Z5=0;Z5<R0.length;Z5++)if(R0[Z5].type===B.paragraph)for(var _5=R0[Z5].children,V9=0;V9<_5.length;V9++)B5.push(_5[V9]);else B5.push(R0[Z5]);R0=B5}}if(r5){var a5=[r5,{type:B.text,text:\" \"}];if(Z.p)Z.p.push({src:R0,dest:a5,unwrap:!1});else for(var A5=0;A5<R0.length;A5++)a5.push(R0[A5]);t.push(a5)}else t.push(R0)}return{node:{type:V.ordered?B.orderedList:B.unorderedList,start:V.ordered?V.start:void 0,items:t},end:J}}var r9=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 P5($,Q,Z){let X={};for(let[K,J]of Object.entries($)){let G=K.toLowerCase();if(G===\"style\"&&typeof J==\"string\"){let U={},W=[],z=0,H=0;for(let M=0;M<J.length;M++){let j=J.charCodeAt(M);j===F5?z++:j===H5?z--:j===j9&&z===0&&(W.push(J.slice(H,M)),H=M+1)}H<J.length&&W.push(J.slice(H));let F=!1;W.forEach(M=>{let j=M.indexOf(\":\");if(j===-1)return;let _=M.slice(0,j).trim(),q=M.slice(j+1).trim();if(_&&q){if(/url\\s*\\(\\s*(javascript|vbscript|data:(?!image\\/))/i.test(q)){F=!0;return}let D=_.indexOf(\"-\")===-1?_:_.replace(/-([a-z])/g,(A,N)=>N.toUpperCase());U[D]=q}}),!F&&Object.keys(U).length>0&&(X[K]=U)}else if((G===\"href\"||G===\"src\")&&Z?.sanitizer){let U=Z.sanitizer(J,Q,G);U!=null&&(X[K]=U)}else if(J===\"\")X[K]=!0;else if(J.length>=2&&J.charCodeAt(0)===S5&&J.charCodeAt(J.length-1)===g9){var Y=J.slice(1,-1);if(Y.length>0){var V=Y.charCodeAt(0);if(V===A0||V===S5)try{X[K]=JSON.parse(Y);continue}catch{}}if(Y===\"true\"){X[K]=!0;continue}if(Y===\"false\"){X[K]=!1;continue}if(Z?.evalUnserializableExpressions)try{X[K]=(0,eval)(`(${Y})`);continue}catch{}X[K]=Y}else X[K]=J}return X}function p5($,Q,Z){let X=Q.length;if(X===0)return Z;var Y=Q.charCodeAt(0),V=Y>=h&&Y<=u||Y>=V0&&Y<=q0;if(!V){for(var K=String.fromCharCode(Y),J=$.length-X,G=Z;G<=J;){var U=$.indexOf(K,G);if(U===-1||U>J)return-1;for(var W=!0,z=1;z<X;z++){var H=$.charCodeAt(U+z),F=Q.charCodeAt(z);if(H>=h&&H<=u&&(H+=U5),F>=h&&F<=u&&(F+=U5),H!==F){W=!1;break}}if(W)return U;G=U+1}return-1}Y>=h&&Y<=u&&(Y+=U5);for(let j=Z;j<=$.length-X;j++){var M=$.charCodeAt(j);if(M>=h&&M<=u&&(M+=U5),M!==Y)continue;let _=!0;for(let q=1;q<X;q++){let D=$.charCodeAt(j+q),A=Q.charCodeAt(q);if(D>=h&&D<=u&&(D+=U5),A>=h&&A<=u&&(A+=U5),D!==A){_=!1;break}}if(_)return j}return-1}function n6($,Q,Z){let X=Q.length;var Y=Q.charCodeAt(0);Y>=h&&Y<=u&&(Y+=U5);for(let K=Math.min(Z,$.length-X);K>=0;K--){var V=$.charCodeAt(K);if(V>=h&&V<=u&&(V+=U5),V!==Y)continue;let J=!0;for(let G=1;G<X;G++){let U=$.charCodeAt(K+G),W=Q.charCodeAt(G);if(U>=h&&U<=u&&(U+=U5),W>=h&&W<=u&&(W+=U5),U!==W){J=!1;break}}if(J)return K}return-1}var o9=-1;function _$($,Q,Z){let X=Z.toLowerCase(),Y=`<${X}`,V=`</${X}`,K=1,J=Q,G=$.length;for(o9=-1;J<G&&K>0;){let z=p5($,Y,J),H=p5($,V,J);if(H===-1)return-1;if(z!==-1&&z<H){let F=w5($,z);F?(F.tag.toLowerCase()===X&&!F.f&&!F.n&&!Q9(F.tag)&&K++,J=F.end):J=z+1}else{var U=H+V.length,W=U<G?$.charCodeAt(U):62;if((W===l||W===I||W===w||W===g)&&(K--,K===0)){o9=H;let F=H+V.length;for(;F<G&&$.charCodeAt(F)!==l;)F++;return F+1}J=H+1}}return-1}function o4($,Q,Z,X){if(X.ignoreHTMLBlocks||X.disableParsingRawHTML)return null;var Y=G0($,Q);if(L0($,Q,Y),U0>3&&!Z.inHTML)return null;var V=Q+Q0;if($.charCodeAt(V)!==Y0)return null;var K=$.indexOf(\">\",V+1);if(K!==-1&&K<Y){var J=$.slice(V+1,K);if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(J)||/^[^\\s@]+@[^\\s@]+$/.test(J))return null}var G=s6($,V);if(G>=1&&G<=5){var U=$.length;if(G===1){for(var W=$.length,z=0;z<D$.length;z++){var H=p5($,`</${D$[z]}>`,V);H>=0&&H<W&&(W=H)}if(W<$.length){var F=$.indexOf(\">\",W);U=F>=0?e($,F+1):$.length}}else{var M=G===2?\"-->\":G===3?\"?>\":G===4?\">\":\"]]>\",j=$.indexOf(M,V);j>=0&&(U=e($,j+M.length))}var _=$.slice(V,U);if(G>=2)return{node:{type:B.htmlComment,text:_,s:!1,raw:!0},end:U};var q=\"div\",D=_.match(/^<\\/?([a-zA-Z][a-zA-Z0-9-]*)/);D&&(q=D[1]);var A=w5($,V),N={},L;A&&!A.f&&(N=P5(A.attrs,q,X),L=A.g+A.b);var O=[],P=q.toLowerCase(),v=`</${P}`,b=p5(_,v,0),k=\"\",x,T,f;if(A?.f){f=_.slice(0,A.end-V);for(var y=_.slice(A.end-V);y.length>0&&y.charCodeAt(y.length-1)===g;)y=y.slice(0,-1);y&&(T=q5(y))}else if(A&&!A.f){var C=A.end-V;if(b===-1){for(var E=_;E.length>0&&E.charCodeAt(E.length-1)===g;)E=E.slice(0,-1);x=q5(E)}else{var S=C;_.charCodeAt(S)===g&&S++;for(var s=b;s>S;){var X0=_.charCodeAt(s-1);if(X0!==I&&X0!==w&&X0!==g&&X0!==I5)break;s--}var I0=_.slice(S,s);I0&&(T=q5(I0));for(var d=_.slice(b);d.length>0&&d.charCodeAt(d.length-1)===g;)d=d.slice(0,-1);f=q5(d),k=_.slice(C,b).trim()}}var u0=A?A.f:!1;return{node:{type:B.htmlBlock,tag:q,attrs:N,b:L,children:O,e:T,h:f,j:x,text:k,c:!0,a:u0},end:U}}if(G===6||G===7){var B0=N4($,Q),W0=B0<$.length?B0:$.length,H0=$.slice(V,W0),D0=B0<$.length?e($,B0):$.length,m=w5($,V);if(m){var c=m.tag,K0=c.toLowerCase(),y0=m.f;if(y0){var S0=$.slice(m.end,W0);return{node:{type:B.htmlBlock,tag:c,attrs:{},children:[],h:$.slice(V,m.end),e:S0?q5(S0):void 0,text:S0,c:!0,a:!0},end:D0}}if(m.n||Q9(c))return{node:{type:B.htmlBlock,tag:c,attrs:P5(m.attrs,c,X),b:m.g+m.b,children:[],text:\"\",c:!1,a:!1},end:m.end<$.length&&$.charCodeAt(m.end)===g?m.end+1:m.end};var _0=Z.d||0,a=$.slice(V,W0),w0=-1,z0=-1,F0=!1;if(_0<10){for(var M0=`</${K0}`,f0=m.end-V,v0=1,k0=f0;k0<a.length&&v0>0;){var h0=p5(a,`<${K0}`,k0),p0=p5(a,M0,k0);if(p0===-1)break;if(h0!==-1&&h0<p0){var n=h0+K0.length+1;if(n<a.length){var N0=a.charCodeAt(n);(N0===I||N0===w||N0===g||N0===l||N0===j0)&&v0++}k0=h0+1}else{var i=p0+M0.length;if(i<a.length){var x0=a.charCodeAt(i);if((x0===l||x0===I||x0===w||x0===g)&&(v0--,v0===0)){w0=p0;for(var R=i;R<a.length&&a.charCodeAt(R)!==l;)R++;z0=R+1;break}}else if(v0--,v0===0){w0=p0,z0=a.length;break}k0=p0+1}}if(w0===-1&&!m.f&&(G===6||m.u)){var J0=_$($,m.end,K0);if(J0!==-1){for(var i0=o9,W5=m.end,$0=!1,C0=!1,t=!1,d0=0,a0=!1,$5=!1,l0=W5;l0<i0;){var n0=$.charCodeAt(l0);if(n0===g)$5&&($0=!0),a0||d0++,$5=!0,l0++;else if(n0===I||n0===w)l0++;else{if(!a0&&(a0=!0,d0>=2&&n0===Y0)){t=!0;break}if($5=!1,n0===Y0){var r5=$.charCodeAt(l0+1)|32;if((r5===E9||r5===Y$||r5===s5)&&(j4.lastIndex=l0,j4.test($))){C0=!0;break}}l0++}}if($0&&!t&&!C0){var x5=G0($,J0);W0=x5,D0=e($,x5),a=$.slice(V,W0),H0=$.slice(V,W0),w0=i0-V,z0=J0-V,F0=!0}}}}var R0=m.b.indexOf(`\n`)!==-1||m.g.indexOf(`\n`)!==-1,o5=!1;if(w0!==-1){var R9=a.slice(z0).trim();o5=R9.length===0}var b5=!1,i5=W0,E5=D0;if(w0!==-1){var B5=V+z0,Z5=G0($,B5-1);if(B5<Z5){for(var _5=B5;_5<Z5&&($.charCodeAt(_5)===I||$.charCodeAt(_5)===w);)_5++;if(_5<Z5&&$.charCodeAt(_5)===Y0){var V9=w5($,_5);V9&&!V9.f&&(b5=!0,i5=B5,E5=B5,o5=!0)}}if(!b5){var a5=e($,Z5);if(a5<W0){for(var A5=a5;A5<W0&&($.charCodeAt(A5)===I||$.charCodeAt(A5)===w);)A5++;if(A5<W0&&$.charCodeAt(A5)===Y0){var $6=w5($,A5);$6&&(b5=!0,i5=Z5,E5=a5,o5=!0)}}}if(!b5&&Z.inHTML){b5=!0,i5=Z5,E5=e($,Z5);var Z6=$.slice(B5,Z5).trim();o5=Z6.length===0}}var K9=[],Y5=\"\";if(w0!==-1){Y5=a.slice(m.end-V,w0);var J9=Y5.trim();if(J9){var{inline:Q6,inHTML:X6,d:Y6}=Z;Z.inHTML=!0,Z.d=_0+1;var V6=K0===\"p\";if(V6)Z.inline=!0,K9=W9(J9,!1,Z,X);else{var S$=Y5.indexOf(`\n\n`)!==-1,k$=F$.test(J9),a9=B4.test(J9),K6=S$||k$||Z.inHTML&&a9,J6=Y5.length>=2&&Y5.charCodeAt(0)===g&&Y5.charCodeAt(Y5.length-1)===g&&!S$;J6&&!k$&&!a9?K9=[{type:B.text,text:J9}]:K6||a9?(Z.inline=!1,K9=c5(Y5,Z,X)):(Z.inline=!0,K9=W9(J9,!1,Z,X))}Z.inline=Q6,Z.inHTML=X6,Z.d=Y6}}var x$=!1;if(G===6&&w0!==-1&&!Z.inHTML&&!R0){var U6=/<[a-zA-Z][^>]*>/.test(Y5),G6=Y5.indexOf(`\n\n`)!==-1||F$.test(Y5);U6&&!G6&&(x$=!0)}var q6=!F0&&(Z.inHTML||G===7||R0||!o5||x$);if(q6){var z9,v5,E$=!1;if(w0!==-1&&b5){var g$=!1;if(Z.inHTML&&z0<a.length){for(var b9=z0;b9<a.length&&a.charCodeAt(b9)!==g;)b9++;var n9=a.slice(z0,b9).trim();g$=n9.length>1&&n9.charCodeAt(0)===Y0&&n9.charCodeAt(1)!==j0}v5=g$?a.slice(m.end-V):Y5,E$=!0}else(G===7||Z.inHTML)&&w0!==-1?(v5=a.slice(m.end-V),v5.charCodeAt(0)===g&&(v5=v5.slice(1))):b5?z9=$.slice(V,i5):R0?z9=H0:(v5=a.slice(m.end-V),v5.charCodeAt(0)===g&&(v5=v5.slice(1)));var C$=z9!==void 0,s9=q5(z9===void 0?v5||\"\":z9),f$={type:B.htmlBlock,tag:c,attrs:P5(m.attrs,c,X),b:m.g+m.b,children:K9,e:C$?void 0:s9,j:C$?s9:void 0,text:s9,c:!0,a:!1};return E$&&(f$.x=!0),{node:f$,end:E5}}var h$=q5(Y5);return{node:{type:B.htmlBlock,tag:c,attrs:P5(m.attrs,c,X),b:m.g+m.b,children:K9,e:F0?void 0:h$,text:h$,c:!1,a:!1},end:E5}}var L9=H0.match(/^<(\\/?)([a-zA-Z][a-zA-Z0-9-]*)/),W6=L9?L9[2]:\"div\",t9=L9?L9[1]===\"/\":!1,e9,m$,u$,T9=\"\";if(t9){var $$=H0.indexOf(\">\");$$===-1?e9=H0:(e9=H0.slice(0,$$+1),T9=H0.slice($$+1),T9&&(m$=q5(T9)))}else u$=q5(H0);return{node:{type:B.htmlBlock,tag:W6,attrs:{},children:[],e:m$,h:e9,j:u$,text:t9?T9:H0,c:!0,a:t9},end:D0}}var r0=w5($,V);if(!r0)return null;var g5=r0.tag,Z$=g5.toLowerCase(),p$=g5.charCodeAt(0),y9=p$>=h&&p$<=u;if(!(y9||r9.has(Z$)||N9.has(Z$)||Z$.includes(\"-\")))return null;if(r0.f)return{node:{type:B.htmlSelfClosing,tag:g5,attrs:{},h:$.slice(V,r0.end),a:!0},end:r0.end};var n5=_$($,r0.end,g5),F9=[];if(n5!==-1){var z6=o9,S9=$.slice(r0.end,z6),k9=S9.trim();if(k9){var F6=S9.indexOf(`\n\n`)!==-1,H6=F$.test(k9),M6=B4.test(k9),O6=Z.inline,D6=Z.inHTML,A6=Z.d;Z.inHTML=!0,Z.d=(Z.d||0)+1,F6||H6||M6?(Z.inline=!1,F9=c5(S9,Z,X)):(Z.inline=!0,F9=W9(k9,!1,Z,X)),Z.inline=O6,Z.inHTML=D6,Z.d=A6}var j6=G0($,n5),B6=$.slice(n5,j6).trim(),Q$=B6?n5:e($,n5),d$=y9?$.slice(V,n5):$.slice(V,Q$),BZ=y9?n5:Q$;return{node:{type:B.htmlBlock,tag:g5,attrs:P5(r0.attrs,g5,X),b:r0.g+r0.b,children:F9,j:q5(d$),text:y9?S9:d$,c:!0,a:!1},end:Q$}}var H9=N4($,r0.end),_6=H9<$.length?e($,H9):H9,X$=$.slice(r0.end,H9);if(X$.trim()){var{inline:v6,inHTML:I6,d:N6}=Z;Z.inline=!1,Z.inHTML=!0,Z.d=(Z.d||0)+1,F9=c5(X$,Z,X),Z.inline=v6,Z.inHTML=I6,Z.d=N6}var P6=$.slice(r0.end,H9);return{node:{type:B.htmlBlock,tag:g5,attrs:P5(r0.attrs,g5,X),b:r0.g+r0.b,children:F9,e:q5(P6),text:X$,c:!0,a:!1},end:_6}}function s6($,Q){if($.charCodeAt(Q)!==Y0)return 0;var Z=Q+1,X=$.length;if($.charCodeAt(Z)===c0&&$.charCodeAt(Z+1)===p&&$.charCodeAt(Z+2)===p)return 2;if($.charCodeAt(Z)===t5)return 3;if($.charCodeAt(Z)===c0){var Y=$.charCodeAt(Z+1);if(Y>=h&&Y<=u)return 4;if($.slice(Z+1,Z+8)===\"[CDATA[\")return 5}for(var V=$.charCodeAt(Z)===j0,K=V?Z+1:Z,J=K;J<X;){var G=$.charCodeAt(J);if(G>=h&&G<=u||G>=V0&&G<=q0||G>=r&&G<=o||G===p)J++;else break}if(J===K)return 0;var U=$.slice(K,J);if(N9.has(U.toLowerCase())){if(V)return 0;var W=$.charCodeAt(J);return W===I||W===w||W===l||W===g||J>=X?1:0}if(r9.has(U.toLowerCase())){if(V){for(var z=J;z<X&&($.charCodeAt(z)===I||$.charCodeAt(z)===w);)z++;return z<X&&$.charCodeAt(z)===l?6:0}var H=J<X?$.charCodeAt(J):-1;return H===I||H===w||H===l||H===g||H===j0||H===-1?6:0}if(V){for(var F=J;F<X&&($.charCodeAt(F)===I||$.charCodeAt(F)===w);)F++;if(F<X&&$.charCodeAt(F)===l){var M=G0($,Q),j=$.slice(F+1,M).trim();if(j===\"\")return 7}}else{var _=G0($,Q),q=w5($,Q);if(q&&q.end<=_){var D=$.slice(q.end,_).trim();if(D===\"\")return 7}}return 0}function y4($,Q,Z){for(var X=0,Y=$.length;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;for(;Y>X&&($.charCodeAt(Y-1)===I||$.charCodeAt(Y-1)===w);)Y--;X<Y&&$.charCodeAt(X)===E0&&X++,Y>X&&$.charCodeAt(Y-1)===E0&&(Y-2<X||$.charCodeAt(Y-2)!==T0)&&Y--;for(var V=[],K=X,J=!1,G=[],U=X;U<Y;){var W=$.charCodeAt(U);if(W===T0&&U+1<Y){$.charCodeAt(U+1)===E0?(J||(J=!0,G=[]),G.push($.slice(K,U)),G.push(\"|\"),U+=2,K=U):U+=2;continue}if(W===Z0){for(var z=0;U<Y&&$.charCodeAt(U)===Z0;)z++,U++;for(var H=!1;U<Y&&!H;){for(var F=0;U<Y&&$.charCodeAt(U)===Z0;)F++,U++;F===z?H=!0:F===0&&U++}continue}if(W===E0){var M=J?(G.push($.slice(K,U)),G.join(\"\")):$.slice(K,U);V.push(M.trim()),U++,K=U,J=!1,G=[];continue}U++}var j=J?(G.push($.slice(K,Y)),G.join(\"\")):$.slice(K,Y);return V.push(j.trim()),V.map(_=>{var q=_.indexOf(\"\\\\|\")===-1?_:_.replace(/\\\\\\|/g,\"|\");return q?W9(q,!1,Q,Z):[]})}function S4($,Q,Z,X){let Y=G0($,Q);var V=$.indexOf(\"|\",Q);if(V<0||V>=Y)return null;let K=e($,Y);if(K>=$.length)return null;let J=G0($,K);if(!c4($,K,J))return null;let G=$.slice(Q,Y),U=$.slice(K,J);for(var W=[],z=0,H=U.length;z<H&&(U.charCodeAt(z)===I||U.charCodeAt(z)===w);)z++;for(z<H&&U.charCodeAt(z)===E0&&z++;z<H;){for(;z<H&&(U.charCodeAt(z)===I||U.charCodeAt(z)===w);)z++;if(z>=H||U.charCodeAt(z)===E0)break;var F=U.charCodeAt(z)===m0;for(F&&z++;z<H&&U.charCodeAt(z)===p;)z++;var M=z<H&&U.charCodeAt(z)===m0;for(M&&z++,W.push(F&&M?\"center\":M?\"right\":F?\"left\":null);z<H&&(U.charCodeAt(z)===I||U.charCodeAt(z)===w);)z++;z<H&&U.charCodeAt(z)===E0&&z++}let j=y4(G,Z,X);if(W.length!==j.length)return null;let _=[],q=e($,J);for(;q<$.length;){let P=G0($,q),v=$.slice(q,P);if(t0($,q,P))break;if(L0($,q,P),U0<4){var D=$.charCodeAt(q+Q0);if(D===l||D===V5||(D===p||D===P0||D===O0)&&d5($,q))break;if(D===Z0||D===b0){for(var A=q+Q0,N=0;A<P&&$.charCodeAt(A)===D;)N++,A++;if(N>=3)break}}_.push(y4(v,Z,X)),q=e($,P)}if(X.optimizeForStreaming&&_.length===0)return null;for(var L=j.length,O=0;O<_.length;O++)if(_[O].length<L)for(;_[O].length<L;)_[O].push([]);else _[O].length>L&&(_[O].length=L);return{node:{type:B.table,header:j,cells:_,align:W},end:q}}function t6($,Q,Z){var X=G0($,Q);if(L0($,Q,X),U0>3)return null;var Y=Q+Q0;if($.charCodeAt(Y)!==A0)return null;if(Y+1<$.length&&$.charCodeAt(Y+1)===z5){var V=e6($,Y,Z);return V||null}Z.refs||(Z.refs={});var K=l4($,Y,Z.refs);return K===null?null:{node:{type:B.refCollection},end:K}}function e6($,Q,Z){var X=$.length;if($.charCodeAt(Q)!==A0||Q+1>=X||$.charCodeAt(Q+1)!==z5)return null;for(var Y=Q+2,V=Y;Y<X&&$.charCodeAt(Y)!==J5;){if($.charCodeAt(Y)===g)return null;Y++}if(Y>=X)return null;var K=`^${$.slice(V,Y)}`.toLowerCase();if(Y++,Y>=X||$.charCodeAt(Y)!==m0)return null;for(Y++;Y<X&&($.charCodeAt(Y)===I||$.charCodeAt(Y)===w);)Y++;if(Y<X&&$.charCodeAt(Y)===g)for(Y++;Y<X&&($.charCodeAt(Y)===I||$.charCodeAt(Y)===w);)Y++;var J=$.indexOf(`\n`,Y);J<0&&(J=X);for(var G=$.slice(Y,J).trim(),U=J<X?J+1:X;U<X;){var W=G0($,U);if(L0($,U,W),U0>=2&&!t0($,U,W))G+=`\n${$.slice(U,W)}`,U=e($,W);else if(t0($,U,W)){var z=e($,W);if(z<X){var H=G0($,z);if(L0($,z,H),U0>=2){G+=`\n`,U=e($,W);continue}}break}else break}var F=Z.refs;return F&&!F[K]&&(F[K]={target:G,title:void 0}),{node:{type:B.footnote},end:U}}function $Z($,Q,Z,X){let Y=Q,V=0,K=0,J=-1;for(;Y<$.length;){let f=J>=0?J:G0($,Y);if(J=-1,t0($,Y,f))break;if(L0($,Y,f),U0<4&&K>0&&!Z.l){let C=$.charCodeAt(Y+Q0);if(C===K5||C===p){let E=Y+Q0;for(;E<f&&$.charCodeAt(E)===C;)E++;for(;E<f&&($.charCodeAt(E)===I||$.charCodeAt(E)===w);)E++;if(E>=f){V=C===K5?1:2,Y=e($,f);break}}}K=f;let y=e($,f);if(y<$.length){if($.charCodeAt(y)===C9){var G=G0($,y);Y=e($,G),K=G;continue}let C=G0($,y);if(J=C,L0($,y,C),U0<4){let E=$.charCodeAt(y+Q0);if(E===l){Y=y;break}if(E===V5){for(var U=y+Q0,W=0;U<C&&$.charCodeAt(U)===V5&&W<=6;)W++,U++;if(W>=1&&W<=6&&(U>=C||$.charCodeAt(U)===I||$.charCodeAt(U)===w)){Y=y;break}}if(E===Z0||E===b0){for(var z=y+Q0,H=0;z<C&&$.charCodeAt(z)===E;)H++,z++;if(H>=3){Y=y;break}}if(E===Y0){var F=y+Q0+1,M=F<C?$.charCodeAt(F):0,j=M===c0||M===t5;if(!j&&M===j0){for(var _=F+1,q=_;q<C&&($.charCodeAt(q)>=h&&$.charCodeAt(q)<=u||$.charCodeAt(q)>=V0&&$.charCodeAt(q)<=q0||$.charCodeAt(q)>=r&&$.charCodeAt(q)<=o||$.charCodeAt(q)===p);)q++;q>_&&(j=r9.has($.slice(_,q).toLowerCase()))}else if(!j){for(var D=F;D<C&&($.charCodeAt(D)>=h&&$.charCodeAt(D)<=u||$.charCodeAt(D)>=V0&&$.charCodeAt(D)<=q0||$.charCodeAt(D)>=r&&$.charCodeAt(D)<=o||$.charCodeAt(D)===p);)D++;if(D>F){var A=$.slice(F,D).toLowerCase();j=r9.has(A)||N9.has(A)}}if(j&&o4($,y,Z,X)){Y=y;break}}if(E===p||E===P0||E===y5){let S=y+Q0+1;if(S<C&&($.charCodeAt(S)===I||$.charCodeAt(S)===w)){var N=v9($,S,C);if(N<C&&!d5($,y)){Y=y;break}}}if(E>=r&&E<=o){let S=y+Q0;for(;S<C&&$.charCodeAt(S)>=r&&$.charCodeAt(S)<=o;)S++;if(S<C&&($.charCodeAt(S)===Q5||$.charCodeAt(S)===H5)&&S-(y+Q0)===1&&$.charCodeAt(y+Q0)===49){var L=S+1;if(L<C&&($.charCodeAt(L)===I||$.charCodeAt(L)===w)){var O=v9($,L,C);if(O<C){Y=y;break}}}}if(E===E0){let S=e($,C);if(S<$.length){let s=G0($,S);if(c4($,S,s)){Y=y;break}}}if((E===p||E===P0||E===O0)&&d5($,y)){if(E!==p){Y=y;break}let S=0,s=y+Q0;for(;s<C&&$.charCodeAt(s)===p;)S++,s++;for(;s<C&&($.charCodeAt(s)===I||$.charCodeAt(s)===w);)s++;if(s<C){Y=y;break}}}}Y=e($,f)}for(var P=V?K:Y;P>Q&&($.charCodeAt(P-1)===g||$.charCodeAt(P-1)===I5||$.charCodeAt(P-1)===I||$.charCodeAt(P-1)===w);)P--;for(var v=Q;v<P&&($.charCodeAt(v)===I||$.charCodeAt(v)===w);)v++;if(v>=P)return null;for(var b=!1,k=v;k<P;k++)if($.charCodeAt(k)===C9){b=!0;break}var x=b?$.slice(v,P).replace(/\\u001E/g,\"\"):$.slice(v,P);if(!x)return null;let T=W9(x,!0,Z,X);return V?{node:{type:B.heading,level:V,children:T,id:\"\"},end:Y}:{node:{type:B.paragraph,children:T},end:Y}}function W9($,Q,Z,X){var Y=Z.t;if(!Y){var V=Z.k;Z.k=Q;var K=R5($,0,$.length,Z,X);return Z.k=V,K}var J=[];return Y.push({dest:J,text:$,breaks:Q,inline:Z.inline,inAnchor:Z.inAnchor,inHTML:Z.inHTML,htmlDepth:Z.d,inList:Z.inList,inBlockQuote:Z.inBlockQuote,noSetext:Z.l,depth:Z.o}),J}function ZZ($,Q,Z){if($.charCodeAt(Q)!==Z0)return null;let X=l5($,Q,Z,96),Y=Q+X;for(;Y<Z;){let V=$.indexOf(\"`\",Y);if(V<0||V>=Z)return null;let K=l5($,V,Z,96);if(K===X){let J=$.slice(Q+X,V);return J.indexOf(`\n`)!==-1&&(J=J.replace(/\\n/g,\" \")),J.length>0&&J[0]===\" \"&&J.at(-1)===\" \"&&J.trim().length>0&&(J=J.slice(1,-1)),{node:{type:B.codeInline,text:J},end:V+K}}Y=V+K}return null}function b$($,Q,Z){if($.charCodeAt(Q)!==Z0)return Q;let X=l5($,Q,Z,96),Y=Q+X;for(;Y<Z;){let V=$.indexOf(\"`\",Y);if(V<0||V>=Z)return Q;let K=l5($,V,Z,96);if(K===X)return V+K;Y=V+K}return Q}function QZ($,Q,Z){if($.charCodeAt(Q)!==Y0)return Q;if(Q+1<Z&&$.charCodeAt(Q+1)===j0){let U=Q+2;for(;U<Z&&$.charCodeAt(U)!==l;)U++;return U<Z?U+1:Q}if(Q+3<Z&&$.charCodeAt(Q+1)===c0&&$.charCodeAt(Q+2)===p&&$.charCodeAt(Q+3)===p){let U=$.indexOf(\"-->\",Q+4);return U>=0?U+3:Q}let X=Q+1,Y=X;for(;X<Z;){let U=$.charCodeAt(X);if(U>=h&&U<=u||U>=V0&&U<=q0||U>=r&&U<=o||U===p)X++;else break}if(X===Y)return Q;let V=$.slice(Y,X).toLowerCase(),K=!1;for(;X<Z;){let U=$.charCodeAt(X);if(U===l){X++;break}if(U===j0&&X+1<Z&&$.charCodeAt(X+1)===l){X+=2,K=!0;break}if(U===T5||U===f5){var J=U;for(X++;X<Z&&$.charCodeAt(X)!==J;)X++;X<Z&&X++;continue}if(U===g)return Q;X++}if(K||Q9(V))return X;let G=1;for(;X<Z&&G>0;)if($.charCodeAt(X)===Y0)if(X+1<Z&&$.charCodeAt(X+1)===j0){let U=X+2,W=U;for(;W<Z&&($.charCodeAt(W)>=h&&$.charCodeAt(W)<=u||$.charCodeAt(W)>=V0&&$.charCodeAt(W)<=q0);)W++;if($.slice(U,W).toLowerCase()===V){for(;W<Z&&$.charCodeAt(W)!==l;)W++;if(W<Z&&W++,G--,G===0)return W}X=W}else{let U=X+1,W=U;for(;W<Z&&($.charCodeAt(W)>=h&&$.charCodeAt(W)<=u||$.charCodeAt(W)>=V0&&$.charCodeAt(W)<=q0);)W++;$.slice(U,W).toLowerCase()===V&&G++,X++}else X++;return X}function XZ($,Q,Z,X,Y){if($.charCodeAt(Q)!==b0||Q+1>=Z||$.charCodeAt(Q+1)!==b0)return null;let V=Q+2;for(;V+1<Z;){let K=$.charCodeAt(V);if(K===Z0){let J=b$($,V,Z);if(J>V){V=J;continue}}if(K===b0&&$.charCodeAt(V+1)===b0){let J=$.slice(Q+2,V),G=R5(J,0,J.length,X,Y);return{node:{type:B.textFormatted,tag:\"del\",children:G},end:V+2}}K===T0&&V+1<Z&&V++,V++}return null}function YZ($,Q,Z,X,Y){if($.charCodeAt(Q)!==K5||Q+1>=Z||$.charCodeAt(Q+1)!==K5)return null;let V=Q+2;for(;V+1<Z;){let K=$.charCodeAt(V);if(K===Z0){let J=b$($,V,Z);if(J>V){V=J;continue}}if(K===K5&&$.charCodeAt(V+1)===K5&&V>Q+2){let J=$.slice(Q+2,V),G=R5(J,0,J.length,X,Y);return{node:{type:B.textFormatted,tag:\"mark\",children:G},end:V+2}}K===T0&&V+1<Z&&V++,V++}return null}function k4($,Q,Z){return $<U9?!!(R$($)&$9):K4.test(Q[Z])}function x4($,Q,Z){return $<U9?!!(R$($)&h5):J4.test(Q[Z])}function VZ($,Q,Z){var X=$.charCodeAt(Q);if(X!==P0&&X!==O0)return null;var Y=l5($,Q,Z,X);if(Y===0)return null;var V=Q>0?$.charCodeAt(Q-1):32,K=Q+Y<Z?$.charCodeAt(Q+Y):32,J=x4(V,$,Q-1),G=x4(K,$,Q+Y),U=Q>0?k4(V,$,Q-1):!1,W=Q+Y<Z?k4(K,$,Q+Y):!1,z=!G&&(!W||J||U),H=!J&&(!U||G||W),F,M;return X===P0?(F=z,M=H):(F=z&&(!H||U),M=H&&(!z||W)),{len:Y,canOpen:F,canClose:M}}function KZ($,Q,Z,X){if(Q.length!==0){for(var Y=$.length,V=Array(Y),K=null,J=null,G=0;G<Y;G++){var U={node:$[G],prev:J,next:null};J?J.next=U:K=U,V[G]=U,J=U}for(var W=Array(Q.length),z=0;z<Q.length;z++)W[z]=V[Q[z].idx];for(var H=[],F=0;F<12;F++)H[F]=-1;for(var M=0;M<Q.length;){var j=Q[M];if(!(j.active&&j.canClose)){M++;continue}for(var _=j.ch===P0?0:1,q=_*6+j.len%3*2+(j.canOpen?1:0),D=H[q]===void 0?-1:H[q],A=-1,N=M-1;N>D;N--){var L=Q[N];if(!(!L.active||L.ch!==j.ch||!L.canOpen)&&!((j.canOpen||L.canClose)&&(L.len+j.len)%3===0&&L.len%3!==0)){A=N;break}}if(A<0){H[q]=M-1,!j.canOpen&&(j.active=!1),M++;continue}var O=Q[A],P=O.len>=2&&j.len>=2,v=P?2:1;O.len-=v,j.len-=v;var b=W[A],k=W[M],x=b.node,T=k.node;x.text=x.text.slice(0,x.text.length-v),T.text=T.text.slice(v);for(var f=[],y=b.next;y&&y!==k;)f.push(y.node),y=y.next;var C={type:B.textFormatted,tag:P?\"strong\":\"em\",children:f},E={node:C,prev:b,next:k};b.next=E,k.prev=E;for(var S=A+1;S<M;S++)Q[S].active=!1;if(O.len===0&&(O.active=!1,x.text===\"\")){var s=b.prev;E.prev=s,s?s.next=E:K=E}if(j.len===0){if(j.active=!1,T.text===\"\"){var X0=k.next;E.next=X0,X0&&(X0.prev=E)}}else continue;M++}for(var I0=0,d=K;d;){var u0=d.node;if(u0.type===B.text){var B0=u0;if(B0.text===\"\"){d=d.next;continue}if(I0>0&&$[I0-1].type===B.text){$[I0-1].text+=B0.text,d=d.next;continue}}$[I0++]=u0,d=d.next}$.length=I0}}function u9($,Q,Z,X){return Q($,Z,X)===null?null:$}var E4=0,v$=0,g4=0,I$=0,C4=0,N$=0,H$=0,O5=0;function JZ(){return H$===2147483647&&(v$=0,I$=0,N$=0,l9=0,H$=0),++H$}var M$=null,l9=0,p9=[],O$=256;function f4($,Q,Z,X,Y){let V=$.charCodeAt(Q)===c0,K=V?Q+1:Q;if($.charCodeAt(K)!==A0||I$===O5&&K>=g4)return null;var J=l9===O5?M$:null,G=J===null?0:J[K];if(G<0)return null;var U=G;if(G===0){var W=$.indexOf(\"]\",K+1);if(W<0||W>=Z)return g4=K,I$=O5,null;U=K+1;var z=0;p9[z++]=K;for(var H=Z-K>=O$;U<Z&&z>0;){var F=$.charCodeAt(U);if(F===T0&&U+1<Z){U+=2;continue}if(F===Z0){var M=b$($,U,Z);if(M>U){U=M;continue}}if(F===Y0){var j=i4($,U,Z);if(j){U=j.end;continue}var _=QZ($,U,Z);if(_>U){U=_;continue}}if(F===A0)p9[z++]=U;else if(F===J5){var q=p9[--z];J===null&&H&&U-K>=O$&&(J=M$=new Int32Array(Z),l9=O5),J!==null&&(J[q]=U+1)}U++}if(z>0){if(J===null&&H&&U-K>=O$&&(J=M$=new Int32Array(Z),l9=O5),J!==null)for(;z>0;)J[p9[--z]]=-1;return null}}var D=U-1,A=$.slice(K+1,D),N=U<Z?$.charCodeAt(U):0,L=!1;if(N===F5){var O=!0;for(U++;U<Z&&($.charCodeAt(U)===I||$.charCodeAt(U)===g);)U++;var P=\"\",v=U;if(U<Z&&$.charCodeAt(U)===Y0){for(U++,v=U;v<Z&&$.charCodeAt(v)!==l;){if($.charCodeAt(v)===T0&&v+1<Z){v+=2;continue}if($.charCodeAt(v)===g){O=!1;break}v++}O&&(v>=Z||$.charCodeAt(v)!==l)&&(O=!1),O&&(P=$.slice(U,v),v++)}else if(O){var b=v$===O5?E4:-1;if(b>=0&&U>=b)O=!1;else{for(var k=0,x=!1;v<Z;){var T=$.charCodeAt(v);if(T===T0&&v+1<Z){v+=2;continue}if(T===F5)k++;else if(T===H5){if(x=!0,k===0)break;k--}else if(T===I||T===g)break;v++}v>=Z&&!x&&(b<0||U<b)&&(E4=U,v$=O5),P=$.slice(U,v)}}if(O){for(U=v;U<Z&&($.charCodeAt(U)===I||$.charCodeAt(U)===g);)U++;var f;if(U<Z){var y=$.charCodeAt(U);if(y===T5||y===f5||y===F5){var C=y===F5?41:y;U++;for(var E=U;U<Z&&$.charCodeAt(U)!==C;)$.charCodeAt(U)===T0&&U+1<Z&&U++,U++;U>=Z?O=!1:(f=$.slice(E,U),U++)}}if(O){for(;U<Z&&($.charCodeAt(U)===I||$.charCodeAt(U)===g);)U++;(U>=Z||$.charCodeAt(U)!==H5)&&(O=!1)}}if(O){if(U++,P=N5(q9(P)),f!==void 0&&(f=N5(q9(f))),V){var S=R5(A,0,A.length,X,Y),s=i9(S);return{node:{type:B.image,target:u9(P,Y?.sanitizer||G5,\"img\",\"src\"),alt:s,title:f},end:U}}var X0=X.inAnchor;X.inAnchor=!0;var m=X0?[{type:B.text,text:A}]:R5(A,0,A.length,X,Y);return X.inAnchor=X0,!X.inAnchor&&P$(m)?null:{node:{type:B.link,target:u9(P,Y?.sanitizer||G5,\"a\",\"href\"),title:f,children:m},end:U}}U=D+1,L=!0}var I0=\"\",d=U;if(!L&&N===A0){var u0=U+1;d=u0;for(var B0=!1;d<Z&&$.charCodeAt(d)!==J5;){if($.charCodeAt(d)===T0&&d+1<Z){d+=2;continue}if($.charCodeAt(d)===A0){B0=!0;break}d++}if(B0||d>=Z)return null;var W0=$.slice(u0,d);if(W0.trim())I0=d9(W0);else{if(I4(A))return null;I0=d9(A)}d+=1}else{if(I4(A))return null;I0=d9(A)}var H0=X.refs?.[I0];if(!H0)return null;if(V)return{node:{type:B.image,target:u9(H0.target,Y?.sanitizer||G5,\"img\",\"src\"),alt:i9(R5(A,0,A.length,X,Y)),title:H0.title},end:d};var D0=X.inAnchor;X.inAnchor=!0;var m=D0?[{type:B.text,text:A}]:R5(A,0,A.length,X,Y);return X.inAnchor=D0,!X.inAnchor&&P$(m)?null:{node:{type:B.link,target:u9(H0.target,Y?.sanitizer||G5,\"a\",\"href\"),title:H0.title,children:m},end:d}}function i4($,Q,Z){if($.charCodeAt(Q)!==Y0)return null;for(var X=Q+1;X<Z;){var Y=$.charCodeAt(X);if(Y===l)break;if(Y===I||Y===g||Y===I5||Y===Y0)return null;X++}if(X>=Z||$.charCodeAt(X)!==l)return null;var V=$.slice(Q+1,X),K=V.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\\x00-\\x20]*)$/);return K?{node:{type:B.link,target:V,title:void 0,children:[{type:B.text,text:V}]},end:X+1}:V.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(V)?{node:{type:B.link,target:`mailto:${V}`,title:void 0,children:[{type:B.text,text:V}]},end:X+1}:null}function UZ($,Q,Z,X){if($.charCodeAt(Q)!==A0||Q+1>=Z||$.charCodeAt(Q+1)!==z5||N$===O5&&Q>=C4)return null;let Y=Q+2;for(;Y<Z&&$.charCodeAt(Y)!==J5&&$.charCodeAt(Y)!==g;)Y++;if(Y>=Z)return C4=Q,N$=O5,null;if($.charCodeAt(Y)!==J5)return null;let V=$.slice(Q+2,Y);return V?{node:{type:B.footnoteReference,target:`#${j5(V)}`,text:V},end:Y+1}:null}function GZ($,Q,Z,X){if(X.disableBareUrls)return null;var Y=\"\",V=!1,K=$.charCodeAt(Q);if(K===A9||K===72?Q+8<=Z&&$.charCodeAt(Q+1)===s5&&$.charCodeAt(Q+2)===s5&&$.charCodeAt(Q+3)===E9&&($.charCodeAt(Q+4)===Y$&&$.charCodeAt(Q+5)===m0&&$.charCodeAt(Q+6)===j0&&$.charCodeAt(Q+7)===j0?Y=\"https://\":$.charCodeAt(Q+4)===m0&&$.charCodeAt(Q+5)===j0&&$.charCodeAt(Q+6)===j0&&(Y=\"http://\")):K===L5||K===70?Q+6<=Z&&$.charCodeAt(Q+1)===s5&&$.charCodeAt(Q+2)===E9&&$.charCodeAt(Q+3)===m0&&$.charCodeAt(Q+4)===j0&&$.charCodeAt(Q+5)===j0&&(Y=\"ftp://\"):(K===C5||K===87)&&Q+4<=Z&&$.charCodeAt(Q+1)===C5&&$.charCodeAt(Q+2)===C5&&$.charCodeAt(Q+3)===Q5&&(Y=\"www.\",V=!0),!Y)return null;let J=Q+Y.length;for(;J<Z;){let O=$.charCodeAt(J);if(O===I||O===g||O===w||O===I5||O===Y0||O===l)break;J++}for(var G=0,U=0,W=Q;W<J;W++){var z=$.charCodeAt(W);z===F5?G++:z===H5&&U++}let H=J;for(;H>Q+Y.length;){let O=$.charCodeAt(H-1);if(O===Q5||O===r$||O===m0||O===c0||O===t5||O===H5||O===P0||O===O0||O===b0){if(O===H5){if(G>=U)break;U--}H--}else if(O===j9){for(var F=H-2;F>Q&&($.charCodeAt(F)>=h&&$.charCodeAt(F)<=u||$.charCodeAt(F)>=V0&&$.charCodeAt(F)<=q0||$.charCodeAt(F)>=r&&$.charCodeAt(F)<=o);)F--;F>=Q&&$.charCodeAt(F)===O9?H=F:H--}else break}if(H<=Q+Y.length)return null;var M=Q+(V?4:Y.length),j=$.indexOf(\"/\",M);if((j<0||j>H)&&(j=H),V&&$.indexOf(\".\",M)===-1)return null;for(var _=-1,q=-1,D=j-1;D>=M;D--)if($.charCodeAt(D)===Q5)if(_<0)_=D;else{q=D;break}for(var A=q>=0?q+1:M,D=A;D<j;D++)if($.charCodeAt(D)===O0)return null;var N=$.slice(Q,H),L=V?`http://${N}`:N;return{node:{type:B.link,target:L,title:void 0,children:[{type:B.text,text:N}]},end:H}}function qZ($,Q,Z,X){if(X.disableBareUrls)return null;for(var Y=Q,V=Y;Y<Z;){var K=$.charCodeAt(Y);if(K>=h&&K<=u||K>=V0&&K<=q0||K>=r&&K<=o||K===Q5||K===c0||K===V5||K===36||K===M9||K===O9||K===f5||K===P0||K===y5||K===j0||K===K5||K===t5||K===z5||K===O0||K===Z0||K===S5||K===E0||K===g9||K===b0||K===p)Y++;else break}if(Y===V||Y>=Z||$.charCodeAt(Y)!==x9)return null;Y++;for(var J=Y,G=-1,U=Y;Y<Z;){var K=$.charCodeAt(Y);if(K>=h&&K<=u||K>=V0&&K<=q0||K>=r&&K<=o)Y++;else if((K===p||K===O0)&&Y>J)Y++;else if(K===Q5){if(Y===J)break;var W=$.charCodeAt(Y-1);if(W===p||W===O0||Y-U>63)break;if(Y+1<Z){var z=$.charCodeAt(Y+1);if(z>=h&&z<=u||z>=V0&&z<=q0||z>=r&&z<=o)G=Y,U=Y+1,Y++;else break}else break}else break}if(Y-U>63||G<0)return null;var H=$.charCodeAt(Y-1);if(!(H>=h&&H<=u||H>=V0&&H<=q0||H>=r&&H<=o)||Y<=G+1)return null;for(var F=-1,M=G-1;M>=J;M--)if($.charCodeAt(M)===Q5){F=M;break}for(var j=F>=0?F+1:J,M=j;M<Y;M++)if($.charCodeAt(M)===O0)return null;var _=$.slice(Q,Y);return{node:{type:B.link,target:`mailto:${_}`,title:void 0,children:[{type:B.text,text:_}]},end:Y}}function P$($){for(var Q=0;Q<$.length;Q++)if($[Q].type===B.link||\"children\"in $[Q]&&Array.isArray($[Q].children)&&P$($[Q].children))return!0;return!1}function i9($,Q){for(var Z=\"\",X=0;X<$.length;X++){var Y=$[X];Y.type===B.text?Z+=Y.text:Y.type===B.breakLine?Z+=\" \":Y.type===B.codeInline||Y.type===B.footnoteReference?Z+=Y.text:\"children\"in Y&&Array.isArray(Y.children)?Z+=i9(Y.children,Q):!Q&&Y.type===B.image&&(Z+=Y.alt||\"\")}return Z}function w$($,Q,Z){for(var X=0;X<$.length;X++){var Y=$[X];if(Y.type===B.heading){var V=Y;V.id=c6(Z(i9(V.children,!0)),Q)}if(\"children\"in Y){var K=Y.children;Array.isArray(K)&&w$(K,Q,Z)}if((Y.type===B.orderedList||Y.type===B.unorderedList)&&Array.isArray(Y.items))for(var J=Y.items,G=0;G<J.length;G++)w$(J[G],Q,Z)}}function X9($){return{type:B.text,text:$}}function WZ($,Q,Z){var X=Q+1;if(X>=Z)return-1;if($.charCodeAt(X)===V5){X++;var Y=X<Z&&($.charCodeAt(X)===V$||$.charCodeAt(X)===K$);Y&&X++;for(var V=X,K=Y?6:7;X<Z&&X-V<=K;){var J=$.charCodeAt(X),G=J>=r&&J<=o||Y&&(J>=h&&J<=D9||J>=V0&&J<=L5);if(!G)break;X++}return X===V||X-V>K?-1:X<Z&&$.charCodeAt(X)===j9?X+1:-1}for(var U=X;X<Z&&X-U<48;){var W=$.charCodeAt(X);if(W>=h&&W<=u||W>=V0&&W<=q0||W>=r&&W<=o){X++;continue}break}return X===U?-1:X<Z&&$.charCodeAt(X)===j9?X+1:-1}function zZ($,Q,Z,X,Y){if($.charCodeAt(Q)!==Y0)return null;var V=Q+1;if(V>=Z)return null;var K=$.charCodeAt(V);if(K===c0&&V+1<Z&&$.charCodeAt(V+1)===p&&V+2<Z&&$.charCodeAt(V+2)===p){var J=V+3;if(J<Z&&$.charCodeAt(J)===l)return{node:{type:B.htmlComment,text:\"\",s:!0},end:J+1};if(J+1<Z&&$.charCodeAt(J)===p&&$.charCodeAt(J+1)===l)return{node:{type:B.htmlComment,text:\"-\",s:!0},end:J+2};var G=$.indexOf(\"-->\",J);return G!==-1&&G<=Z-3?{node:{type:B.htmlComment,text:$.slice(Q+4,G),s:!1},end:G+3}:null}if(K===t5){var U=$.indexOf(\"?>\",V+1);return U!==-1&&U<Z?{node:{type:B.htmlSelfClosing,tag:\"?\",attrs:{},m:$.slice(Q,U+2),a:!1},end:U+2}:null}if(K===c0&&V+1<Z){var W=$.charCodeAt(V+1);if(W===A0&&$.slice(V+1,V+8)===\"[CDATA[\"){var z=$.indexOf(\"]]>\",V+8);return z!==-1&&z<Z?{node:{type:B.htmlSelfClosing,tag:\"![CDATA[\",attrs:{},m:$.slice(Q,z+3),a:!1},end:z+3}:null}if(W>=h&&W<=u){var H=$.indexOf(\">\",V+2);return H!==-1&&H<Z?{node:{type:B.htmlSelfClosing,tag:`!${$.slice(V+1,H)}`,attrs:{},m:$.slice(Q,H+1),a:!1},end:H+1}:null}}if(K===j0){var F=V+1;if(F>=Z)return null;var M=$.charCodeAt(F);if(!(M>=h&&M<=u||M>=V0&&M<=q0))return null;for(F++;F<Z;){var j=$.charCodeAt(F);if(j>=h&&j<=u||j>=V0&&j<=q0||j>=r&&j<=o||j===p)F++;else break}for(;F<Z&&($.charCodeAt(F)===I||$.charCodeAt(F)===w||$.charCodeAt(F)===g);)F++;if(F<Z&&$.charCodeAt(F)===l){var _=$.slice(V+1,F).trim();return{node:{type:B.htmlSelfClosing,tag:_,attrs:{},h:$.slice(Q,F+1),a:!0},end:F+1}}return null}if(!(K>=h&&K<=u||K>=V0&&K<=q0))return null;var q=w5($,Q);if(!q)return null;var D=q.tag,A=D.toLowerCase(),N=q.n;if(N||Q9(D))return{node:{type:B.htmlSelfClosing,tag:D,attrs:P5(q.attrs,D,Y),m:q.q?A$(q):$.slice(Q,q.end),a:!1},end:q.end};var L=N9.has(A),O=_$($.slice(0,Z),q.end,D);if(O===-1)return{node:{type:B.htmlSelfClosing,tag:D,attrs:P5(q.attrs,D,Y),m:q.q?A$(q):$.slice(Q,q.end),a:!1},end:q.end};var P=n6($,`</${A}`,O),v=$.slice(q.end,P);if(L){var b=q5(v);return{node:{type:B.htmlBlock,tag:D,attrs:P5(q.attrs,D,Y),b:q.g+q.b,children:[],e:b||void 0,h:$.slice(P,O),text:b,c:!0,a:!1},end:O}}var k=[],x=v.trim();if(x){var{inAnchor:T,inline:f,k:y}=X;A===\"a\"&&(X.inAnchor=!0),X.k=!1;var C=x.indexOf(`\n\n`)!==-1||/^#{1,6}\\s/.test(x);C?(X.inline=!1,k=c5(x,X,Y)):k=R5(x,0,x.length,X,Y),X.inAnchor=T,X.inline=f,X.k=y}return{node:{type:B.htmlBlock,tag:D,attrs:P5(q.attrs,D,Y),b:q.b,children:k,text:q5(v),c:!1,a:!1},end:O}}var FZ=200,_9=0;function R5($,Q,Z,X,Y){if(_9++,_9>FZ)return _9--,[{type:B.text,text:$.slice(Q,Z)}];var V=O5;O5=JZ();let K=X;if(Y.optimizeForStreaming){let $0=function(t,d0){for(var a0=1,$5=d0+1;$5<t.length;$5++){var l0=t.charCodeAt($5);if(l0===A0)a0++;else if(l0===J5&&(a0--,a0===0))return $5}return-1},R=$.slice(Q,Z),J0=R;for(var J=0,G=0,U=0,W=0,z=0,H=-1,F=-1,M=-1,j=-1,_=-1,q=0;q<R.length;q++){var D=R.charCodeAt(q);D===P0?q+1<R.length&&R.charCodeAt(q+1)===P0?(J++,H=q,q++):(G++,F=q):D===O0?q+1<R.length&&R.charCodeAt(q+1)===O0?(U++,M=q,q++):(W++,j=q):D===b0&&q+1<R.length&&R.charCodeAt(q+1)===b0&&(z++,_=q,q++)}var A=[];z%2===1&&_>=0&&A.push([_,2]),U%2===1&&M>=0&&A.push([M,2]),W%2===1&&j>=0&&A.push([j,1]),J%2===1&&H>=0&&A.push([H,2]),G%2===1&&F>=0&&A.push([F,1]),A.sort((t,d0)=>d0[0]-t[0]);for(var N=0;N<A.length;N++){var L=A[N][0],O=A[N][1];R=R.slice(0,L)+R.slice(L+O)}let i0=0,W5=-1;for(let t=0;t<R.length;t++)R.charCodeAt(t)===Z0&&(i0++,W5=t);if(i0%2===1&&W5!==-1){let t=!1,d0=-1,a0=0;for(;a0<R.length;)R.charCodeAt(a0)===Z0&&(t?(t=!1,d0=-1):(d0=a0,t=!0)),a0++;t&&d0!==-1&&(R=R.slice(0,d0))}for(var P=!0;P;){P=!1;for(var v=-1,b=-1,k=-1,x=!1,T=0;T<R.length;T++){var f=R.charCodeAt(T);if(f===A0&&(T===0||R.charCodeAt(T-1)!==T0)){var y=T>0&&R.charCodeAt(T-1)===c0,C=y?T-1:T,E=$0(R,T);if(E===-1)v=C,x=y,b=T+1,k=R.length;else{var S=E+1;if(S>=R.length)v=C,x=y,b=T+1,k=E;else if(R.charCodeAt(S)===F5){var s=R.indexOf(\")\",S+1);s===-1?(v=C,x=y,b=T+1,k=E,T=R.length):T=s}else if(R.charCodeAt(S)===A0){var X0=R.indexOf(\"]\",S+1);X0===-1?(v=C,x=y,b=T+1,k=E,T=R.length):T=X0}else T=E}}}if(v>=0){var I0=x?\"\":R.slice(b,k);R=R.slice(0,v)+I0,P=!0}}let C0=R.match(/<([A-Z][A-Za-z0-9]*)(?:\\s[^>]*)?>([^<]*)$/);if(C0&&C0.index!==void 0){var d=C0[0].length-C0[2].length,u0=d>=2&&C0[0].charCodeAt(d-2)===j0;if(!u0){for(var B0=!1,W0=0,H0=0;H0<C0.index;H0++)R.charCodeAt(H0)===Z0&&W0++;if(B0=W0%2===1,!B0){let t=C0[1];p5(R,`</${t}`,0)===-1&&(R=R.slice(0,C0.index)+C0[2])}}}R!==J0&&($=$.slice(0,Q)+R,Z=Q+R.length)}let D0=[];var m=[];let c=Q;var K0=\"\",y0=Y.disableAutoLink||Y.disableBareUrls||K.inAnchor?-1:$.indexOf(\"@\",Q);for(y0>=Z&&(y0=-1);Q<Z;){let R=$.charCodeAt(Q),J0=null;if(R===Z0){if(J0=ZZ($,Q,Z),!J0){var S0=l5($,Q,Z,Z0);Q+=S0-1}}else if(R===P0||R===O0){var _0=VZ($,Q,Z);if(_0){if(_0.canOpen||_0.canClose){(K0||Q>c)&&(D0.push(X9(K0+$.slice(c,Q))),K0=\"\");var a=$.slice(Q,Q+_0.len),w0=X9(a);m.push({idx:D0.length,ch:R,len:_0.len,canOpen:_0.canOpen,canClose:_0.canClose,active:!0}),D0.push(w0),Q+=_0.len,c=Q;continue}Q+=_0.len-1}}else if(R===b0)J0=XZ($,Q,Z,K,Y);else if(R===K5)J0=YZ($,Q,Z,K,Y);else if(R===A0)Q+1<Z&&$.charCodeAt(Q+1)===z5&&(J0=UZ($,Q,Z,K)),J0||(J0=f4($,Q,Z,K,Y));else if(R===c0&&Q+1<Z&&$.charCodeAt(Q+1)===A0)J0=f4($,Q,Z,K,Y);else if(R===Y0)J0=i4($,Q,Z),!(J0||Y.disableParsingRawHTML||Y.ignoreHTMLBlocks)&&(J0=zZ($,Q,Z,K,Y));else if(R===O9){var z0=WZ($,Q,Z);if(z0!==-1){var F0=$.slice(Q,z0),M0=N5(F0);if(M0!==F0){K0=K0+$.slice(c,Q)+M0,Q=z0,c=z0;continue}}}else if((R===A9||R===C5||R===L5)&&!K.inAnchor&&!Y.disableAutoLink&&(Q===0||$.charCodeAt(Q-1)!==Y0)){var f0=Q+1<Z?$.charCodeAt(Q+1):0;(R===A9&&f0===s5||R===L5&&f0===s5||R===C5&&f0===C5)&&(J0=GZ($,Q,Z,Y))}if(!J0&&y0>=0&&y0-Q<=64&&!K.inAnchor&&!Y.disableAutoLink&&!Y.disableBareUrls&&(R>=h&&R<=u||R>=V0&&R<=q0||R>=r&&R<=o)&&(J0=qZ($,Q,Z,Y),!J0&&Q>=y0&&(y0=$.indexOf(\"@\",Q+1),y0>=Z&&(y0=-1))),R===g&&K.k){var v0=!1,k0=0;if(Q>c&&$.charCodeAt(Q-1)===T0)v0=!0,k0=1;else{for(var h0=0,p0=Q-1;p0>=c&&$.charCodeAt(p0)===I;)h0++,p0--;h0>=2&&(v0=!0,k0=h0)}if(v0){for((K0||Q-k0>c)&&(D0.push(X9(K0+$.slice(c,Q-k0))),K0=\"\"),D0.push({type:B.breakLine}),Q++;Q<Z&&$.charCodeAt(Q)===I;)Q++;c=Q;continue}var n=Q>c&&$.charCodeAt(Q-1)===I,N0=Q+1<Z&&$.charCodeAt(Q+1)===I;if(n||N0){for(var i=Q;i>c&&$.charCodeAt(i-1)===I;)i--;for(K0+=`${$.slice(c,i)}\n`,Q++;Q<Z&&$.charCodeAt(Q)===I;)Q++;c=Q;continue}}if(J0)(K0||Q>c)&&(D0.push(X9(K0+$.slice(c,Q))),K0=\"\"),D0.push(J0.node),Q=J0.end,c=Q;else{if(R===T0&&Q+1<Z){let i0=$.charCodeAt(Q+1);if(R$(i0)&$9){(K0||Q>c)&&(D0.push(X9(K0+$.slice(c,Q))),K0=\"\"),D0.push(X9($[Q+1])),Q+=2,c=Q;continue}}if(Q++,y0<0||y0-Q>64)for(;Q<Z&&!(y0>=0&&y0-Q<=64);){var x0=$.charCodeAt(Q);if(x0<U9&&!u4[x0])Q++;else break}}}return(K0||Z>c)&&(D0.push(X9(K0+$.slice(c,Z))),K0=\"\"),m.length>0&&KZ(D0,m,X,Y),O5=V,_9--,D0}var HZ=500;function c5($,Q,Z){var X=Q.o||0;if(X>HZ)return[{type:B.text,text:$}];Q.o=X+1;let Y=Q;if(Z.optimizeForStreaming&&!(Q.i||Q.w)){for(var V=$.length;V>0&&$.charCodeAt(V-1)===g;)V--;for(var K=V;K>0&&$.charCodeAt(K-1)!==g;)K--;if(V>K&&$.charCodeAt(K)===E0){for(var J=!1,G=K+1;G<V;G++){var U=$.charCodeAt(G);if(U!==I&&U!==w&&U!==E0&&U!==m0&&U!==p){J=!0;break}}for(var W=!1,z=!1,H=0,F=K,M=K-1;M>0;){for(var j=M;j>0&&$.charCodeAt(j-1)!==g;)j--;if($.charCodeAt(j)!==E0)break;F=j;for(var _=!0,q=!1,D=j;D<M;D++){var A=$.charCodeAt(D);if(A===p)q=!0;else if(A!==I&&A!==w&&A!==m0&&A!==E0){_=!1;break}}_&&q?(W=!0,z=!0):z||H++,M=j-1}J?W||($=$.slice(0,K).trimEnd()):$=W&&H>0?$.slice(0,K).trimEnd():$.slice(0,F).trimEnd()}for(var N=-1,L=-1,O=-1,P=!1,v=$.length-1;v>=0;v--)if($.charCodeAt(v)===Y0){for(var b=v+1<$.length?$.charCodeAt(v+1):0,k=b>=h&&b<=u||b>=V0&&b<=q0,x=b===j0&&v+2<$.length&&($.charCodeAt(v+2)>=h&&$.charCodeAt(v+2)<=u||$.charCodeAt(v+2)>=V0&&$.charCodeAt(v+2)<=q0),T=b===c0||b===t5,f=$.length;f>v+1&&$.charCodeAt(f-1)===g;)f--;var y=v+1>=f;if(k||x||T||y){var C=v+1;if((x||k)&&(C=v+2),k||x)for(;C<$.length;){var E=$.charCodeAt(C);if(E>=h&&E<=u||E>=V0&&E<=q0||E>=r&&E<=o)C++;else break}for(var S=k||x?C:v+2;S<$.length&&$.charCodeAt(S)!==l;)S++;if(S>=$.length)N=v,P=!0;else if((k||x)&&$.charCodeAt(S-1)!==j0){for(var s=!1,X0=S+1;X0<$.length;X0++)if($.charCodeAt(X0)===Y0){s=!0;break}s||(N=v,L=C,O=S+1)}}break}if(N>=0){for(var I0=0,d=0;d<N;d++)$.charCodeAt(d)===Z0&&I0++;if(I0%2===0)if(P)$=$.slice(0,N);else{var u0=$.slice(N+1,L);p5($,`</${u0}`,0)===-1&&($=$.slice(0,N)+$.slice(O))}}for(var B0=$.length;B0>0&&$.charCodeAt(B0-1)===g;)B0--;if(B0>0){for(var W0=B0;W0>0&&$.charCodeAt(W0-1)!==g;)W0--;for(var H0=W0,D0=0;H0<B0&&$.charCodeAt(H0)===I&&D0<3;)H0++,D0++;if(W0>0&&H0<B0&&r6($,H0,B0)){for(var m=W0-1,c=m;c>0&&$.charCodeAt(c-1)!==g;)c--;t0($,c,m)||($=$.slice(0,W0).trimEnd())}}var K0=$.length;if(K0>0){for(var y0=$.lastIndexOf(`\n`),S0=y0===-1?0:y0+1,_0=K0,a=S0,w0=0;a<_0&&$.charCodeAt(a)===I&&w0<3;)a++,w0++;if(a<_0){var z0=$.charCodeAt(a),F0=!1;if(z0===P0||z0===p||z0===y5){var M0=a+1;if(M0>=_0||$.charCodeAt(M0)===I||$.charCodeAt(M0)===w){for(var f0=M0;f0<_0&&($.charCodeAt(f0)===I||$.charCodeAt(f0)===w);)f0++;f0>=_0&&(F0=!0)}}else if(z0>=r&&z0<=o){for(var v0=a;v0<_0&&$.charCodeAt(v0)>=r&&$.charCodeAt(v0)<=o;)v0++;if(v0<_0&&($.charCodeAt(v0)===Q5||$.charCodeAt(v0)===H5)){var k0=v0+1;if(k0>=_0||$.charCodeAt(k0)===I||$.charCodeAt(k0)===w){for(var h0=k0;h0<_0&&($.charCodeAt(h0)===I||$.charCodeAt(h0)===w);)h0++;h0>=_0&&(F0=!0)}}}F0&&($=$.slice(0,S0).trimEnd())}}}if(Q.inline)return R5($,0,$.length,Q,Z);let p0=[],n=0,N0=$.length;if(n===0&&!Z.disableFrontmatter&&$.startsWith(\"---\")){let $0=X4($);if($0?.hasValidYaml){if(Z.preserveFrontmatter!==!1){let C0=$.slice(0,$0.endPos).trimEnd();p0.push({type:B.frontmatter,text:C0})}n=$0.endPos}}for(;n<N0;){for(var i=$.indexOf(`\n`,n),x0=i<0?N0:i;n<N0&&t0($,n,x0);)n=x0<N0?x0+1:x0,n<N0&&(i=$.indexOf(`\n`,n),x0=i<0?N0:i);if(n>=N0)break;var R=$.charCodeAt(n)===C9;L0($,n,x0);let $0=null;if(j$=$,B$=n,c9=x0,!R&&U0>=4&&!Q.inHTML)$0=i6($,n);else if(!R){let C0=n+Q0,t=$.charCodeAt(C0);t===V5?$0=l6($,n,Q,Z):t===l?$0=a6($,n,Q,Z):t===Z0||t===b0?$0=o6($,n,Q):t===p||t===P0||t===O0?($0=d5($,n),!$0&&($0=T4($,n,Q,Z))):t===y5||t>=r&&t<=o?$0=T4($,n,Q,Z):t===Y0?$0=o4($,n,Q,Z):t===E0?$0=S4($,n,Q,Z):t===A0&&($0=t6($,n,Q))}if(!$0){for(var J0=!1,i0=n;i0<x0;i0++)if($.charCodeAt(i0)===E0){J0=!0;break}J0&&($0=S4($,n,Q,Z))}if($0||($0=$Z($,n,Q,Z)),$0)$0.node.type!==B.refCollection&&p0.push($0.node),n=$0.end;else{var W5=$.indexOf(`\n`,n);n=W5<0?N0:W5+1}}return Q.o=X,p0}function a4($,Q){return $.charCodeAt(0)===65279&&($=$.slice(1)),P9($,{inAnchor:!1,inBlockQuote:!1,inHTML:!1,inList:!1,inline:!1,refs:{}},I9(Q))}function n4($,Q,Z,X){var Y=w5($,Q);return Y?{tagName:Y.tag,tagLower:Y.tag.toLowerCase(),attrs:Y.b,whitespaceBeforeAttrs:Y.g,isSelfClosing:Y.n,hasSpaceBeforeSlash:Y.r,isClosing:Y.f,hasNewline:Y.g.includes(`\n`)||Y.b.includes(`\n`),endPos:Y.end}:null}function P9($,Q,Z){_9=0,$=U4($),!Q.refs&&(Q.refs={}),(Z.optimizeForStreaming||Q.inline)&&(Q.w=d6($,Q.refs,Z));var X,Y;Q.t||(Q.t=X=[],Q.p=Y=[]);let V=c5($,Q,Z);if(X&&Y){for(var K=X,J={inline:Q.inline,inAnchor:Q.inAnchor,inHTML:Q.inHTML,htmlDepth:Q.d,inList:Q.inList,inBlockQuote:Q.inBlockQuote,noSetext:Q.l,depth:Q.o},G=0;G<K.length;G++){var U=K[G];Q.inline=U.inline,Q.inAnchor=U.inAnchor,Q.inHTML=U.inHTML,Q.d=U.htmlDepth,Q.inList=U.inList,Q.inBlockQuote=U.inBlockQuote,Q.l=U.noSetext,Q.o=U.depth,Q.k=U.breaks;var W=R5(U.text,0,U.text.length,Q,Z);Q.k=!1;for(var z=0;z<W.length;z++)U.dest.push(W[z])}Q.inline=J.inline,Q.inAnchor=J.inAnchor,Q.inHTML=J.inHTML,Q.d=J.htmlDepth,Q.inList=J.inList,Q.inBlockQuote=J.inBlockQuote,Q.l=J.noSetext,Q.o=J.depth;for(var H=Y,F=0;F<H.length;F++)for(var M=H[F],j=0;j<M.src.length;j++){var _=M.src[j];if(M.unwrap&&_.type===B.paragraph)for(var q=_.children,D=0;D<q.length;D++)M.dest.push(q[D]);else M.dest.push(_)}Q.t=void 0,Q.p=void 0,w$(V,Q,Z.slugify)}return h9(Q.refs)?[{type:B.refCollection,refs:Q.refs},...V]:V}import*as e0 from\"react\";var L$;try{Y9=e0.createElement(\"div\"),L$=Y9!=null&&typeof Y9==\"object\"&&\"$$typeof\"in Y9&&typeof Y9.$$typeof==\"symbol\"?Y9.$$typeof:Symbol.for(\"react.transitional.element\")}catch{L$=Symbol.for(\"react.transitional.element\")}var Y9;function T$($,Q,Z){return{$$typeof:L$,type:$,key:Z==null?null:String(Z),ref:null,props:Q,_owner:null,_store:{},_debugStack:null,_debugTask:null}}function D5($,Q){var Z={key:$};if(Q){var X=U$(Q);for(var Y in X)Z[Y]=X[Y]}return Z}var s4=typeof e0.createContext>\"u\"?void 0:e0.createContext(void 0);function t4($,Q,Z,X,Y,V,K,J,G){switch($.type){case B.blockQuote:{let q={key:Z.key};return $.alert&&(q.className=`markdown-alert-${V($.alert.toLowerCase(),j5)}`,$.children.unshift(q4($.alert))),X(\"blockquote\",q,Q($.children,Z))}case B.breakLine:return X(\"br\",{key:Z.key});case B.breakThematic:return X(\"hr\",{key:Z.key});case B.frontmatter:return J.preserveFrontmatter?X(\"pre\",{key:Z.key},$.text):null;case B.codeBlock:{let q=$.lang?N5($.lang):\"\";var U=$.attrs?U$($.attrs):{};return U.className=q?`language-${q} lang-${q}`:\"\",X(\"pre\",{key:Z.key},X(\"code\",U,$.text))}case B.codeInline:return X(\"code\",{key:Z.key},$.text);case B.footnoteReference:return X(\"a\",{key:Z.key,href:Y($.target,\"a\",\"href\")||void 0},X(\"sup\",null,$.text));case B.gfmTask:return X(\"input\",{checked:$.completed,key:Z.key,readOnly:!0,type:\"checkbox\"});case B.heading:return X(`h${$.level}`,{id:$.id,key:Z.key},Q($.children,Z));case B.htmlBlock:{let q=$;if(m5(J)&&W$(q.tag)){var W=q$(q);return W.kind===\"literal\"?X(\"span\",{key:Z.key},W.literal):X(\"span\",{key:Z.key},...F4(W.open,q.children?Q(q.children,Z):null,W.close))}let D=q.j,A=D!==void 0,N=A?D:q.a?q.e||\"\":(q.e||\"\")+(q.h||\"\");if(N&&q.c){let L=q.tag.toLowerCase(),O=p4(L),P=q.children,v=P!=null&&P.length>0;if(O){let S=A?D:q.e||\"\",s=m5(J)?z$(S):S;if(/<[a-z][^>]{0,100}>/i.test(N)){var z=D5(Z.key,$.attrs);return z.dangerouslySetInnerHTML={__html:s},G($.tag,z)}return G($.tag,D5(Z.key,$.attrs),s)}let b=new RegExp(`^<${q.tag}(\\\\s|>)`,\"i\");if(v&&!b.test(N)&&m5(J)&&D4(N))return G($.tag,D5(Z.key,$.attrs),Q(P,Z));if(d4(N)){let S=m5(J)?z$(N):N;var H=D5(Z.key,$.attrs);return H.dangerouslySetInnerHTML={__html:S},G($.tag,H)}let x=I9({slugify:J.slugify,sanitizer:Y,tagfilter:!0}),T=G4(N);if(new RegExp(`^<${q.tag}(\\\\s[^>]*)?>(\\\\s*</${q.tag}>)?$`,\"i\").test(T))return q.children&&q.children.length>0?G($.tag,D5(Z.key,$.attrs),Q(q.children,Z)):G($.tag,D5(Z.key,$.attrs));let y=P9(T,{inline:!1,refs:K,inHTML:!1},x);G$(y);let C=q.tag.toLowerCase(),E=A;if(E&&v)return G($.tag,D5(Z.key,$.attrs),Q(P,Z));if(E)return Q(y.flatMap(Z9),Z);var F=z4(y,C);if(F.found&&F.afterClose.length>0){var M=F.beforeClose.flatMap(Z9),j=F.afterClose.flatMap(Z9);return T$(e0.Fragment,{children:[G($.tag,D5(Z.key,$.attrs),Q(M,Z)),Q(j,Z)]},Z.key)}return G($.tag,D5(Z.key,$.attrs),Q(y.flatMap(Z9),Z))}return Q9($.tag)?G($.tag,D5(Z.key,$.attrs)):G($.tag,D5(Z.key,$.attrs),$.children?Q($.children,Z):\"\")}case B.htmlSelfClosing:{let q=$;if(m5(J)&&W$(q.tag)){var _=q$(q);return X(\"span\",{key:Z.key},_.kind===\"literal\"?_.literal:_.open+(_.close||\"\"))}return G($.tag,D5(Z.key,$.attrs))}case B.image:{let q=$.target===null?null:Y($.target,\"img\",\"src\");return X(\"img\",{key:Z.key,alt:$.alt&&$.alt.length>0?$.alt:void 0,title:$.title||void 0,src:q||void 0})}case B.link:{let q={key:Z.key};if($.target!=null){let D=H4($.target,Y,\"a\",\"href\");D!=null&&(q.href=D)}return $.title&&(q.title=$.title),X(\"a\",q,Q($.children,Z))}case B.table:{let q=$;return X(\"table\",{key:Z.key},X(\"thead\",{key:\"thead\"},X(\"tr\",null,q.header.map(function(A,N){return X(\"th\",{key:N,style:q.align[N]===null?{}:{textAlign:q.align[N]}},Q(A,Z))}))),q.cells.length>0&&X(\"tbody\",{key:\"tbody\"},q.cells.map(function(A,N){return X(\"tr\",{key:N},A.map(function(O,P){return X(\"td\",{key:P,style:q.align[P]===null?{}:{textAlign:q.align[P]}},Q(O,Z))}))})))}case B.text:return $.text;case B.textFormatted:return X($.tag,{key:Z.key},Q($.children,Z));case B.orderedList:case B.unorderedList:{let q=$.type===B.orderedList?\"ol\":\"ul\";return X(q,{key:Z.key,start:$.type===B.orderedList?$.start:void 0},$.items.map(function(A,N){return X(\"li\",{key:N},Q(A,Z))}))}case B.paragraph:return X(\"p\",{key:Z.key},Q($.children,Z));case B.ref:return null;default:return null}}var OZ=($,Q,Z,X,Y,V,K)=>{var J=U=>U.map(W=>\"text\"in W?W.text:\"\"),G=(U,W={})=>{var z=Array.isArray(U)?U:[U],H=(W.renderDepth||0)+1;if(H>2500)return J(z);W.renderDepth=H;for(var F=W.key,M=[],j=!1,_=0;_<z.length;_++){W.key=_;var q;if($){var D=t4.bind(null,z[_],G,W,Q,Z,X,Y,V,K);q=$(D,z[_],G,W)}else q=t4(z[_],G,W,Q,Z,X,Y,V,K);var A=typeof q==\"string\";if(j&&typeof q==\"string\"){var N=M.at(-1);M[M.length-1]=(typeof N==\"string\"?N:\"\")+q}else if(q!=null)if(Array.isArray(q))for(var L=0;L<q.length;L++)M.push(q[L]);else M.push(q);j=A}return W.key=F,W.renderDepth=H-1,M};return G},DZ=($,Q)=>{let Z=m9(Q,$,void 0);return Z?typeof Z==\"function\"||typeof Z==\"object\"&&\"render\"in Z?Z:m9(Q,`${$}.component`,$):$};function AZ($,Q){let Z={...Q||{}};Z.overrides=Z.overrides||{};let X=Z.slugify||j5,Y=Z.sanitizer||G5,V=Z.createElement,K=h9(Z.overrides),J=A=>w9(A,{...Z,wrapper:null});function G(A){for(var N in A){var L=A[N];if(typeof L==\"string\"&&L.length>0&&L.charCodeAt(0)===Y0&&(h4.test(L)||m4.test(L)||n4(L,0))){var O=J(L.trim());A[N]=N===\"innerHTML\"&&Array.isArray(O)?O[0]:O}}}function U(A,N,...L){var O=N||{},P=A;if(K){var v=m9(Z.overrides,`${A}.props`,{});P=DZ(A,Z.overrides),O={...O,...v,className:O4(O.className,v.className)||void 0}}if(!V){var b=O.key;return b!=null&&delete O.key,L.length===1?O.children=L[0]:L.length>1&&(O.children=L),T$(P,O,b)}return V(P,O,...L)}function W(A,N,...L){return N&&G(N),U(A,N,...L)}let z=I9(Z,Z.forceInline),H=$[0]&&$[0].type===B.refCollection?$[0].refs:{},F=OZ(Z.renderRule,U,Y,X,H,Z,W),M=F($,{inline:Z.forceInline,refs:H}),j=M4(H);if(j.length>0&&M.push(U(\"footer\",{key:\"footer\"},j.map(function(N){let L=N.identifier.charCodeAt(0)===z5?N.identifier.slice(1):N.identifier,O=P9(N.footnote,{inline:!0,refs:H},z);return U(\"div\",{id:X(L,j5),key:N.identifier},`${L}: `,F(O,{inline:!0,refs:H}))}))),Z.wrapper===null)return M;let _=Z.wrapper||(Z.forceInline?\"span\":\"div\"),q;if(M.length>1||Z.forceWrapper)q=M;else return M.length===1?M[0]:null;var D=Z.wrapperProps?{...Z.wrapperProps}:{};return D.children=q,T$(_,D,\"outer\")}function w9($=\"\",Q={}){let Z={...Q||{}};Z.overrides=Z.overrides||{};let X=Z.slugify||j5,Y=Z.sanitizer||G5;function V(J){let G=Z.forceInline||!(Z.forceBlock||Y4.test(J)),U=I9(Z,G),W=G?J:W4(J),z=P9(W,{inline:G,refs:K},U);return AZ(z,{...Z,forceInline:G})}let K={};return V($)}function jZ($){let Q=e0.useRef($),Z=Q.current;if(Z!==$){var X=!0,Y=0;for(var V in $)if(Y++,!Object.is(Z[V],$[V])){X=!1;break}if(X){var K=0;for(var J in Z)K++;X=K===Y}X||(Q.current=$)}return Q.current}var y$=({children:$,options:Q,...Z})=>{if(!(typeof e0.useContext<\"u\")){let U={...Q,overrides:{...Q?.overrides},wrapperProps:{...Q?.wrapperProps,...Z}};return w9($??\"\",U)}let Y=s4?e0.useContext(s4):void 0,V=jZ(Z),K=e0.useMemo(()=>({...Y,...Q,overrides:{...Y?.overrides,...Q?.overrides},wrapperProps:{...Y?.wrapperProps,...Q?.wrapperProps,...V}}),[Y,Q,V]),J=$??\"\";return e0.useMemo(()=>w9(J,K),[J,K])},e4=y$,kZ=y$,xZ=w9,hZ=e4;export{j5 as slugify,G5 as sanitizer,a4 as parser,hZ as default,xZ as compiler,B as RuleType,kZ as Markdown};\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 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) {\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 if (value.startsWith(\"[\") || value.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) {\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 if (value.startsWith(\"[\") || value.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 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 if (!param) {\n return str;\n }\n try {\n const num = Number(str);\n if (isNaN(num)) {\n reportFilterWarning(context, `Could not parse \"${str}\" as a number`, \"INVALID_FILTER_INPUT\");\n return str;\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 str;\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 str;\n }\n return Number(result.toFixed(10)).toString();\n } catch (error) {\n reportFilterWarning(context, `Could not calculate value: ${errorMessage(error)}`);\n return str;\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) => {\n if (str === \"\") {\n return str;\n }\n try {\n const array = JSON.parse(str);\n if (Array.isArray(array) && array.length > 0) {\n return array[0] == null ? \"\" : array[0].toString();\n }\n } catch {\n }\n return str;\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(\"&\", \"&\").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 `})`;\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 ? `)})` : \"\";\n }).flat();\n } else if (typeof data === \"object\" && data !== null) {\n return processObject(data);\n }\n } catch (error) {\n return `})`;\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) => {\n if (str === \"\") {\n return str;\n }\n try {\n const array = JSON.parse(str);\n if (Array.isArray(array) && array.length > 0) {\n const value = array[array.length - 1];\n return value == null ? \"\" : value.toString();\n }\n } catch {\n }\n return str;\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) => {\n try {\n const parsed = JSON.parse(str);\n if (Array.isArray(parsed)) {\n return parsed.length.toString();\n } else if (typeof parsed === \"object\" && parsed !== null) {\n return Object.keys(parsed).length.toString();\n }\n return str.length.toString();\n } catch (error) {\n return str.length.toString();\n }\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 if (!str || str === \"undefined\" || str === \"null\") {\n return str;\n }\n try {\n const data = JSON.parse(str);\n if (!Array.isArray(data)) {\n return str;\n }\n if (!params) {\n return JSON.stringify(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 JSON.stringify(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 JSON.stringify(data.filter((_, index) => index + 1 === position));\n }\n if (/^\\d+n$/.test(nthExpression)) {\n const multiplier = parseInt(nthExpression, 10);\n return JSON.stringify(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 JSON.stringify(data.filter((_, index) => {\n const position = index + 1;\n return position >= offset;\n }));\n }\n return str;\n } catch {\n reportFilterWarning(context, \"Could not parse value as a JSON array\", \"INVALID_FILTER_INPUT\");\n return str;\n }\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 return Math.round(num);\n }\n const factor = Math.pow(10, decimalPlaces);\n return Math.round(num * factor) / factor;\n };\n const processValue = (value, decimalPlaces) => {\n if (typeof value === \"number\") {\n return roundNumber(value, decimalPlaces);\n } else if (typeof value === \"string\") {\n const num = parseFloat(value);\n return isNaN(num) ? value : roundNumber(num, decimalPlaces).toString();\n } else if (Array.isArray(value)) {\n return value.map((item) => processValue(item, decimalPlaces));\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, 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 input;\n }\n let parsedInput;\n try {\n parsedInput = JSON.parse(input);\n } catch {\n parsedInput = input;\n }\n const result = processValue(parsedInput, decimalPlaces);\n return typeof result === \"string\" ? result : JSON.stringify(result);\n } catch (error) {\n reportFilterWarning(context, `Could not round value: ${errorMessage(error)}`);\n return input;\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};\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}\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(/ /g, \" \").replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/"/g, '\"').replace(/'/g, \"'\").replace(/“/g, '\"').replace(/”/g, '\"').replace(/‘/g, \"'\").replace(/’/g, \"'\").replace(/—/g, \"\\u2014\").replace(/–/g, \"\\u2013\").replace(/…/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 if (context?.rawValue === null) return \"null\";\n const trimmed = value.trim();\n if (/^(?:true|false|null)$/iu.test(trimmed)) return trimmed;\n const number = Number(trimmed);\n if (Number.isFinite(number) && String(number) === trimmed) return trimmed;\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 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-RWGZ67NF.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"],"x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10],"mappings":"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"}
|