sparkforensics-server 0.5.2 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +16 -7
- package/package.json +1 -1
- package/public/assets/AutoscalingChurn-DenWKTv-.js +1 -0
- package/public/assets/CacheUtilization-DLz7NdjV.js +1 -0
- package/public/assets/CachingOpportunity-zpQIqhzm.js +1 -0
- package/public/assets/ChartTheme-DAiARbLP.js +8 -0
- package/public/assets/ColdStart-C-9HjxWl.js +1 -0
- package/public/assets/ConfigAudit-D0V9tcrJ.js +1 -0
- package/public/assets/CoreUsageArea-yeerrljd.js +1 -0
- package/public/assets/Dashboard-DkUPrHKV.js +1 -0
- package/public/assets/DisclosureContext-DK1_iz6J.js +1 -0
- package/public/assets/DuplicatePlanSubtree-xDNDbCd3.js +1 -0
- package/public/assets/DurationHistogram-B6jsE0Ov.js +1 -0
- package/public/assets/EmptyState-C1uL40VU.js +1 -0
- package/public/assets/ExecutorUtilization-DXDZKmSc.js +1 -0
- package/public/assets/GcPressure-MRf7I4IG.js +1 -0
- package/public/assets/ImpactEstimate-Dm3xWbzV.js +1 -0
- package/public/assets/IncompleteRun-CaLOhMtf.js +1 -0
- package/public/assets/JobFailures-CzmzlvhO.js +1 -0
- package/public/assets/MemoryUtilization-AWUMUjCH.js +1 -0
- package/public/assets/NestedLoopJoin-C9sNr6Ss.js +1 -0
- package/public/assets/OverBroadcast-BOmRE6ca.js +1 -0
- package/public/assets/PartitionHint-BL2EmJfE.js +1 -0
- package/public/assets/PartitionSizing-BzBySvUq.js +1 -0
- package/public/assets/PlanExplorer-DdiQRcJU.js +1 -0
- package/public/assets/PlanGraphRoute-CIH9gBuR.js +1 -0
- package/public/assets/PlanView-B1hxzFRs.js +2 -0
- package/public/assets/PythonUdf-DvgCCueD.js +1 -0
- package/public/assets/RetryWaste-uXXu_CyM.js +1 -0
- package/public/assets/RowPagination-C-LzWkI5.js +1 -0
- package/public/assets/RowStatusCluster-Dbtmte7l.js +1 -0
- package/public/assets/ShuffleIO-nALwzC1_.js +1 -0
- package/public/assets/Skew-CHMEKgvk.js +1 -0
- package/public/assets/SlowHost-yyvjpHk6.js +1 -0
- package/public/assets/SmallFiles-y6odJ97n.js +1 -0
- package/public/assets/SpeculationWaste-C-SD2LOt.js +1 -0
- package/public/assets/Spill-DHTMmOup.js +1 -0
- package/public/assets/StageFailed-CQ3DxC9R.js +1 -0
- package/public/assets/StageFindingGroup-BgYLyj5q.js +1 -0
- package/public/assets/StageHeader-CIETkjVZ.js +1 -0
- package/public/assets/StagePill--P7PDd3s.js +1 -0
- package/public/assets/StageShape-BIv8vx_o.js +1 -0
- package/public/assets/StageSlowness-MMqzERxN.js +1 -0
- package/public/assets/Straggler-BgrY7AyW.js +1 -0
- package/public/assets/TaskFailures-BHHyKYTs.js +1 -0
- package/public/assets/TinyTask-DDScNhCl.js +1 -0
- package/public/assets/UnderBroadcast-CGIC04TI.js +1 -0
- package/public/assets/WidgetLeadSummary-CXFZP00C.js +1 -0
- package/public/assets/button-DbpTz2yk.js +1 -0
- package/public/assets/charts-vendor-CtTxwTeu.js +59 -0
- package/public/assets/composite-C9Nu2EI9.js +1 -0
- package/public/assets/d3-vendor-DNlD2-cz.js +1 -0
- package/public/assets/detector-registry-Bp8hrLua.js +2 -0
- package/public/assets/downsample-WmNM1qc9.js +1 -0
- package/public/assets/finding-anchor-Dr40LkS9.js +1 -0
- package/public/assets/findings-of-type-BL2u3RGZ.js +1 -0
- package/public/assets/impact-sort-mC5ISgX8.js +1 -0
- package/public/assets/inbox-KPU1Gppm.js +1 -0
- package/public/assets/index-CaRVPvAT.css +2 -0
- package/public/assets/index-fDiwfuoO.js +14 -0
- package/public/assets/inertValue-L9VxV0VE.js +1 -0
- package/public/assets/instrument-sans-latin-ext-wdth-normal-C5E2Gvlv.woff2 +0 -0
- package/public/assets/instrument-sans-latin-wdth-normal-BVScPF0l.woff2 +0 -0
- package/public/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/public/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/public/assets/layout.worker-CLcBHxVp.js +3 -0
- package/public/assets/{parser-worker-CA5RxqKc.js → parser-worker-CRIOPMOW.js} +8 -8
- package/public/assets/plan-graph-vendor-Ce6d4HU6.js +7 -0
- package/public/assets/react-vendor-C6KcUD36.js +9 -0
- package/public/assets/select-BHqOqun5.js +1 -0
- package/public/assets/toggle-DPeN6aNa.js +1 -0
- package/public/assets/toggle-group-Kl3uyHSr.js +1 -0
- package/public/assets/usePagedRows-BafD6bEN.js +1 -0
- package/public/assets/useRecentFiles-DzJZAoOT.js +3 -0
- package/public/assets/useRegisterFieldControl-pQv-ZDoU.js +1 -0
- package/public/assets/useScrollLock-BCxn_dMp.js +1 -0
- package/public/assets/useSortMode-DjrAN-z4.js +1 -0
- package/public/docs/404.html +3 -7
- package/public/docs/assets/{app.eYTPqTeq.js → app.1gvzd5Zb.js} +1 -1
- package/public/docs/assets/chunks/@localSearchIndexroot.DS2TQP5_.js +1 -0
- package/public/docs/assets/chunks/{VPLocalSearchBox.DsZrQKQR.js → VPLocalSearchBox.CNxT3s0I.js} +1 -1
- package/public/docs/assets/chunks/{theme.DsTNE2pE.js → theme.C5lLqUv7.js} +2 -2
- package/public/docs/assets/contributor-guide_architecture_board-widgets.md.CqKM_jEG.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets.md.CqKM_jEG.lean.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_board-widgets_caching-and-memory.md.8bH1HnZp.js → contributor-guide_architecture_board-widgets_caching-and-memory.md.BYDo3ClR.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets_plan-advisor.md.ajUAVdbc.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_visual-system-and-templating.md.WqY74T0T.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_visual-system-and-templating.md.WqY74T0T.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract.md.CHHgywoP.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_detector-contract.md.wj6Et6UD.lean.js → contributor-guide_architecture_detector-contract.md.CHHgywoP.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract_plan-attribution.md.DIz3_oz9.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract_plan-attribution.md.DIz3_oz9.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract_threshold-tables.md.WH4tRHPL.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_detector-contract_threshold-tables.md.CKjWG56Y.lean.js → contributor-guide_architecture_detector-contract_threshold-tables.md.WH4tRHPL.lean.js} +1 -1
- package/public/docs/assets/{contributor-guide_architecture_drill-down.md.CqZPrdo9.js → contributor-guide_architecture_drill-down.md.yB-Hz2XT.js} +1 -1
- package/public/docs/assets/{contributor-guide_architecture_drill-down.md.CqZPrdo9.lean.js → contributor-guide_architecture_drill-down.md.yB-Hz2XT.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_drill-down_plan-graph.md.BQZE04sw.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_drill-down_plan-graph.md.DwOozIEs.lean.js → contributor-guide_architecture_drill-down_plan-graph.md.BQZE04sw.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation.md.K71YB-Rr.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_impact-estimation.md.CZv_ZGOp.lean.js → contributor-guide_architecture_impact-estimation.md.K71YB-Rr.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_caveats-tuning-and-coverage.md.DLCAffwn.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_impact-estimation_caveats-tuning-and-coverage.md.BUucRc0A.lean.js → contributor-guide_architecture_impact-estimation_caveats-tuning-and-coverage.md.DLCAffwn.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_stage-union-rollup.md.JFrzDMwo.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_stage-union-rollup.md.JFrzDMwo.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_overview.md.nxkpOhgf.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_state-and-history_run-comparison-internals.md.U-9KMDFK.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_state-and-history_run-comparison-internals.md.CZA0JLtV.lean.js → contributor-guide_architecture_state-and-history_run-comparison-internals.md.U-9KMDFK.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_widget-rendering.md.BrSz8Ezh.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_findings-tab.md.B7rjSF_h.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_findings-tab.md.B7rjSF_h.lean.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_widget-rendering_list-sort-mode.md.BuHKgH0C.js → contributor-guide_architecture_widget-rendering_list-sort-mode.md.37hcZJ7q.js} +1 -1
- package/public/docs/assets/{contributor-guide_architecture_widget-rendering_row-expand-contract.md.ZT89u9f1.js → contributor-guide_architecture_widget-rendering_row-expand-contract.md.mK_VmAWk.js} +1 -1
- package/public/docs/assets/{contributor-guide_architecture_worker-protocol.md.BAnhi2-d.js → contributor-guide_architecture_worker-protocol.md.Br6OE7RW.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_worker-protocol.md.Br6OE7RW.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_cli-and-mcp.md.IVyaXrGe.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_worker-protocol_cli-and-mcp.md.DC1YqXBp.lean.js → contributor-guide_architecture_worker-protocol_cli-and-mcp.md.IVyaXrGe.lean.js} +1 -1
- package/public/docs/assets/{contributor-guide_architecture_worker-protocol_core-and-event-validation.md.DSVFPpWb.js → contributor-guide_architecture_worker-protocol_core-and-event-validation.md.DVSXn-bb.js} +1 -1
- package/public/docs/assets/{contributor-guide_architecture_worker-protocol_evidence-availability.md.CjimIDBY.js → contributor-guide_architecture_worker-protocol_evidence-availability.md.D3S5cyOW.js} +2 -2
- package/public/docs/assets/{contributor-guide_architecture_worker-protocol_evidence-availability.md.CjimIDBY.lean.js → contributor-guide_architecture_worker-protocol_evidence-availability.md.D3S5cyOW.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_evidence-report.md.CtmCU57I.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_worker-protocol_evidence-report.md.DVGZOWvW.lean.js → contributor-guide_architecture_worker-protocol_evidence-report.md.CtmCU57I.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_contributing.md.DBW4drtZ.js +1 -0
- package/public/docs/assets/{contributor-guide_development-setup.md.D9bu4j_c.js → contributor-guide_development-setup.md.B21ZTDhn.js} +3 -3
- package/public/docs/assets/contributor-guide_development-setup.md.B21ZTDhn.lean.js +1 -0
- package/public/docs/assets/contributor-guide_testing.md.DpkozNoG.js +4 -0
- package/public/docs/assets/{contributor-guide_testing.md.By6XGR9a.lean.js → contributor-guide_testing.md.DpkozNoG.lean.js} +1 -1
- package/public/docs/assets/{index.md.CHJVslga.js → index.md.lMm7SUMz.js} +1 -1
- package/public/docs/assets/{index.md.CHJVslga.lean.js → index.md.lMm7SUMz.lean.js} +1 -1
- package/public/docs/assets/instrument-sans-latin-ext-wdth-normal.C5E2Gvlv.woff2 +0 -0
- package/public/docs/assets/instrument-sans-latin-wdth-normal.BVScPF0l.woff2 +0 -0
- package/public/docs/assets/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2 +0 -0
- package/public/docs/assets/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2 +0 -0
- package/public/docs/assets/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2 +0 -0
- package/public/docs/assets/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2 +0 -0
- package/public/docs/assets/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2 +0 -0
- package/public/docs/assets/style.Cfxqlj0y.css +1 -0
- package/public/docs/assets/user-guide_getting-started_ci-and-automation.md.C0pcQoNc.js +29 -0
- package/public/docs/assets/user-guide_getting-started_ci-and-automation.md.C0pcQoNc.lean.js +1 -0
- package/public/docs/assets/user-guide_getting-started_reading-the-dashboard.md.CGaxPX_1.js +1 -0
- package/public/docs/assets/{user-guide_getting-started_tuning-thresholds.md.B_MyjyZm.js → user-guide_getting-started_tuning-thresholds.md.BGVE-wrc.js} +2 -2
- package/public/docs/assets/{user-guide_getting-started_tuning-thresholds.md.B_MyjyZm.lean.js → user-guide_getting-started_tuning-thresholds.md.BGVE-wrc.lean.js} +1 -1
- package/public/docs/assets/{user-guide_mcp-tools.md.C65SjWUL.js → user-guide_mcp-tools.md.49r3L2YE.js} +1 -1
- package/public/docs/assets/{user-guide_mcp-tools_compare-runs.md.Cc_gLoix.js → user-guide_mcp-tools_compare-runs.md.BQ_kIptC.js} +11 -6
- package/public/docs/assets/user-guide_mcp-tools_compare-runs.md.BQ_kIptC.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_diagnose-run.md.azCZXkH8.js +44 -0
- package/public/docs/assets/{user-guide_mcp-tools_diagnose-run.md.BP1vnHA5.lean.js → user-guide_mcp-tools_diagnose-run.md.azCZXkH8.lean.js} +1 -1
- package/public/docs/assets/{user-guide_mcp-tools_evaluate-budgets.md.BB0nDY3Z.js → user-guide_mcp-tools_evaluate-budgets.md.dpQpRQ7z.js} +2 -2
- package/public/docs/assets/{user-guide_mcp-tools_evaluate-budgets.md.BB0nDY3Z.lean.js → user-guide_mcp-tools_evaluate-budgets.md.dpQpRQ7z.lean.js} +1 -1
- package/public/docs/assets/{user-guide_mcp-tools_get-finding-evidence.md.rKyu4wts.js → user-guide_mcp-tools_get-finding-evidence.md.CH6FkNLX.js} +2 -1
- package/public/docs/assets/{user-guide_mcp-tools_get-finding-evidence.md.rKyu4wts.lean.js → user-guide_mcp-tools_get-finding-evidence.md.CH6FkNLX.lean.js} +1 -1
- package/public/docs/assets/{user-guide_mcp-tools_get-run-summary.md.DpxZ4ZNp.js → user-guide_mcp-tools_get-run-summary.md.EhaIsele.js} +1 -1
- package/public/docs/assets/user-guide_run-comparison.md.B_LOkdBf.js +1 -0
- package/public/docs/assets/user-guide_run-comparison.md.B_LOkdBf.lean.js +1 -0
- package/public/docs/assets/user-guide_understanding-findings.md.C4riKCKl.js +1 -0
- package/public/docs/assets/user-guide_understanding-findings.md.C4riKCKl.lean.js +1 -0
- package/public/docs/contributor-guide/architecture/board-widgets/caching-and-memory.html +6 -10
- package/public/docs/contributor-guide/architecture/board-widgets/plan-advisor.html +6 -10
- package/public/docs/contributor-guide/architecture/board-widgets/visual-system-and-templating.html +6 -10
- package/public/docs/contributor-guide/architecture/board-widgets.html +6 -10
- package/public/docs/contributor-guide/architecture/detector-contract/plan-attribution.html +6 -10
- package/public/docs/contributor-guide/architecture/detector-contract/threshold-tables.html +6 -10
- package/public/docs/contributor-guide/architecture/detector-contract.html +6 -10
- package/public/docs/contributor-guide/architecture/drill-down/plan-graph.html +6 -10
- package/public/docs/contributor-guide/architecture/drill-down.html +6 -10
- package/public/docs/contributor-guide/architecture/impact-estimation/caveats-tuning-and-coverage.html +6 -10
- package/public/docs/contributor-guide/architecture/impact-estimation/stage-union-rollup.html +6 -10
- package/public/docs/contributor-guide/architecture/impact-estimation.html +6 -10
- package/public/docs/contributor-guide/architecture/index.html +5 -9
- package/public/docs/contributor-guide/architecture/overview.html +6 -10
- package/public/docs/contributor-guide/architecture/state-and-history/history-server-intake.html +5 -9
- package/public/docs/contributor-guide/architecture/state-and-history/run-comparison-internals.html +6 -10
- package/public/docs/contributor-guide/architecture/state-and-history.html +5 -9
- package/public/docs/contributor-guide/architecture/widget-rendering/findings-tab.html +6 -10
- package/public/docs/contributor-guide/architecture/widget-rendering/investigation-routing.html +5 -9
- package/public/docs/contributor-guide/architecture/widget-rendering/list-sort-mode.html +6 -10
- package/public/docs/contributor-guide/architecture/widget-rendering/reference-section.html +5 -9
- package/public/docs/contributor-guide/architecture/widget-rendering/row-expand-contract.html +6 -10
- package/public/docs/contributor-guide/architecture/widget-rendering.html +6 -10
- package/public/docs/contributor-guide/architecture/worker-protocol/cli-and-mcp.html +6 -10
- package/public/docs/contributor-guide/architecture/worker-protocol/core-and-event-validation.html +6 -10
- package/public/docs/contributor-guide/architecture/worker-protocol/evidence-availability.html +7 -11
- package/public/docs/contributor-guide/architecture/worker-protocol/evidence-report.html +6 -10
- package/public/docs/contributor-guide/architecture/worker-protocol.html +6 -10
- package/public/docs/contributor-guide/contributing.html +6 -10
- package/public/docs/contributor-guide/development-setup.html +8 -12
- package/public/docs/contributor-guide/testing.html +9 -10
- package/public/docs/favicon.svg +2 -2
- package/public/docs/hashmap.json +1 -1
- package/public/docs/index.html +6 -10
- package/public/docs/logo-dark.svg +1 -0
- package/public/docs/logo-light.svg +1 -0
- package/public/docs/tuning-reference/anti-patterns.html +5 -9
- package/public/docs/tuning-reference/aqe.html +5 -9
- package/public/docs/tuning-reference/bottleneck-broadcast-sizing.html +5 -9
- package/public/docs/tuning-reference/bottleneck-cold-start.html +5 -9
- package/public/docs/tuning-reference/bottleneck-duplicate-plan-subtree.html +5 -9
- package/public/docs/tuning-reference/bottleneck-failures.html +5 -9
- package/public/docs/tuning-reference/bottleneck-gc.html +5 -9
- package/public/docs/tuning-reference/bottleneck-job-failure-rate.html +5 -9
- package/public/docs/tuning-reference/bottleneck-memory-utilization.html +5 -9
- package/public/docs/tuning-reference/bottleneck-retry-waste.html +5 -9
- package/public/docs/tuning-reference/bottleneck-shuffle.html +5 -9
- package/public/docs/tuning-reference/bottleneck-skew.html +5 -9
- package/public/docs/tuning-reference/bottleneck-slow-host.html +5 -9
- package/public/docs/tuning-reference/bottleneck-small-files.html +5 -9
- package/public/docs/tuning-reference/bottleneck-spill.html +5 -9
- package/public/docs/tuning-reference/bottleneck-straggler.html +5 -9
- package/public/docs/tuning-reference/bottleneck-tiny-tasks.html +5 -9
- package/public/docs/tuning-reference/bottleneck-utilization.html +5 -9
- package/public/docs/tuning-reference/caching.html +5 -9
- package/public/docs/tuning-reference/cluster-config.html +5 -9
- package/public/docs/tuning-reference/config.html +5 -9
- package/public/docs/tuning-reference/data-formats.html +5 -9
- package/public/docs/tuning-reference/index.html +5 -9
- package/public/docs/tuning-reference/intro.html +5 -9
- package/public/docs/tuning-reference/joins.html +5 -9
- package/public/docs/tuning-reference/memory-model.html +5 -9
- package/public/docs/tuning-reference/metrics.html +5 -9
- package/public/docs/tuning-reference/partitioning.html +5 -9
- package/public/docs/tuning-reference/pyspark.html +5 -9
- package/public/docs/tuning-reference/shuffle.html +5 -9
- package/public/docs/tuning-reference/spark-architecture.html +5 -9
- package/public/docs/tuning-reference/table-formats.html +5 -9
- package/public/docs/user-guide/alternative-log-retrieval/managed-platforms.html +5 -9
- package/public/docs/user-guide/alternative-log-retrieval/ssh-bastion.html +5 -9
- package/public/docs/user-guide/alternative-log-retrieval.html +5 -9
- package/public/docs/user-guide/getting-started/ci-and-automation.html +17 -15
- package/public/docs/user-guide/getting-started/reading-the-dashboard.html +6 -10
- package/public/docs/user-guide/getting-started/regression-metric-keys.html +5 -9
- package/public/docs/user-guide/getting-started/tuning-thresholds.html +7 -11
- package/public/docs/user-guide/getting-started.html +5 -9
- package/public/docs/user-guide/mcp-tools/compare-runs.html +16 -15
- package/public/docs/user-guide/mcp-tools/diagnose-run.html +28 -11
- package/public/docs/user-guide/mcp-tools/evaluate-budgets.html +6 -10
- package/public/docs/user-guide/mcp-tools/get-finding-documentation.html +5 -9
- package/public/docs/user-guide/mcp-tools/get-finding-evidence.html +7 -10
- package/public/docs/user-guide/mcp-tools/get-reference-doc.html +5 -9
- package/public/docs/user-guide/mcp-tools/get-run-summary.html +6 -10
- package/public/docs/user-guide/mcp-tools/list-runs.html +5 -9
- package/public/docs/user-guide/mcp-tools.html +6 -10
- package/public/docs/user-guide/run-comparison/how-stages-are-matched.html +5 -9
- package/public/docs/user-guide/run-comparison.html +6 -10
- package/public/docs/user-guide/understanding-findings.html +6 -10
- package/public/export-template.html +46 -46
- package/public/favicon.svg +2 -2
- package/public/index.html +8 -10
- package/public/sample-runs/sample-run.ndjson.gz +0 -0
- package/vendor-core/allocation.js +126 -39
- package/vendor-core/analyzer.js +85 -58
- package/vendor-core/api-merge-writes.js +3 -0
- package/vendor-core/aqe-skew.js +347 -0
- package/vendor-core/cli/budgets.js +6 -4
- package/vendor-core/cli/collect-run-pair.js +89 -0
- package/vendor-core/cli/collect-run-worker.js +16 -0
- package/vendor-core/cli/collect-run.js +1 -2
- package/vendor-core/cli/native-zstd.js +12 -16
- package/vendor-core/comparability.js +234 -0
- package/vendor-core/comparison-output.js +15 -7
- package/vendor-core/comparison-verdict.js +105 -25
- package/vendor-core/core-source-hash.txt +1 -1
- package/vendor-core/core-time-series.js +0 -1
- package/vendor-core/core-usage-locality.js +1 -1
- package/vendor-core/delta-log-paths.js +10 -1
- package/vendor-core/detectors.js +1078 -416
- package/vendor-core/docs-config.js +0 -4
- package/vendor-core/docs-content/detection/cache.md +2 -1
- package/vendor-core/docs-content/detection/cfg.md +19 -11
- package/vendor-core/docs-content/detection/cold.md +2 -1
- package/vendor-core/docs-content/detection/gc.md +7 -3
- package/vendor-core/docs-content/detection/host.md +11 -1
- package/vendor-core/docs-content/detection/mem.md +17 -6
- package/vendor-core/docs-content/detection/part.md +3 -1
- package/vendor-core/docs-content/detection/plan.md +55 -13
- package/vendor-core/docs-content/detection/shfl.md +11 -5
- package/vendor-core/docs-content/detection/skew.md +48 -1
- package/vendor-core/docs-content/detection/slow.md +4 -2
- package/vendor-core/docs-content/detection/spec.md +6 -1
- package/vendor-core/docs-content/detection/spill.md +6 -3
- package/vendor-core/docs-content/detection/strag.md +19 -6
- package/vendor-core/docs-content/detection/tiny.md +9 -3
- package/vendor-core/docs-content/detection/util.md +6 -2
- package/vendor-core/effective-conf.js +7 -10
- package/vendor-core/efficiency-model.js +24 -16
- package/vendor-core/etl-phases.js +1 -2
- package/vendor-core/event-handlers.js +175 -57
- package/vendor-core/event-schemas.js +21 -16
- package/vendor-core/evidence-availability.js +9 -2
- package/vendor-core/evidence-report.js +118 -35
- package/vendor-core/executor-peaks.js +41 -0
- package/vendor-core/export-data.js +5 -5
- package/vendor-core/finding-identity.js +78 -0
- package/vendor-core/finding-presentation.js +129 -39
- package/vendor-core/finding-types.js +108 -30
- package/vendor-core/format-utils.js +14 -15
- package/vendor-core/html-export.js +1 -1
- package/vendor-core/impact-band.js +2 -2
- package/vendor-core/impact-format.js +47 -19
- package/vendor-core/impact-model.js +28 -17
- package/vendor-core/job-groups.js +4 -4
- package/vendor-core/mcp-server-factory.js +48 -12
- package/vendor-core/mcp-tools.js +179 -24
- package/vendor-core/median.js +2 -2
- package/vendor-core/nested-loop-join.js +73 -0
- package/vendor-core/occupancy.js +1 -2
- package/vendor-core/parser-worker.js +1 -1
- package/vendor-core/plan-graph-model.js +14 -22
- package/vendor-core/plan-node-detail.js +2 -3
- package/vendor-core/plan-summary.js +24 -19
- package/vendor-core/plan-tree-walk.js +6 -8
- package/vendor-core/python-stage.js +12 -1
- package/vendor-core/recommendation-rollup.js +13 -12
- package/vendor-core/redact.js +52 -46
- package/vendor-core/remediation.js +10 -5
- package/vendor-core/run-aggregates.js +6 -8
- package/vendor-core/run-comparison.js +226 -66
- package/vendor-core/run-identity.js +12 -0
- package/vendor-core/run-interpretation.js +21 -0
- package/vendor-core/run-metrics.js +2 -2
- package/vendor-core/run-output.js +44 -11
- package/vendor-core/run-totals.js +12 -0
- package/vendor-core/run-verdict.js +76 -3
- package/vendor-core/scaling-sim.js +3 -4
- package/vendor-core/snappy-block.js +2 -2
- package/vendor-core/spark-conf.js +168 -0
- package/vendor-core/sql-stages.js +2 -2
- package/vendor-core/stage-alignment.js +2 -12
- package/vendor-core/stage-identity.js +58 -3
- package/vendor-core/stage-label.js +14 -0
- package/vendor-core/stage-plan-nodes.js +17 -3
- package/vendor-core/stage-quantiles.js +141 -9
- package/vendor-core/stage-structure.js +17 -3
- package/vendor-core/threshold-overrides.js +9 -3
- package/vendor-core/types.js +70 -23
- package/vendor-core/wall-clock.js +8 -0
- package/vendor-core/wasted-core-hours.js +12 -12
- package/vendor-core/write-targets.js +146 -14
- package/vendor-core/zstd-worker-client.js +1 -1
- package/vendor-core/zstd-worker.js +1 -1
- package/public/assets/AutoscalingChurn-8t3U3isq.js +0 -1
- package/public/assets/CacheUtilization-CJs9tTum.js +0 -1
- package/public/assets/CachingOpportunity-D1NcHs0V.js +0 -1
- package/public/assets/ColdStart-CdRJ9gD8.js +0 -1
- package/public/assets/ConfigAudit-B5Gbe5js.js +0 -1
- package/public/assets/CoreUsageArea-a--NTRGY.js +0 -1
- package/public/assets/Dashboard-C1hNeX49.js +0 -2
- package/public/assets/DisclosureContext-ZpE6CkHx.js +0 -1
- package/public/assets/DuplicatePlanSubtree-dobXdz7E.js +0 -1
- package/public/assets/ExecutorUtilization-D9grwi7t.js +0 -1
- package/public/assets/GcPressure-8-G2ri10.js +0 -1
- package/public/assets/IncompleteRun-B91lky7a.js +0 -1
- package/public/assets/JobFailures-BsWvBMyJ.js +0 -1
- package/public/assets/MemoryUtilization-BM5schZI.js +0 -1
- package/public/assets/OverBroadcast-DdN8JIJH.js +0 -1
- package/public/assets/PartitionHint-CUvbnnxy.js +0 -1
- package/public/assets/PartitionSizing-CY5HDYtp.js +0 -1
- package/public/assets/PlanExplorer-DgHCDBD_.js +0 -1
- package/public/assets/PlanGraphRoute-DH3KJb8j.js +0 -1
- package/public/assets/RetryWaste-DOnE9vGF.js +0 -1
- package/public/assets/ShuffleIO-MMnDESkF.js +0 -1
- package/public/assets/Skew-BmZZJ5ms.js +0 -1
- package/public/assets/SlowHost-CsJzfEqo.js +0 -1
- package/public/assets/SmallFiles-BoK3R1Ex.js +0 -1
- package/public/assets/SpeculationWaste-CnVxB5AJ.js +0 -1
- package/public/assets/Spill-BhNicyBy.js +0 -1
- package/public/assets/StageFailed-mAhHU4l_.js +0 -1
- package/public/assets/StageFindingGroup-BEtPWcT0.js +0 -1
- package/public/assets/StageHeader-DJkYkrsU.js +0 -1
- package/public/assets/StageShape-BDxRknLp.js +0 -1
- package/public/assets/StageSlowness-BPRw-otN.js +0 -1
- package/public/assets/Straggler-CZCbnOWP.js +0 -1
- package/public/assets/TaskFailures-C57YcLFQ.js +0 -1
- package/public/assets/TinyTask-Bi84qU7n.js +0 -1
- package/public/assets/UnderBroadcast-DdQV7htE.js +0 -1
- package/public/assets/charts-vendor-0VMaLVLN.js +0 -59
- package/public/assets/finding-anchor-Cl6_5hfV.js +0 -1
- package/public/assets/impact-sort-CssZ6MT2.js +0 -1
- package/public/assets/index-2h_TgUAb.css +0 -2
- package/public/assets/index-B-03mG7K.js +0 -14
- package/public/assets/plan-graph-vendor-BYl-AzN5.js +0 -7
- package/public/assets/react-vendor-DEdfrRTJ.js +0 -9
- package/public/assets/select-CQjNhprm.js +0 -1
- package/public/assets/usePagedRows-Dyl6T8Ok.js +0 -1
- package/public/assets/useRecentFiles-XZEnLlal.js +0 -11
- package/public/assets/useSortMode-Dhvit8dt.js +0 -1
- package/public/docs/assets/chunks/@localSearchIndexroot.u_e5bQz4.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets.md.YQcj5EI4.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets.md.YQcj5EI4.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets_plan-advisor.md.RlzvUmNm.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets_visual-system-and-templating.md.DYgUpIJB.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets_visual-system-and-templating.md.DYgUpIJB.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract.md.wj6Et6UD.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract_plan-attribution.md.yNex4bys.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract_plan-attribution.md.yNex4bys.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract_threshold-tables.md.CKjWG56Y.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_drill-down_plan-graph.md.DwOozIEs.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation.md.CZv_ZGOp.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_caveats-tuning-and-coverage.md.BUucRc0A.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_stage-union-rollup.md.DdCGtAGu.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_stage-union-rollup.md.DdCGtAGu.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_overview.md.C1sSvm9i.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_state-and-history_run-comparison-internals.md.CZA0JLtV.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_widget-rendering.md.BOZ1azXG.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_findings-tab.md.BQXycK6G.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_findings-tab.md.BQXycK6G.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_worker-protocol.md.BAnhi2-d.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_cli-and-mcp.md.DC1YqXBp.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_evidence-report.md.DVGZOWvW.js +0 -1
- package/public/docs/assets/contributor-guide_contributing.md.CQMvGwFt.js +0 -1
- package/public/docs/assets/contributor-guide_development-setup.md.D9bu4j_c.lean.js +0 -1
- package/public/docs/assets/contributor-guide_testing.md.By6XGR9a.js +0 -1
- package/public/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/public/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/public/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/public/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/public/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/public/docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/public/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/public/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/public/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/public/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/public/docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/public/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/public/docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/public/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/public/docs/assets/style.tmDhD3c8.css +0 -1
- package/public/docs/assets/user-guide_getting-started_ci-and-automation.md.OUQqw3mI.js +0 -23
- package/public/docs/assets/user-guide_getting-started_ci-and-automation.md.OUQqw3mI.lean.js +0 -1
- package/public/docs/assets/user-guide_getting-started_reading-the-dashboard.md.Obf3W3__.js +0 -1
- package/public/docs/assets/user-guide_mcp-tools_compare-runs.md.Cc_gLoix.lean.js +0 -1
- package/public/docs/assets/user-guide_mcp-tools_diagnose-run.md.BP1vnHA5.js +0 -23
- package/public/docs/assets/user-guide_run-comparison.md.BUALkohi.js +0 -1
- package/public/docs/assets/user-guide_run-comparison.md.BUALkohi.lean.js +0 -1
- package/public/docs/assets/user-guide_understanding-findings.md.C9YRruMT.js +0 -1
- package/public/docs/assets/user-guide_understanding-findings.md.C9YRruMT.lean.js +0 -1
- /package/public/docs/assets/{contributor-guide_architecture_board-widgets_caching-and-memory.md.8bH1HnZp.lean.js → contributor-guide_architecture_board-widgets_caching-and-memory.md.BYDo3ClR.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_architecture_board-widgets_plan-advisor.md.RlzvUmNm.lean.js → contributor-guide_architecture_board-widgets_plan-advisor.md.ajUAVdbc.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_architecture_overview.md.C1sSvm9i.lean.js → contributor-guide_architecture_overview.md.nxkpOhgf.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_architecture_widget-rendering.md.BOZ1azXG.lean.js → contributor-guide_architecture_widget-rendering.md.BrSz8Ezh.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_architecture_widget-rendering_list-sort-mode.md.BuHKgH0C.lean.js → contributor-guide_architecture_widget-rendering_list-sort-mode.md.37hcZJ7q.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_architecture_widget-rendering_row-expand-contract.md.ZT89u9f1.lean.js → contributor-guide_architecture_widget-rendering_row-expand-contract.md.mK_VmAWk.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_architecture_worker-protocol_core-and-event-validation.md.DSVFPpWb.lean.js → contributor-guide_architecture_worker-protocol_core-and-event-validation.md.DVSXn-bb.lean.js} +0 -0
- /package/public/docs/assets/{contributor-guide_contributing.md.CQMvGwFt.lean.js → contributor-guide_contributing.md.DBW4drtZ.lean.js} +0 -0
- /package/public/docs/assets/{user-guide_getting-started_reading-the-dashboard.md.Obf3W3__.lean.js → user-guide_getting-started_reading-the-dashboard.md.CGaxPX_1.lean.js} +0 -0
- /package/public/docs/assets/{user-guide_mcp-tools.md.C65SjWUL.lean.js → user-guide_mcp-tools.md.49r3L2YE.lean.js} +0 -0
- /package/public/docs/assets/{user-guide_mcp-tools_get-run-summary.md.DpxZ4ZNp.lean.js → user-guide_mcp-tools_get-run-summary.md.EhaIsele.lean.js} +0 -0
|
@@ -109,14 +109,14 @@ function ko(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...R(n)})}//
|
|
|
109
109
|
function Ao(e,t){let n=/* @__PURE__ */ jo(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(Mt(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(Mt(r))}},e(t.value,t)),t);return n}// @__NO_SIDE_EFFECTS__
|
|
110
110
|
function jo(e,t){let n=new V({check:`custom`,...R(t)});return n._zod.check=e,n}function Mo(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&Ge(e,t,n[t]);return e}function No(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Ea,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:/* @__PURE__ */ new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function Po(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function W(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,W(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Mo(o.schema,c),t.io===`input`&&G(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Fo(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function Io(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=/* @__PURE__ */ new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${Fo(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+Fo(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
|
|
111
111
|
|
|
112
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}r.count>1&&e.reused===`ref`&&a(n)}e.external&&(e.sharedDefsExtractedFor=e.external)}function Lo(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;Lo(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}const Ro=/* @__PURE__ */ new Set([`type`,`properties`,`required`,`additionalProperties`]),zo=[`oneOf`,`anyOf`];function Bo(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function Vo(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!Ro.has(e))return null;t.push(n)}let n={},r=/* @__PURE__ */ new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??Bo(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}Ge(n,r,e.length===1?e[0]:Vo(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=Bo(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function Ho(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of Ro)if(t in e)return;let n=t.filter(e=>zo.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=Vo(t);else{let e=n[0],i=zo.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>Vo([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,Mo(e,r))}function Uo(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Mo(i,s),Mo(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())Lo(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=/* @__PURE__ */ new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])Ho(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Mo(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,Ge(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Go(t,`input`,e.processors),output:Go(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function G(e,t){let n=t??{seen:/* @__PURE__ */ new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return G(r.element,n);if(r.type===`set`)return G(r.valueType,n);if(r.type===`lazy`)return G(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return G(r.innerType,n);if(r.type===`intersection`)return G(r.left,n)||G(r.right,n);if(r.type===`record`||r.type===`map`)return G(r.keyType,n)||G(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:G(r.in,n)||G(r.out,n);if(r.type===`object`){for(let e in r.shape)if(G(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(G(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(G(e,n))return!0;return!!(r.rest&&G(r.rest,n))}return!1}const Wo=(e,t={})=>n=>{let r=No({...n,processors:t});return W(e,r),Io(r,e),Uo(r,e)},Go=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=No({...i??{},target:a,io:t,processors:n});return W(e,o),Io(o,e),Uo(o,e)},Ko=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},qo=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},Jo=(e,t)=>{Ko(e,`minimum`,t),qo(e,`maximum`,t)},Yo=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},Xo=(e,t)=>{e.patterns??=/* @__PURE__ */ new Set,e.patterns.add(t)},Zo=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},Qo=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},$o=(e,t)=>Ko(e,`minimum`,t.minimum),es=(e,t)=>qo(e,`maximum`,t.maximum),ts=e=>(t,n)=>{Qo(t,n.format);let[r,i]=e[n.format];Ko(t,`minimum`,r),qo(t,`maximum`,i)},ns={greater_than:(e,t)=>Ko(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>qo(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>Yo(e,t.value),number_format:ts(dt),bigint_format:ts(ft),min_length:$o,max_length:es,length_equals:(e,t)=>Jo(e,t.length),min_size:$o,max_size:es,size_equals:(e,t)=>Jo(e,t.size),string_format:(e,t)=>{Qo(e,t.format),t.pattern&&Xo(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>Zo(e,t.mime)};function rs(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)ns[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&Ko(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&Ko(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&qo(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&qo(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&Yo(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&Zo(t,i.mime);for(let e of i.patterns??[])Xo(t,e);return t}const is={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},as=/* @__PURE__ */ new Map([[si,Gn],[li,Kn]]),os=e=>as.get(e)??e,ss=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=rs(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=is[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(os);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},cs=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=rs(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=/* @__PURE__ */ new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):Po(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},ls=(e,t,n,r)=>{n.type=`boolean`},us=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},ds=(e,t,n,r)=>{n.not={}},fs=(e,t,n,r)=>{let i=e._zod.def,a=Le(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},ps=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(Po(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(Po(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},ms=(e,t,n,r)=>{Po(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},hs=(e,t,n,r)=>{Po(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},gs=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=rs(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=W(a.element,t,{...r,path:[...r.path,`items`]})};function _s(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?_s(t.out):t.type===`catch`?_s(t.innerType):e._zod.optin}const vs=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&Po(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)Ge(i.properties,e,W(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?_s(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=W(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ys=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>W(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},bs=(e,t,n,r)=>{let i=e._zod.def,a=W(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=W(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},xs=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>W(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?W(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?_s(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=rs(e);typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function Ss(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=Ss(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>Ss(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?rr:nr).source),p):p}const Cs=/* @__PURE__ */ new WeakMap;function ws(e){let t=/* @__PURE__ */ new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=/* @__PURE__ */ new Map;for(let r of Cs.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=Ss(t,a,/* @__PURE__ */ new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}const Ts=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=rs(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=W(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)Ge(i.patternProperties,os(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=W(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=Cs.get(t);n||(n=[],Cs.set(t,n),t.deferred.push(()=>ws(t))),n.push(e)}i.additionalProperties=W(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&_s(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},Es=(e,t,n,r)=>{let i=e._zod.def,a=W(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},Ds=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Os=Symbol();function ks(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(Po(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),Os):JSON.parse(o)}const As=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=ks(i.defaultValue,e,t,n,r);o!==Os&&(n.default=o)},js=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=ks(i.defaultValue,e,t,n,r);o!==Os&&(n._prefault=o)},Ms=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{Po(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},Ns=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;W(o,t,r);let s=t.seen.get(e);s.ref=o},Ps=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Fs=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Is=/* @__PURE__ */ new WeakSet([Object.prototype,Error.prototype]);function Ls(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}const Rs=/*@__PURE__*/ B(`ZodError`,(e,t)=>{on.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);Is.has(n)||(Is.add(n),Ls(n,`format`,e=>t=>ln(e,t)),Ls(n,`flatten`,e=>t=>cn(e,t)),Ls(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,ze,2)}),Ls(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,ze,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),zs=/* @__PURE__ */ dn(Rs),Bs=/* @__PURE__ */ fn(Rs),Vs=/* @__PURE__ */ pn(Rs),Hs=/* @__PURE__ */ hn(Rs),Us=/* @__PURE__ */ xn(Rs),Ws=/* @__PURE__ */ Sn(Rs),Gs=/* @__PURE__ */ Cn(Rs),Ks=/* @__PURE__ */ wn(Rs),qs=/* @__PURE__ */ Tn(Rs),Js=/* @__PURE__ */ En(Rs),Ys=/* @__PURE__ */ Dn(Rs),Xs=/* @__PURE__ */ On(Rs);function Zs(){Zt.localeError||Qt(Sa())}function Qs(){Zt.memoizer||Qt({memoizer:ya()})}const K=/*@__PURE__*/ B(`ZodType`,(e,t)=>(Zs(),H.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(Qe(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ct(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(vl(e,t))},superRefine(e,t){return this.check(yl(e,t))},overwrite(e){return this.check(/* @__PURE__ */ So(e))},optional(){return el(this)},exactOptional(){return nl(this)},nullable(){return il(this)},nullish(){return el(il(this))},nonoptional(e){return ul(this,e)},array(){return Ic(this)},or(e){return zc([this,e])},and(e){return Uc(this,e)},transform(e){return ml(this,Qc(e))},default(e){return ol(this,e)},prefault(e){return cl(this,e)},catch(e){return fl(this,e)},pipe(e){return ml(this,e)},readonly(){return gl(this)},describe(e){let t=this.clone();return Ea.add(t,{description:e}),t},meta(...e){if(e.length===0)return Ea.get(this);let t=this.clone();return Ea.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Ft(this,`~standard`,{...kr(this),jsonSchema:{input:Go(this,`input`),output:Go(this,`output`)}})},set"~standard"(e){Pt(this,`~standard`,e)},parse:function e(t,n){return zs(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Bs(this,t,n,{callee:e})},safeParse(e,t){return Vs(this,e,t)},async safeParseAsync(e,t){return Hs(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Pt(this,`spa`,e)},validate(e,t){return vn(this,e,t)},validateAsync(e,t){return bn(this,e,t)},encode:function e(t,n){return Us(this,t,n,{callee:e})},decode:function e(t,n){return Ws(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Gs(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await Ks(this,t,n,{callee:e})},safeEncode(e,t){return qs(this,e,t)},safeDecode(e,t){return Js(this,e,t)},async safeEncodeAsync(e,t){return Ys(this,e,t)},async safeDecodeAsync(e,t){return Xs(this,e,t)},toJSONSchema(e){return Wo(this,{})(e)},get description(){return Ea.get(this)?.description},get _def(){return this._zod.def}}),$s=/*@__PURE__*/ B(`_ZodString`,(e,t)=>{Ar.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ss(e,t,n,r)},/*@__PURE__*/ It({format:e=>rs(e).format??null,minLength:e=>rs(e).minimum??null,maxLength:e=>rs(e).maximum??null},{regex(...e){return this.check(/* @__PURE__ */ go(...e))},includes(...e){return this.check(/* @__PURE__ */ yo(...e))},startsWith(...e){return this.check(/* @__PURE__ */ bo(...e))},endsWith(...e){return this.check(/* @__PURE__ */ xo(...e))},min(...e){return this.check(/* @__PURE__ */ mo(...e))},max(...e){return this.check(/* @__PURE__ */ po(...e))},length(...e){return this.check(/* @__PURE__ */ ho(...e))},nonempty(...e){return this.check(/* @__PURE__ */ mo(1,...e))},lowercase(e){return this.check(/* @__PURE__ */ _o(e))},uppercase(e){return this.check(/* @__PURE__ */ vo(e))},trim(){return this.check(/* @__PURE__ */ wo())},normalize(...e){return this.check(/* @__PURE__ */ Co(...e))},toLowerCase(){return this.check(/* @__PURE__ */ To())},toUpperCase(){return this.check(/* @__PURE__ */ Eo())},slugify(){return this.check(/* @__PURE__ */ Do())}})),ec=/*@__PURE__*/ B(`ZodString`,(e,t)=>{Ar.init(e,t),$s.init(e,t)},{email(e){return this.check(/* @__PURE__ */ ka(ac,e))},url(e){return this.check(/* @__PURE__ */ Fa(cc,e))},jwt(e){return this.check(/* @__PURE__ */ Xa(Cc,e))},emoji(e){return this.check(/* @__PURE__ */ Ia(lc,e))},guid(e){return this.check(/* @__PURE__ */ Aa(oc,e))},uuid(e){return this.check(/* @__PURE__ */ ja(sc,e))},uuidv4(e){return this.check(/* @__PURE__ */ Ma(sc,e))},uuidv6(e){return this.check(/* @__PURE__ */ Na(sc,e))},uuidv7(e){return this.check(/* @__PURE__ */ Pa(sc,e))},nanoid(e){return this.check(/* @__PURE__ */ La(uc,e))},cuid(e){return this.check(/* @__PURE__ */ Ra(dc,e))},cuid2(e){return this.check(/* @__PURE__ */ za(fc,e))},ulid(e){return this.check(/* @__PURE__ */ Ba(pc,e))},base64(e){return this.check(/* @__PURE__ */ qa(bc,e))},base64url(e){return this.check(/* @__PURE__ */ Ja(xc,e))},xid(e){return this.check(/* @__PURE__ */ Va(mc,e))},ksuid(e){return this.check(/* @__PURE__ */ Ha(hc,e))},ipv4(e){return this.check(/* @__PURE__ */ Ua(gc,e))},ipv6(e){return this.check(/* @__PURE__ */ Wa(_c,e))},cidrv4(e){return this.check(/* @__PURE__ */ Ga(vc,e))},cidrv6(e){return this.check(/* @__PURE__ */ Ka(yc,e))},e164(e){return this.check(/* @__PURE__ */ Ya(Sc,e))},datetime(e){return this.check(/* @__PURE__ */ Za(tc,e))},date(e){return this.check(/* @__PURE__ */ Qa(nc,e))},time(e){return this.check(/* @__PURE__ */ $a(rc,e))},duration(e){return this.check(/* @__PURE__ */ eo(ic,e))}});function q(e){return/* @__PURE__ */ Oa(ec,e)}const J=/*@__PURE__*/ B(`ZodStringFormat`,(e,t)=>{U.init(e,t),$s.init(e,t)}),tc=/*@__PURE__*/ B(`ZodISODateTime`,(e,t)=>{Yr.init(e,t),J.init(e,t)}),nc=/*@__PURE__*/ B(`ZodISODate`,(e,t)=>{Xr.init(e,t),J.init(e,t)}),rc=/*@__PURE__*/ B(`ZodISOTime`,(e,t)=>{Zr.init(e,t),J.init(e,t)}),ic=/*@__PURE__*/ B(`ZodISODuration`,(e,t)=>{Qr.init(e,t),J.init(e,t)}),ac=/*@__PURE__*/ B(`ZodEmail`,(e,t)=>{Nr.init(e,t),J.init(e,t)}),oc=/*@__PURE__*/ B(`ZodGUID`,(e,t)=>{jr.init(e,t),J.init(e,t)}),sc=/*@__PURE__*/ B(`ZodUUID`,(e,t)=>{Mr.init(e,t),J.init(e,t)}),cc=/*@__PURE__*/ B(`ZodURL`,(e,t)=>{Vr.init(e,t),J.init(e,t)}),lc=/*@__PURE__*/ B(`ZodEmoji`,(e,t)=>{Hr.init(e,t),J.init(e,t)}),uc=/*@__PURE__*/ B(`ZodNanoID`,(e,t)=>{Ur.init(e,t),J.init(e,t)}),dc=/*@__PURE__*/ B(`ZodCUID`,(e,t)=>{Wr.init(e,t),J.init(e,t)}),fc=/*@__PURE__*/ B(`ZodCUID2`,(e,t)=>{Gr.init(e,t),J.init(e,t)}),pc=/*@__PURE__*/ B(`ZodULID`,(e,t)=>{Kr.init(e,t),J.init(e,t)}),mc=/*@__PURE__*/ B(`ZodXID`,(e,t)=>{qr.init(e,t),J.init(e,t)}),hc=/*@__PURE__*/ B(`ZodKSUID`,(e,t)=>{Jr.init(e,t),J.init(e,t)}),gc=/*@__PURE__*/ B(`ZodIPv4`,(e,t)=>{$r.init(e,t),J.init(e,t)}),_c=/*@__PURE__*/ B(`ZodIPv6`,(e,t)=>{ni.init(e,t),J.init(e,t)}),vc=/*@__PURE__*/ B(`ZodCIDRv4`,(e,t)=>{ri.init(e,t),J.init(e,t)}),yc=/*@__PURE__*/ B(`ZodCIDRv6`,(e,t)=>{ai.init(e,t),J.init(e,t)}),bc=/*@__PURE__*/ B(`ZodBase64`,(e,t)=>{ci.init(e,t),J.init(e,t)}),xc=/*@__PURE__*/ B(`ZodBase64URL`,(e,t)=>{di.init(e,t),J.init(e,t)}),Sc=/*@__PURE__*/ B(`ZodE164`,(e,t)=>{fi.init(e,t),J.init(e,t)}),Cc=/*@__PURE__*/ B(`ZodJWT`,(e,t)=>{mi.init(e,t),J.init(e,t)}),wc=/*@__PURE__*/ B(`ZodNumber`,(e,t)=>{hi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cs(e,t,n,r),e.isFinite=!0},/*@__PURE__*/ It({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=rs(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=rs(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=rs(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>rs(e).format??null},{gt(e,t){return this.check(/* @__PURE__ */ lo(e,t))},gte(e,t){return this.check(/* @__PURE__ */ uo(e,t))},min(e,t){return this.check(/* @__PURE__ */ uo(e,t))},lt(e,t){return this.check(/* @__PURE__ */ so(e,t))},lte(e,t){return this.check(/* @__PURE__ */ co(e,t))},max(e,t){return this.check(/* @__PURE__ */ co(e,t))},int(e){return this.check(Ec(e))},safe(e){return this.check(Ec(e))},positive(e){return this.check(/* @__PURE__ */ lo(0,e))},nonnegative(e){return this.check(/* @__PURE__ */ uo(0,e))},negative(e){return this.check(/* @__PURE__ */ so(0,e))},nonpositive(e){return this.check(/* @__PURE__ */ co(0,e))},multipleOf(e,t){return this.check(/* @__PURE__ */ fo(e,t))},step(e,t){return this.check(/* @__PURE__ */ fo(e,t))},finite(){return this}}));function Y(e){return/* @__PURE__ */ to(wc,e)}const Tc=/*@__PURE__*/ B(`ZodNumberFormat`,(e,t)=>{gi.init(e,t),wc.init(e,t)});function Ec(e){return/* @__PURE__ */ no(Tc,e)}const Dc=/*@__PURE__*/ B(`ZodBoolean`,(e,t)=>{_i.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ls(e,t,n,r)});function Oc(e){return/* @__PURE__ */ ro(Dc,e)}const kc=/*@__PURE__*/ B(`ZodNull`,(e,t)=>{vi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>us(e,t,n,r)});function Ac(e){return/* @__PURE__ */ io(kc,e)}const jc=/*@__PURE__*/ B(`ZodUnknown`,(e,t)=>{yi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Mc(){return/* @__PURE__ */ ao(jc)}const Nc=/*@__PURE__*/ B(`ZodNever`,(e,t)=>{bi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r)});function Pc(e){return/* @__PURE__ */ oo(Nc,e)}const Fc=/*@__PURE__*/ B(`ZodArray`,(e,t)=>{Qs(),Si.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gs(e,t,n,r),e.element=t.element},{min(e,t){return this.check(/* @__PURE__ */ mo(e,t))},nonempty(e){return this.check(/* @__PURE__ */ mo(1,e))},max(e,t){return this.check(/* @__PURE__ */ po(e,t))},length(e,t){return this.check(/* @__PURE__ */ ho(e,t))},unwrap(){return this.element}});function Ic(e,t){return/* @__PURE__ */ Oo(Fc,e,t)}const Lc=/*@__PURE__*/ B(`ZodObject`,(e,t)=>{Qs(),Oi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vs(e,t,n,r),Ht(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return Yc(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(Qe(this._zod.def,{catchall:e}))},passthrough(){return this.clone(Qe(this._zod.def,{catchall:Mc()}))},loose(){return this.clone(Qe(this._zod.def,{catchall:Mc()}))},strict(){return this.clone(Qe(this._zod.def,{catchall:Pc()}))},strip(){return this.clone(Qe(this._zod.def,{catchall:void 0}))},extend(e){return gt(this,e)},safeExtend(e){return vt(this,e)},merge(e){return yt(this,e)},pick(e){return pt(this,e)},omit(e){return ht(this,e)},partial(...e){return bt($c,this,e[0])},exactPartial(...e){return bt(tl,this,e[0],`exactPartial`)},required(...e){return xt(ll,this,e[0])}});function X(e,t){let n={type:`object`,shape:e??{},...R(t)};return new Lc(n)}const Rc=/*@__PURE__*/ B(`ZodUnion`,(e,t)=>{Ai.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ys(e,t,n,r),e.options=t.options});function zc(e,t){return new Rc({type:`union`,options:e,...R(t)})}const Bc=/*@__PURE__*/ B(`ZodDiscriminatedUnion`,(e,t)=>{Rc.init(e,t),Mi.init(e,t)});function Vc(e,t,n){return new Bc({type:`union`,options:t,discriminator:e,...R(n)})}const Hc=/*@__PURE__*/ B(`ZodIntersection`,(e,t)=>{Ni.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bs(e,t,n,r)});function Uc(e,t){return new Hc({type:`intersection`,left:e,right:t})}const Wc=/*@__PURE__*/ B(`ZodTuple`,(e,t)=>{Qs(),Ii.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xs(e,t,n,r)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw Error(`.partial() cannot be used on tuple schemas containing refinements`);return this.clone({...e,items:e.items.map(e=>new $c({type:`optional`,innerType:e}))})}});function Gc(e,t,n){let r=t instanceof H;return new Wc({type:`tuple`,items:e,rest:r?t:null,...R(r?n:t)})}const Kc=/*@__PURE__*/ B(`ZodRecord`,(e,t)=>{Qs(),Bi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ts(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function qc(e,t,n){return!t||!t._zod?new Kc({type:`record`,keyType:q(),valueType:e,...R(t)}):new Kc({type:`record`,keyType:e,valueType:t,...R(n)})}const Jc=/*@__PURE__*/ B(`ZodEnum`,(e,t)=>{Vi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fs(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Jc({...t,checks:[],...R(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Jc({...t,checks:[],...R(r),entries:i})}});function Yc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new Jc({type:`enum`,entries:n,...R(t)})}const Xc=/*@__PURE__*/ B(`ZodLiteral`,(e,t)=>{Hi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ps(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Z(e,t){return new Xc({type:`literal`,values:Array.isArray(e)?e:[e],...R(t)})}const Zc=/*@__PURE__*/ B(`ZodTransform`,(e,t)=>{Qs(),Ui.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hs(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Xt(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Mt(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(Mt(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Qc(e){return new Zc({type:`transform`,transform:e})}const $c=/*@__PURE__*/ B(`ZodOptional`,(e,t)=>{Gi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function el(e){return new $c({type:`optional`,innerType:e})}const tl=/*@__PURE__*/ B(`ZodExactOptional`,(e,t)=>{Ki.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function nl(e){return new tl({type:`optional`,innerType:e})}const rl=/*@__PURE__*/ B(`ZodNullable`,(e,t)=>{qi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Es(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function il(e){return new rl({type:`nullable`,innerType:e})}const al=/*@__PURE__*/ B(`ZodDefault`,(e,t)=>{Ji.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>As(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ol(e,t){return new al({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():at(t)}})}const sl=/*@__PURE__*/ B(`ZodPrefault`,(e,t)=>{Xi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>js(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function cl(e,t){return new sl({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():at(t)}})}const ll=/*@__PURE__*/ B(`ZodNonOptional`,(e,t)=>{Zi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ds(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ul(e,t){return new ll({type:`nonoptional`,innerType:e,...R(t)})}const dl=/*@__PURE__*/ B(`ZodCatch`,(e,t)=>{ea.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ms(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function fl(e,t){return new dl({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Ut(t)})}const pl=/*@__PURE__*/ B(`ZodPipe`,(e,t)=>{ta.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ns(e,t,n,r),e.in=t.in,e.out=t.out});function ml(e,t){return new pl({type:`pipe`,in:e,out:t})}const hl=/*@__PURE__*/ B(`ZodReadonly`,(e,t)=>{ra.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ps(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function gl(e){return new hl({type:`readonly`,innerType:e})}const _l=/*@__PURE__*/ B(`ZodCustom`,(e,t)=>{aa.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ms(e,t,n,r)});function vl(e,t={}){return/* @__PURE__ */ ko(_l,e,t)}function yl(e,t){return/* @__PURE__ */ Ao(e,t)}const bl={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`};var xl;xl||={};const Sl=X({name:q(),accumulatorId:Y().optional(),value:zc([q(),Y()]).optional(),metricType:q().optional()}),Cl=X({nodeName:q(),simpleString:q().optional(),metrics:Ic(Sl).optional(),metadata:qc(q(),Mc()).optional(),children:Ic(Mc())});function wl(e){let t=Cl.parse(e),n=[{shallow:t,children:[],pendingRaw:[...t.children],depth:0}],r=/* @__PURE__ */ new Map;for(;n.length>0;){let e=n[n.length-1];if(e.pendingRaw.length===0){n.pop();let t={...e.shallow,children:e.children},i=r.get(e);if(i){i.children.push(t);continue}return t}if(e.depth>500)throw Error(`sparkPlanInfo tree exceeds max depth of 500`);let t=e.pendingRaw.shift(),i=Cl.parse(t),a={shallow:i,children:[],pendingRaw:[...i.children],depth:e.depth+1};r.set(a,e),n.push(a)}throw Error(`unreachable: sparkPlanInfo tree stack exhausted without resolving root`)}const Tl=Mc().nullable().optional().transform((e,t)=>{if(e==null)return null;try{return wl(e)}catch(e){return t.addIssue({code:bl.custom,message:e instanceof Error?e.message:String(e)}),Gt}}),El=X({Event:Z(`SparkListenerLogStart`),"Spark Version":q().optional()}),Dl=X({Event:Z(`SparkListenerApplicationStart`),"App ID":q().optional(),"App Name":q().optional(),Timestamp:Y().optional(),"Spark Version":q().optional()}),Ol=zc([q(),Y(),Oc()]),kl=X({Event:Z(`SparkListenerEnvironmentUpdate`),"Spark Properties":zc([qc(q(),Ol),Ic(Gc([q(),Ol])),Ac()]).optional()}),Al=X({Event:Z(`SparkListenerApplicationEnd`),Timestamp:Y().optional()}),jl=X({Event:Z(`SparkListenerExecutorAdded`),Timestamp:Y(),"Executor ID":q(),"Executor Info":X({Host:q().optional(),"Total Cores":Y().optional(),"Resource Profile Id":Y().optional()}).optional(),"Resource Profile Id":Y().optional()}),Ml=X({Event:Z(`SparkListenerExecutorRemoved`),Timestamp:Y(),"Executor ID":q(),"Removed Reason":q().optional()}),Nl=X({Event:Z(`SparkListenerJobStart`),"Job ID":Y().optional(),"Submission Time":Y().optional(),"Stage IDs":Ic(Y()).optional(),Properties:X({"spark.sql.execution.id":zc([q(),Y()]).optional()}).optional()}),Pl=X({Event:Z(`SparkListenerJobEnd`),"Job ID":Y(),"Completion Time":Y().optional(),"Job Result":X({Result:q().optional(),Exception:X({Message:q().optional()}).optional()}).optional()}),Fl=X({"RDD ID":Y().optional(),Name:q().optional(),Callsite:q().optional(),"Storage Level":X({"Use Disk":Oc().optional(),"Use Memory":Oc().optional(),Deserialized:Oc().optional(),Replication:Y().optional()}).optional(),"Number of Partitions":Y().optional(),"Number of Cached Partitions":Y().optional(),"Memory Size":Y().optional(),"Disk Size":Y().optional()}),Il=X({Event:Z(`SparkListenerStageSubmitted`),"Stage Info":X({"Stage ID":Y(),"Stage Attempt ID":Y().optional(),"Stage Name":q().optional(),Details:q().optional(),"Submission Time":Y().optional(),"Parent IDs":Ic(Y()).optional(),"RDD Info":Ic(Fl).optional()})}),Ll=X({Event:Z(`SparkListenerBlockUpdated`),"Block Updated Info":X({"Block Manager ID":X({"Executor ID":q().optional()}).optional(),"Block ID":q(),"Storage Level":X({"Use Disk":Oc().optional(),"Use Memory":Oc().optional(),Replication:Y().optional()}).optional(),"Memory Size":Y().optional(),"Disk Size":Y().optional()})}),Rl=Vc(`Event`,[El,Dl,kl,Al,Nl,Pl,Il,X({Event:Z(`SparkListenerStageCompleted`),"Stage Info":X({"Stage ID":Y(),"Submission Time":Y().optional(),"Completion Time":Y().optional(),"Failure Reason":q().optional()})}),X({Event:Z(`SparkListenerStageExecutorMetrics`),"Stage ID":Y(),"Executor ID":q(),"Executor Metrics":qc(q(),Y()).optional()}),X({Event:Z(`SparkListenerTaskEnd`),"Stage ID":Y(),"Stage Attempt ID":Y().optional(),"Task End Reason":X({Reason:q().optional(),"Class Name":Mc().optional(),Description:Mc().optional(),"Full Stack Trace":Mc().optional(),"Loss Reason":Mc().optional(),Message:Mc().optional(),"Kill Reason":Mc().optional()}).optional(),"Task Info":X({"Launch Time":Y().optional(),"Finish Time":Y().optional(),Failed:Oc().optional(),Killed:Oc().optional(),Speculative:Oc().optional(),Host:q().optional(),"Executor ID":q().optional(),Locality:q().optional(),Index:Y().optional(),"Task ID":Y().optional(),"Attempt Number":Y().optional(),Accumulables:Ic(X({ID:Y()})).max(1e4).optional()}).optional(),"Task Metrics":X({"Peak Execution Memory":Y().optional(),"JVM GC Time":Y().optional(),"Memory Bytes Spilled":Y().optional(),"Disk Bytes Spilled":Y().optional(),"Executor Run Time":Y().optional(),"Executor CPU Time":Y().optional(),"Shuffle Read Metrics":X({"Remote Bytes Read":Y().optional(),"Local Bytes Read":Y().optional(),"Fetch Wait Time":Y().optional()}).optional(),"Shuffle Write Metrics":X({"Shuffle Bytes Written":Y().optional()}).optional(),"Input Metrics":X({"Bytes Read":Y().optional()}).optional(),"Output Metrics":X({"Bytes Written":Y().optional(),"Records Written":Y().optional()}).optional()}).optional()}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionStart`),executionId:Y(),rootExecutionId:Y().optional(),description:q().optional(),physicalPlanDescription:q().optional(),time:Y(),sparkPlanInfo:Tl}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerSQLAdaptiveExecutionUpdate`),executionId:Y(),sparkPlanInfo:Tl}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionEnd`),executionId:Y(),time:Y()}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerDriverAccumUpdates`),executionId:Y(),accumUpdates:Ic(Gc([Y(),Y()]))}),jl,Ml,Ll]),zl=[`MergeIntoCommand`,`UpdateCommand`,`DeleteCommand`,`WriteIntoDelta`,`WriteIntoDeltaCommand`,`SaveIntoDataSourceCommand`];function Bl(e){throw Error(`Unreachable case: ${JSON.stringify(e)}`)}function Vl(e){let t=e.length;if(t===0)return 0;let n=t>>1;return t%2==1?e[n]:(e[n-1]+e[n])/2}const Hl=[{key:`DURATION`,name:`duration`,prop:`duration`},{key:`GC_TIME`,name:`gcTime`,prop:`gcTime`},{key:`MEM_SPILLED`,name:`memorySpilled`,prop:`memSpilled`},{key:`DISK_SPILLED`,name:`diskSpilled`,prop:`diskSpilled`},{key:`SHUFFLE_READ`,name:`shuffleRead`,prop:`shuffleRead`},{key:`SHUFFLE_WRITE`,name:`shuffleWrite`,prop:`shuffleWrite`},{key:`LAUNCH_TIME`,name:`launchTime`,prop:`launchTime`},{key:`FINISH_TIME`,name:`finishTime`,prop:`finishTime`}],Ul=Hl.length,Q=Object.freeze({...Object.fromEntries(Hl.map((e,t)=>[e.key,t])),STRIDE:Ul}),Wl=Hl.map(e=>e.name),Gl=Hl.map(e=>e.prop);function Kl(e,t,n){if(t.taskAttempts===null)return null;let r=t,i=[],a=0,o=0,s=0,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=[],f=/* @__PURE__ */ new Map,p=/* @__PURE__ */ new Map,m=0;for(let e of t.taskAttempts.values()){if(a++,e.failed){o++,e.reason&&u.set(e.reason,(u.get(e.reason)??0)+1);let t=e.failure;t&&f.set(t,(f.get(t)??0)+1),d.length<20&&d.push({taskId:e.taskId,attemptNumber:e.attemptNumber,host:e.host,executorId:e.executorId,reason:e.reason,peakExecMem:e.peakExecMem,memSpilled:e.memSpilled,shuffleWrite:e.shuffleWrite})}if(e.speculative&&s++,e.host){let t=c.get(e.host);t||(t={taskCount:0,totalDuration:0},c.set(e.host,t)),t.taskCount++,t.totalDuration+=e.duration}if(e.executorId){let t=l.get(e.executorId);t||(t={taskCount:0,totalDuration:0,inputBytes:0,shuffleReadBytes:0,shuffleWriteBytes:0},l.set(e.executorId,t)),t.taskCount++,t.totalDuration+=e.duration,t.inputBytes+=e.inputBytes,t.shuffleReadBytes+=e.shuffleRead,t.shuffleWriteBytes+=e.shuffleWrite}e.locality&&p.set(e.locality,(p.get(e.locality)??0)+1),e.peakExecMem>m&&(m=e.peakExecMem),r.shuffleReadBytes+=e.shuffleRead,r.shuffleWriteBytes+=e.shuffleWrite,r.fetchWaitTime+=e.fetchWaitTime,r.memoryBytesSpilled+=e.memSpilled,r.diskBytesSpilled+=e.diskSpilled,r.jvmGCTime+=e.gcTime,r.executorRunTime+=e.executorRunTime,r.executorCpuTime+=e.executorCpuTime,r.inputBytes+=e.inputBytes,r.outputBytes+=e.outputBytes,e.outputRecords!=null&&(r.outputRecords=(r.outputRecords??0)+e.outputRecords);for(let t=0;t<Gl.length;t++)i.push(e[Gl[t]])}t.taskCount=a,t.peakExecutionMemoryMax=m,t.failedTasks=o,t.speculativeTasks=s,t.taskAttempts=null,t.failureDetails=null;let h=new Float64Array(i);n.taskStore.set(e,h);let{p50:g,p95:_,max:v}=Ql(h),y=r.memoryBytesSpilled>0?$l(h):`unclassified`,{p50:ee,p95:b,max:x}=Zl(h,Q.SHUFFLE_READ),{p50:S,p95:C,max:w}=Zl(h,Q.MEM_SPILLED),{p50:T,p95:E,max:D}=Zl(h,Q.DISK_SPILLED),O=4*g,k=0,A=0,j=0,te=h.length/Q.STRIDE;if(g>0)for(let e=0;e<te;e++){let t=h[e*Q.STRIDE+Q.DURATION];t>O?(k++,A+=t-g):t>j&&(j=t)}let M=Jl(h),ne=k>0?Yl(h,g,M):0,re=[...c.entries()].map(([e,t])=>({host:e,taskCount:t.taskCount,totalDuration:t.totalDuration})),ie=[...l.entries()].map(([e,t])=>({executorId:e,taskCount:t.taskCount,totalDuration:t.totalDuration,inputBytes:t.inputBytes,shuffleReadBytes:t.shuffleReadBytes,shuffleWriteBytes:t.shuffleWriteBytes})),ae=[...u.entries()].map(([e,t])=>({reason:e,count:t})),oe=[...f.entries()].map(([e,t])=>({...e,count:t})).sort((e,t)=>t.count-e.count),se=[...p.entries()].map(([e,t])=>({locality:e,count:t})),N={...t,hostStats:re,executorStats:ie,failureReasons:ae,localityStats:se,stragglerCount:k,stragglerExcessMs:A,longestNonStragglerMs:j,tailReplayRecoveryMs:ne,failedTaskSamples:d,failureGroups:oe,peakExecutionMemoryMax:m,taskActiveMs:ql(h),peakConcurrentTasks:M,taskDurationP50:g,taskDurationP95:_,taskDurationMax:v,shuffleReadP50:ee,shuffleReadP95:b,shuffleReadMax:x,spillMemP50:S,spillMemP95:C,spillMemMax:w,spillDiskP50:T,spillDiskP95:E,spillDiskMax:D,gcPct:r.executorRunTime>0?r.jvmGCTime/r.executorRunTime*100:0,spillClassification:y,stageType:r.shuffleReadBytes>0?`REDUCE`:`MAP`};return delete N.taskAttempts,delete N.failureDetails,delete N.speculativeWinners,delete N.lateSpeculationWaste,delete N.stageAttemptId,{type:`stage`,data:N}}function ql(e){let t=e.length/Q.STRIDE,n=[];for(let r=0;r<t;r++){let t=e[r*Q.STRIDE+Q.LAUNCH_TIME],i=e[r*Q.STRIDE+Q.FINISH_TIME];t>0&&i>t&&n.push([t,i])}n.sort((e,t)=>e[0]-t[0]);let r=0,i=-1/0,a=-1/0;for(let[e,t]of n)e>a?(a>i&&(r+=a-i),i=e,a=t):t>a&&(a=t);return a>i&&(r+=a-i),r}function Jl(e){let t=e.length/Q.STRIDE,n=[],r=[];for(let i=0;i<t;i++){let t=e[i*Q.STRIDE+Q.LAUNCH_TIME],a=e[i*Q.STRIDE+Q.FINISH_TIME];t>0&&a>t&&(n.push(t),r.push(a))}n.sort((e,t)=>e-t),r.sort((e,t)=>e-t);let i=0,a=0,o=0;for(let e of n){for(;o<r.length&&r[o]<=e;)a--,o++;a++,a>i&&(i=a)}return i}function Yl(e,t,n){let r=e.length/Q.STRIDE;if(r<2||!(t>0))return 0;let i=new Uint32Array(r);for(let e=0;e<r;e++)i[e]=e;i.sort((t,n)=>e[t*Q.STRIDE+Q.LAUNCH_TIME]-e[n*Q.STRIDE+Q.LAUNCH_TIME]||t-n);let a=new Float64Array(Math.max(1,Math.min(n,r))),o=4*t,s=Xl(e,i,a,1/0,t),c=Xl(e,i,a,o,t);return Math.max(0,s-c)}function Xl(e,t,n,r,i){n.fill(0);let a=n.length,o=0;for(let s=0;s<t.length;s++){let c=e[t[s]*Q.STRIDE+Q.DURATION],l=n[0]+(c>r?i:c);l>o&&(o=l);let u=0;for(;;){let e=2*u+1;if(e>=a)break;let t=e+1<a&&n[e+1]<n[e]?e+1:e;if(n[t]>=l)break;n[u]=n[t],u=t}n[u]=l}return o}function Zl(e,t){let n=e.length/Q.STRIDE;if(n===0)return{p50:0,p95:0,max:0};let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=e[i*Q.STRIDE+t];return r.sort(),{p50:Vl(r),p95:r[Math.ceil(n*.95)-1],max:r[n-1]}}function Ql(e){return Zl(e,Q.DURATION)}function $l(e){let t=e.length/Q.STRIDE;if(t===0)return`unclassified`;let n=0;for(let r=0;r<t;r++)e[r*Q.STRIDE+Q.MEM_SPILLED]===0&&n++;let r=n/t;return r>=.8?`skew`:r<.2?`volume`:`unclassified`}function eu(e,t){return e.length>t?`${e.slice(0,t-3)}...`:e}function tu(e){return typeof e==`string`&&e.trim().length>0?e:null}function nu(e){if(e==null)return null;let t=e.split(`
|
|
113
|
-
`).map(e=>e.trim()).find(e=>e.length>0);return t?
|
|
114
|
-
`).filter(e=>e.trim().length>0),n=
|
|
115
|
-
`).map(e=>e.replace(/\s+$/,``)).filter(e=>e.trim().length>0);if(t.length===0)return null;let n=t.slice(0,9);if(t.length>9){let e=
|
|
116
|
-
`),2e3)}function
|
|
117
|
-
`)?n:null);return{reason:t,className:
|
|
112
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}r.count>1&&e.reused===`ref`&&a(n)}e.external&&(e.sharedDefsExtractedFor=e.external)}function Lo(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;Lo(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}const Ro=/* @__PURE__ */ new Set([`type`,`properties`,`required`,`additionalProperties`]),zo=[`oneOf`,`anyOf`];function Bo(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function Vo(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!Ro.has(e))return null;t.push(n)}let n={},r=/* @__PURE__ */ new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??Bo(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}Ge(n,r,e.length===1?e[0]:Vo(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=Bo(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function Ho(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of Ro)if(t in e)return;let n=t.filter(e=>zo.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=Vo(t);else{let e=n[0],i=zo.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>Vo([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,Mo(e,r))}function Uo(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Mo(i,s),Mo(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())Lo(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=/* @__PURE__ */ new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])Ho(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Mo(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,Ge(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Go(t,`input`,e.processors),output:Go(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function G(e,t){let n=t??{seen:/* @__PURE__ */ new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return G(r.element,n);if(r.type===`set`)return G(r.valueType,n);if(r.type===`lazy`)return G(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return G(r.innerType,n);if(r.type===`intersection`)return G(r.left,n)||G(r.right,n);if(r.type===`record`||r.type===`map`)return G(r.keyType,n)||G(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:G(r.in,n)||G(r.out,n);if(r.type===`object`){for(let e in r.shape)if(G(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(G(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(G(e,n))return!0;return!!(r.rest&&G(r.rest,n))}return!1}const Wo=(e,t={})=>n=>{let r=No({...n,processors:t});return W(e,r),Io(r,e),Uo(r,e)},Go=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=No({...i??{},target:a,io:t,processors:n});return W(e,o),Io(o,e),Uo(o,e)},Ko=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},qo=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},Jo=(e,t)=>{Ko(e,`minimum`,t),qo(e,`maximum`,t)},Yo=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},Xo=(e,t)=>{e.patterns??=/* @__PURE__ */ new Set,e.patterns.add(t)},Zo=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},Qo=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},$o=(e,t)=>Ko(e,`minimum`,t.minimum),es=(e,t)=>qo(e,`maximum`,t.maximum),ts=e=>(t,n)=>{Qo(t,n.format);let[r,i]=e[n.format];Ko(t,`minimum`,r),qo(t,`maximum`,i)},ns={greater_than:(e,t)=>Ko(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>qo(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>Yo(e,t.value),number_format:ts(dt),bigint_format:ts(ft),min_length:$o,max_length:es,length_equals:(e,t)=>Jo(e,t.length),min_size:$o,max_size:es,size_equals:(e,t)=>Jo(e,t.size),string_format:(e,t)=>{Qo(e,t.format),t.pattern&&Xo(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>Zo(e,t.mime)};function rs(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)ns[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&Ko(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&Ko(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&qo(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&qo(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&Yo(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&Zo(t,i.mime);for(let e of i.patterns??[])Xo(t,e);return t}const is={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},as=/* @__PURE__ */ new Map([[si,Gn],[li,Kn]]),os=e=>as.get(e)??e,ss=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=rs(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=is[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(os);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},cs=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=rs(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=/* @__PURE__ */ new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):Po(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},ls=(e,t,n,r)=>{n.type=`boolean`},us=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},ds=(e,t,n,r)=>{n.not={}},fs=(e,t,n,r)=>{let i=e._zod.def,a=Le(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},ps=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(Po(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(Po(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},ms=(e,t,n,r)=>{Po(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},hs=(e,t,n,r)=>{Po(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},gs=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=rs(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=W(a.element,t,{...r,path:[...r.path,`items`]})};function _s(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?_s(t.out):t.type===`catch`?_s(t.innerType):e._zod.optin}const vs=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&Po(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)Ge(i.properties,e,W(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?_s(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=W(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ys=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>W(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},bs=(e,t,n,r)=>{let i=e._zod.def,a=W(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=W(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},xs=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>W(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?W(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?_s(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=rs(e);typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function Ss(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=Ss(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>Ss(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?rr:nr).source),p):p}const Cs=/* @__PURE__ */ new WeakMap;function ws(e){let t=/* @__PURE__ */ new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=/* @__PURE__ */ new Map;for(let r of Cs.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=Ss(t,a,/* @__PURE__ */ new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}const Ts=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=rs(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=W(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)Ge(i.patternProperties,os(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=W(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=Cs.get(t);n||(n=[],Cs.set(t,n),t.deferred.push(()=>ws(t))),n.push(e)}i.additionalProperties=W(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&_s(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},Es=(e,t,n,r)=>{let i=e._zod.def,a=W(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},Ds=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Os=Symbol();function ks(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(Po(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),Os):JSON.parse(o)}const As=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=ks(i.defaultValue,e,t,n,r);o!==Os&&(n.default=o)},js=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=ks(i.defaultValue,e,t,n,r);o!==Os&&(n._prefault=o)},Ms=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{Po(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},Ns=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;W(o,t,r);let s=t.seen.get(e);s.ref=o},Ps=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Fs=(e,t,n,r)=>{let i=e._zod.def;W(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Is=/* @__PURE__ */ new WeakSet([Object.prototype,Error.prototype]);function Ls(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}const Rs=/*@__PURE__*/ B(`ZodError`,(e,t)=>{on.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);Is.has(n)||(Is.add(n),Ls(n,`format`,e=>t=>ln(e,t)),Ls(n,`flatten`,e=>t=>cn(e,t)),Ls(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,ze,2)}),Ls(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,ze,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),zs=/* @__PURE__ */ dn(Rs),Bs=/* @__PURE__ */ fn(Rs),Vs=/* @__PURE__ */ pn(Rs),Hs=/* @__PURE__ */ hn(Rs),Us=/* @__PURE__ */ xn(Rs),Ws=/* @__PURE__ */ Sn(Rs),Gs=/* @__PURE__ */ Cn(Rs),Ks=/* @__PURE__ */ wn(Rs),qs=/* @__PURE__ */ Tn(Rs),Js=/* @__PURE__ */ En(Rs),Ys=/* @__PURE__ */ Dn(Rs),Xs=/* @__PURE__ */ On(Rs);function Zs(){Zt.localeError||Qt(Sa())}function Qs(){Zt.memoizer||Qt({memoizer:ya()})}const K=/*@__PURE__*/ B(`ZodType`,(e,t)=>(Zs(),H.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(Qe(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ct(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(vl(e,t))},superRefine(e,t){return this.check(yl(e,t))},overwrite(e){return this.check(/* @__PURE__ */ So(e))},optional(){return el(this)},exactOptional(){return nl(this)},nullable(){return il(this)},nullish(){return el(il(this))},nonoptional(e){return ul(this,e)},array(){return Ic(this)},or(e){return zc([this,e])},and(e){return Uc(this,e)},transform(e){return ml(this,Qc(e))},default(e){return ol(this,e)},prefault(e){return cl(this,e)},catch(e){return fl(this,e)},pipe(e){return ml(this,e)},readonly(){return gl(this)},describe(e){let t=this.clone();return Ea.add(t,{description:e}),t},meta(...e){if(e.length===0)return Ea.get(this);let t=this.clone();return Ea.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Ft(this,`~standard`,{...kr(this),jsonSchema:{input:Go(this,`input`),output:Go(this,`output`)}})},set"~standard"(e){Pt(this,`~standard`,e)},parse:function e(t,n){return zs(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Bs(this,t,n,{callee:e})},safeParse(e,t){return Vs(this,e,t)},async safeParseAsync(e,t){return Hs(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Pt(this,`spa`,e)},validate(e,t){return vn(this,e,t)},validateAsync(e,t){return bn(this,e,t)},encode:function e(t,n){return Us(this,t,n,{callee:e})},decode:function e(t,n){return Ws(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Gs(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await Ks(this,t,n,{callee:e})},safeEncode(e,t){return qs(this,e,t)},safeDecode(e,t){return Js(this,e,t)},async safeEncodeAsync(e,t){return Ys(this,e,t)},async safeDecodeAsync(e,t){return Xs(this,e,t)},toJSONSchema(e){return Wo(this,{})(e)},get description(){return Ea.get(this)?.description},get _def(){return this._zod.def}}),$s=/*@__PURE__*/ B(`_ZodString`,(e,t)=>{Ar.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ss(e,t,n,r)},/*@__PURE__*/ It({format:e=>rs(e).format??null,minLength:e=>rs(e).minimum??null,maxLength:e=>rs(e).maximum??null},{regex(...e){return this.check(/* @__PURE__ */ go(...e))},includes(...e){return this.check(/* @__PURE__ */ yo(...e))},startsWith(...e){return this.check(/* @__PURE__ */ bo(...e))},endsWith(...e){return this.check(/* @__PURE__ */ xo(...e))},min(...e){return this.check(/* @__PURE__ */ mo(...e))},max(...e){return this.check(/* @__PURE__ */ po(...e))},length(...e){return this.check(/* @__PURE__ */ ho(...e))},nonempty(...e){return this.check(/* @__PURE__ */ mo(1,...e))},lowercase(e){return this.check(/* @__PURE__ */ _o(e))},uppercase(e){return this.check(/* @__PURE__ */ vo(e))},trim(){return this.check(/* @__PURE__ */ wo())},normalize(...e){return this.check(/* @__PURE__ */ Co(...e))},toLowerCase(){return this.check(/* @__PURE__ */ To())},toUpperCase(){return this.check(/* @__PURE__ */ Eo())},slugify(){return this.check(/* @__PURE__ */ Do())}})),ec=/*@__PURE__*/ B(`ZodString`,(e,t)=>{Ar.init(e,t),$s.init(e,t)},{email(e){return this.check(/* @__PURE__ */ ka(ac,e))},url(e){return this.check(/* @__PURE__ */ Fa(cc,e))},jwt(e){return this.check(/* @__PURE__ */ Xa(Cc,e))},emoji(e){return this.check(/* @__PURE__ */ Ia(lc,e))},guid(e){return this.check(/* @__PURE__ */ Aa(oc,e))},uuid(e){return this.check(/* @__PURE__ */ ja(sc,e))},uuidv4(e){return this.check(/* @__PURE__ */ Ma(sc,e))},uuidv6(e){return this.check(/* @__PURE__ */ Na(sc,e))},uuidv7(e){return this.check(/* @__PURE__ */ Pa(sc,e))},nanoid(e){return this.check(/* @__PURE__ */ La(uc,e))},cuid(e){return this.check(/* @__PURE__ */ Ra(dc,e))},cuid2(e){return this.check(/* @__PURE__ */ za(fc,e))},ulid(e){return this.check(/* @__PURE__ */ Ba(pc,e))},base64(e){return this.check(/* @__PURE__ */ qa(bc,e))},base64url(e){return this.check(/* @__PURE__ */ Ja(xc,e))},xid(e){return this.check(/* @__PURE__ */ Va(mc,e))},ksuid(e){return this.check(/* @__PURE__ */ Ha(hc,e))},ipv4(e){return this.check(/* @__PURE__ */ Ua(gc,e))},ipv6(e){return this.check(/* @__PURE__ */ Wa(_c,e))},cidrv4(e){return this.check(/* @__PURE__ */ Ga(vc,e))},cidrv6(e){return this.check(/* @__PURE__ */ Ka(yc,e))},e164(e){return this.check(/* @__PURE__ */ Ya(Sc,e))},datetime(e){return this.check(/* @__PURE__ */ Za(tc,e))},date(e){return this.check(/* @__PURE__ */ Qa(nc,e))},time(e){return this.check(/* @__PURE__ */ $a(rc,e))},duration(e){return this.check(/* @__PURE__ */ eo(ic,e))}});function q(e){return/* @__PURE__ */ Oa(ec,e)}const J=/*@__PURE__*/ B(`ZodStringFormat`,(e,t)=>{U.init(e,t),$s.init(e,t)}),tc=/*@__PURE__*/ B(`ZodISODateTime`,(e,t)=>{Yr.init(e,t),J.init(e,t)}),nc=/*@__PURE__*/ B(`ZodISODate`,(e,t)=>{Xr.init(e,t),J.init(e,t)}),rc=/*@__PURE__*/ B(`ZodISOTime`,(e,t)=>{Zr.init(e,t),J.init(e,t)}),ic=/*@__PURE__*/ B(`ZodISODuration`,(e,t)=>{Qr.init(e,t),J.init(e,t)}),ac=/*@__PURE__*/ B(`ZodEmail`,(e,t)=>{Nr.init(e,t),J.init(e,t)}),oc=/*@__PURE__*/ B(`ZodGUID`,(e,t)=>{jr.init(e,t),J.init(e,t)}),sc=/*@__PURE__*/ B(`ZodUUID`,(e,t)=>{Mr.init(e,t),J.init(e,t)}),cc=/*@__PURE__*/ B(`ZodURL`,(e,t)=>{Vr.init(e,t),J.init(e,t)}),lc=/*@__PURE__*/ B(`ZodEmoji`,(e,t)=>{Hr.init(e,t),J.init(e,t)}),uc=/*@__PURE__*/ B(`ZodNanoID`,(e,t)=>{Ur.init(e,t),J.init(e,t)}),dc=/*@__PURE__*/ B(`ZodCUID`,(e,t)=>{Wr.init(e,t),J.init(e,t)}),fc=/*@__PURE__*/ B(`ZodCUID2`,(e,t)=>{Gr.init(e,t),J.init(e,t)}),pc=/*@__PURE__*/ B(`ZodULID`,(e,t)=>{Kr.init(e,t),J.init(e,t)}),mc=/*@__PURE__*/ B(`ZodXID`,(e,t)=>{qr.init(e,t),J.init(e,t)}),hc=/*@__PURE__*/ B(`ZodKSUID`,(e,t)=>{Jr.init(e,t),J.init(e,t)}),gc=/*@__PURE__*/ B(`ZodIPv4`,(e,t)=>{$r.init(e,t),J.init(e,t)}),_c=/*@__PURE__*/ B(`ZodIPv6`,(e,t)=>{ni.init(e,t),J.init(e,t)}),vc=/*@__PURE__*/ B(`ZodCIDRv4`,(e,t)=>{ri.init(e,t),J.init(e,t)}),yc=/*@__PURE__*/ B(`ZodCIDRv6`,(e,t)=>{ai.init(e,t),J.init(e,t)}),bc=/*@__PURE__*/ B(`ZodBase64`,(e,t)=>{ci.init(e,t),J.init(e,t)}),xc=/*@__PURE__*/ B(`ZodBase64URL`,(e,t)=>{di.init(e,t),J.init(e,t)}),Sc=/*@__PURE__*/ B(`ZodE164`,(e,t)=>{fi.init(e,t),J.init(e,t)}),Cc=/*@__PURE__*/ B(`ZodJWT`,(e,t)=>{mi.init(e,t),J.init(e,t)}),wc=/*@__PURE__*/ B(`ZodNumber`,(e,t)=>{hi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cs(e,t,n,r),e.isFinite=!0},/*@__PURE__*/ It({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=rs(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=rs(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=rs(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>rs(e).format??null},{gt(e,t){return this.check(/* @__PURE__ */ lo(e,t))},gte(e,t){return this.check(/* @__PURE__ */ uo(e,t))},min(e,t){return this.check(/* @__PURE__ */ uo(e,t))},lt(e,t){return this.check(/* @__PURE__ */ so(e,t))},lte(e,t){return this.check(/* @__PURE__ */ co(e,t))},max(e,t){return this.check(/* @__PURE__ */ co(e,t))},int(e){return this.check(Ec(e))},safe(e){return this.check(Ec(e))},positive(e){return this.check(/* @__PURE__ */ lo(0,e))},nonnegative(e){return this.check(/* @__PURE__ */ uo(0,e))},negative(e){return this.check(/* @__PURE__ */ so(0,e))},nonpositive(e){return this.check(/* @__PURE__ */ co(0,e))},multipleOf(e,t){return this.check(/* @__PURE__ */ fo(e,t))},step(e,t){return this.check(/* @__PURE__ */ fo(e,t))},finite(){return this}}));function Y(e){return/* @__PURE__ */ to(wc,e)}const Tc=/*@__PURE__*/ B(`ZodNumberFormat`,(e,t)=>{gi.init(e,t),wc.init(e,t)});function Ec(e){return/* @__PURE__ */ no(Tc,e)}const Dc=/*@__PURE__*/ B(`ZodBoolean`,(e,t)=>{_i.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ls(e,t,n,r)});function Oc(e){return/* @__PURE__ */ ro(Dc,e)}const kc=/*@__PURE__*/ B(`ZodNull`,(e,t)=>{vi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>us(e,t,n,r)});function Ac(e){return/* @__PURE__ */ io(kc,e)}const jc=/*@__PURE__*/ B(`ZodUnknown`,(e,t)=>{yi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Mc(){return/* @__PURE__ */ ao(jc)}const Nc=/*@__PURE__*/ B(`ZodNever`,(e,t)=>{bi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r)});function Pc(e){return/* @__PURE__ */ oo(Nc,e)}const Fc=/*@__PURE__*/ B(`ZodArray`,(e,t)=>{Qs(),Si.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gs(e,t,n,r),e.element=t.element},{min(e,t){return this.check(/* @__PURE__ */ mo(e,t))},nonempty(e){return this.check(/* @__PURE__ */ mo(1,e))},max(e,t){return this.check(/* @__PURE__ */ po(e,t))},length(e,t){return this.check(/* @__PURE__ */ ho(e,t))},unwrap(){return this.element}});function Ic(e,t){return/* @__PURE__ */ Oo(Fc,e,t)}const Lc=/*@__PURE__*/ B(`ZodObject`,(e,t)=>{Qs(),Oi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vs(e,t,n,r),Ht(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return Yc(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(Qe(this._zod.def,{catchall:e}))},passthrough(){return this.clone(Qe(this._zod.def,{catchall:Mc()}))},loose(){return this.clone(Qe(this._zod.def,{catchall:Mc()}))},strict(){return this.clone(Qe(this._zod.def,{catchall:Pc()}))},strip(){return this.clone(Qe(this._zod.def,{catchall:void 0}))},extend(e){return gt(this,e)},safeExtend(e){return vt(this,e)},merge(e){return yt(this,e)},pick(e){return pt(this,e)},omit(e){return ht(this,e)},partial(...e){return bt($c,this,e[0])},exactPartial(...e){return bt(tl,this,e[0],`exactPartial`)},required(...e){return xt(ll,this,e[0])}});function X(e,t){let n={type:`object`,shape:e??{},...R(t)};return new Lc(n)}const Rc=/*@__PURE__*/ B(`ZodUnion`,(e,t)=>{Ai.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ys(e,t,n,r),e.options=t.options});function zc(e,t){return new Rc({type:`union`,options:e,...R(t)})}const Bc=/*@__PURE__*/ B(`ZodDiscriminatedUnion`,(e,t)=>{Rc.init(e,t),Mi.init(e,t)});function Vc(e,t,n){return new Bc({type:`union`,options:t,discriminator:e,...R(n)})}const Hc=/*@__PURE__*/ B(`ZodIntersection`,(e,t)=>{Ni.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bs(e,t,n,r)});function Uc(e,t){return new Hc({type:`intersection`,left:e,right:t})}const Wc=/*@__PURE__*/ B(`ZodTuple`,(e,t)=>{Qs(),Ii.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xs(e,t,n,r)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw Error(`.partial() cannot be used on tuple schemas containing refinements`);return this.clone({...e,items:e.items.map(e=>new $c({type:`optional`,innerType:e}))})}});function Gc(e,t,n){let r=t instanceof H;return new Wc({type:`tuple`,items:e,rest:r?t:null,...R(r?n:t)})}const Kc=/*@__PURE__*/ B(`ZodRecord`,(e,t)=>{Qs(),Bi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ts(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function qc(e,t,n){return!t||!t._zod?new Kc({type:`record`,keyType:q(),valueType:e,...R(t)}):new Kc({type:`record`,keyType:e,valueType:t,...R(n)})}const Jc=/*@__PURE__*/ B(`ZodEnum`,(e,t)=>{Vi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fs(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Jc({...t,checks:[],...R(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Jc({...t,checks:[],...R(r),entries:i})}});function Yc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new Jc({type:`enum`,entries:n,...R(t)})}const Xc=/*@__PURE__*/ B(`ZodLiteral`,(e,t)=>{Hi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ps(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Z(e,t){return new Xc({type:`literal`,values:Array.isArray(e)?e:[e],...R(t)})}const Zc=/*@__PURE__*/ B(`ZodTransform`,(e,t)=>{Qs(),Ui.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hs(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Xt(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Mt(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(Mt(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Qc(e){return new Zc({type:`transform`,transform:e})}const $c=/*@__PURE__*/ B(`ZodOptional`,(e,t)=>{Gi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function el(e){return new $c({type:`optional`,innerType:e})}const tl=/*@__PURE__*/ B(`ZodExactOptional`,(e,t)=>{Ki.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function nl(e){return new tl({type:`optional`,innerType:e})}const rl=/*@__PURE__*/ B(`ZodNullable`,(e,t)=>{qi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Es(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function il(e){return new rl({type:`nullable`,innerType:e})}const al=/*@__PURE__*/ B(`ZodDefault`,(e,t)=>{Ji.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>As(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ol(e,t){return new al({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():at(t)}})}const sl=/*@__PURE__*/ B(`ZodPrefault`,(e,t)=>{Xi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>js(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function cl(e,t){return new sl({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():at(t)}})}const ll=/*@__PURE__*/ B(`ZodNonOptional`,(e,t)=>{Zi.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ds(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ul(e,t){return new ll({type:`nonoptional`,innerType:e,...R(t)})}const dl=/*@__PURE__*/ B(`ZodCatch`,(e,t)=>{ea.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ms(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function fl(e,t){return new dl({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Ut(t)})}const pl=/*@__PURE__*/ B(`ZodPipe`,(e,t)=>{ta.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ns(e,t,n,r),e.in=t.in,e.out=t.out});function ml(e,t){return new pl({type:`pipe`,in:e,out:t})}const hl=/*@__PURE__*/ B(`ZodReadonly`,(e,t)=>{ra.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ps(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function gl(e){return new hl({type:`readonly`,innerType:e})}const _l=/*@__PURE__*/ B(`ZodCustom`,(e,t)=>{aa.init(e,t),K.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ms(e,t,n,r)});function vl(e,t={}){return/* @__PURE__ */ ko(_l,e,t)}function yl(e,t){return/* @__PURE__ */ Ao(e,t)}const bl={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`};var xl;xl||={};const Sl=X({name:q(),accumulatorId:Y().optional(),value:zc([q(),Y()]).optional(),metricType:q().optional()}),Cl=X({nodeName:q(),simpleString:q().optional(),metrics:Ic(Sl).optional(),metadata:qc(q(),Mc()).optional(),children:Ic(Mc())});function wl(e){let t=Cl.parse(e),n=[{shallow:t,children:[],pendingRaw:[...t.children],depth:0}],r=/* @__PURE__ */ new Map;for(;n.length>0;){let e=n[n.length-1];if(e.pendingRaw.length===0){n.pop();let t={...e.shallow,children:e.children},i=r.get(e);if(i){i.children.push(t);continue}return t}if(e.depth>500)throw Error(`sparkPlanInfo tree exceeds max depth of 500`);let t=e.pendingRaw.shift(),i=Cl.parse(t),a={shallow:i,children:[],pendingRaw:[...i.children],depth:e.depth+1};r.set(a,e),n.push(a)}throw Error(`unreachable: sparkPlanInfo tree stack exhausted without resolving root`)}const Tl=Mc().nullable().optional().transform((e,t)=>{if(e==null)return null;try{return wl(e)}catch(e){return t.addIssue({code:bl.custom,message:e instanceof Error?e.message:String(e)}),Gt}}),El=X({Event:Z(`SparkListenerLogStart`),"Spark Version":q().optional()}),Dl=X({Event:Z(`SparkListenerApplicationStart`),"App ID":q().optional(),"App Name":q().optional(),"App Attempt ID":q().optional(),Timestamp:Y().optional(),"Spark Version":q().optional()}),Ol=zc([q(),Y(),Oc()]),kl=X({Event:Z(`SparkListenerEnvironmentUpdate`),"Spark Properties":zc([qc(q(),Ol),Ic(Gc([q(),Ol])),Ac()]).optional()}),Al=X({Event:Z(`SparkListenerApplicationEnd`),Timestamp:Y().optional()}),jl=X({Event:Z(`SparkListenerExecutorAdded`),Timestamp:Y(),"Executor ID":q(),"Executor Info":X({Host:q().optional(),"Total Cores":Y().optional(),"Resource Profile Id":Y().optional()}).optional(),"Resource Profile Id":Y().optional()}),Ml=X({Event:Z(`SparkListenerExecutorRemoved`),Timestamp:Y(),"Executor ID":q(),"Removed Reason":q().optional()}),Nl=X({Event:Z(`SparkListenerJobStart`),"Job ID":Y().optional(),"Submission Time":Y().optional(),"Stage IDs":Ic(Y()).optional(),Properties:X({"spark.sql.execution.id":zc([q(),Y()]).optional()}).optional()}),Pl=X({Event:Z(`SparkListenerJobEnd`),"Job ID":Y(),"Completion Time":Y().optional(),"Job Result":X({Result:q().optional(),Exception:X({Message:q().optional()}).optional()}).optional()}),Fl=X({"RDD ID":Y().optional(),Name:q().optional(),Callsite:q().optional(),"Storage Level":X({"Use Disk":Oc().optional(),"Use Memory":Oc().optional(),Deserialized:Oc().optional(),Replication:Y().optional()}).optional(),"Number of Partitions":Y().optional(),"Number of Cached Partitions":Y().optional(),"Memory Size":Y().optional(),"Disk Size":Y().optional()}),Il=X({Event:Z(`SparkListenerStageSubmitted`),"Stage Info":X({"Stage ID":Y(),"Stage Attempt ID":Y().optional(),"Stage Name":q().optional(),Details:q().optional(),"Submission Time":Y().optional(),"Parent IDs":Ic(Y()).optional(),"RDD Info":Ic(Fl).optional()})}),Ll=X({Event:Z(`SparkListenerBlockUpdated`),"Block Updated Info":X({"Block Manager ID":X({"Executor ID":q().optional()}).optional(),"Block ID":q(),"Storage Level":X({"Use Disk":Oc().optional(),"Use Memory":Oc().optional(),Replication:Y().optional()}).optional(),"Memory Size":Y().optional(),"Disk Size":Y().optional()})}),Rl=Vc(`Event`,[El,Dl,kl,Al,Nl,Pl,Il,X({Event:Z(`SparkListenerStageCompleted`),"Stage Info":X({"Stage ID":Y(),"Submission Time":Y().optional(),"Completion Time":Y().optional(),"Failure Reason":q().optional(),Accumulables:Ic(X({ID:Y(),Value:Mc().optional(),Metadata:q().optional()})).optional()})}),X({Event:Z(`SparkListenerStageExecutorMetrics`),"Stage ID":Y(),"Executor ID":q(),"Executor Metrics":qc(q(),Y()).optional()}),X({Event:Z(`SparkListenerTaskEnd`),"Stage ID":Y(),"Stage Attempt ID":Y().optional(),"Task End Reason":X({Reason:q().optional(),"Class Name":Mc().optional(),Description:Mc().optional(),"Full Stack Trace":Mc().optional(),"Loss Reason":Mc().optional(),Message:Mc().optional(),"Kill Reason":Mc().optional()}).optional(),"Task Info":X({"Launch Time":Y().optional(),"Finish Time":Y().optional(),Failed:Oc().optional(),Killed:Oc().optional(),Speculative:Oc().optional(),Host:q().optional(),"Executor ID":q().optional(),Locality:q().optional(),Index:Y().optional(),"Task ID":Y().optional(),"Attempt Number":Y().optional(),Accumulables:Ic(X({ID:Y()})).max(1e4).optional()}).optional(),"Task Executor Metrics":qc(q(),Mc()).optional(),"Task Metrics":X({"Peak Execution Memory":Y().optional(),"JVM GC Time":Y().optional(),"Memory Bytes Spilled":Y().optional(),"Disk Bytes Spilled":Y().optional(),"Executor Run Time":Y().optional(),"Executor CPU Time":Y().optional(),"Shuffle Read Metrics":X({"Remote Bytes Read":Y().optional(),"Local Bytes Read":Y().optional(),"Fetch Wait Time":Y().optional(),"Total Records Read":Y().optional()}).optional(),"Shuffle Write Metrics":X({"Shuffle Bytes Written":Y().optional()}).optional(),"Input Metrics":X({"Bytes Read":Y().optional(),"Records Read":Y().optional()}).optional(),"Output Metrics":X({"Bytes Written":Y().optional(),"Records Written":Y().optional()}).optional()}).optional()}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionStart`),executionId:Y(),rootExecutionId:Y().optional(),description:q().optional(),physicalPlanDescription:q().optional(),time:Y(),sparkPlanInfo:Tl,modifiedConfigs:qc(q(),q()).optional().catch(void 0)}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerSQLAdaptiveExecutionUpdate`),executionId:Y(),sparkPlanInfo:Tl}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionEnd`),executionId:Y(),time:Y()}),X({Event:Z(`org.apache.spark.sql.execution.ui.SparkListenerDriverAccumUpdates`),executionId:Y(),accumUpdates:Ic(Gc([Y(),Y()]))}),jl,Ml,Ll]),zl=[`MergeIntoCommand`,`UpdateCommand`,`DeleteCommand`,`WriteIntoDelta`,`WriteIntoDeltaCommand`,`SaveIntoDataSourceCommand`];function Bl(e){throw Error(`Unreachable case: ${JSON.stringify(e)}`)}function Vl(e){let t=e.length;if(t===0)return 0;let n=t>>1;return t%2==1?e[n]:(e[n-1]+e[n])/2}const Hl=[{key:`DURATION`,name:`duration`,prop:`duration`},{key:`GC_TIME`,name:`gcTime`,prop:`gcTime`},{key:`MEM_SPILLED`,name:`memorySpilled`,prop:`memSpilled`},{key:`DISK_SPILLED`,name:`diskSpilled`,prop:`diskSpilled`},{key:`SHUFFLE_READ`,name:`shuffleRead`,prop:`shuffleRead`},{key:`SHUFFLE_WRITE`,name:`shuffleWrite`,prop:`shuffleWrite`},{key:`LAUNCH_TIME`,name:`launchTime`,prop:`launchTime`},{key:`FINISH_TIME`,name:`finishTime`,prop:`finishTime`}],Ul=Hl.length,Q=Object.freeze({...Object.fromEntries(Hl.map((e,t)=>[e.key,t])),STRIDE:Ul}),Wl=Hl.map(e=>e.name),Gl=Hl.map(e=>e.prop);function Kl(e,t,n){if(t.taskAttempts===null)return null;let r=t,i=[],a=0,o=0,s=0,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=[],f=/* @__PURE__ */ new Map,p=/* @__PURE__ */ new Map,m=0,h=t.taskAttempts;for(let e of h.values()){if(a++,e.failed){o++,e.reason&&u.set(e.reason,(u.get(e.reason)??0)+1);let t=e.failure;t&&f.set(t,(f.get(t)??0)+1),d.length<20&&d.push({taskId:e.taskId,attemptNumber:e.attemptNumber,host:e.host,executorId:e.executorId,reason:e.reason,peakExecMem:e.peakExecMem,memSpilled:e.memSpilled,shuffleWrite:e.shuffleWrite})}if(e.speculative&&s++,e.host){let t=c.get(e.host);t||(t={taskCount:0,totalDuration:0},c.set(e.host,t)),t.taskCount++,t.totalDuration+=e.duration}if(e.executorId){let t=l.get(e.executorId);t||(t={taskCount:0,totalDuration:0,logDurationSum:0,logDurationM2:0,inputBytes:0,shuffleReadBytes:0,shuffleWriteBytes:0},l.set(e.executorId,t));let n=Math.log1p(e.duration),r=t.taskCount>0?t.logDurationSum/t.taskCount:0,i=(t.logDurationSum+n)/(t.taskCount+1);t.logDurationM2+=(n-r)*(n-i),t.logDurationSum+=n,t.taskCount++,t.totalDuration+=e.duration,t.inputBytes+=e.inputBytes,t.shuffleReadBytes+=e.shuffleRead,t.shuffleWriteBytes+=e.shuffleWrite}e.locality&&p.set(e.locality,(p.get(e.locality)??0)+1),e.peakExecMem>m&&(m=e.peakExecMem),r.shuffleReadBytes+=e.shuffleRead,r.shuffleWriteBytes+=e.shuffleWrite,r.fetchWaitTime+=e.fetchWaitTime,r.memoryBytesSpilled+=e.memSpilled,r.diskBytesSpilled+=e.diskSpilled,r.jvmGCTime+=e.gcTime,r.executorRunTime+=e.executorRunTime,r.executorCpuTime+=e.executorCpuTime,r.inputBytes+=e.inputBytes,r.outputBytes+=e.outputBytes,e.outputRecords!=null&&(r.outputRecords=(r.outputRecords??0)+e.outputRecords);for(let t=0;t<Gl.length;t++)i.push(e[Gl[t]])}t.taskCount=a,t.peakExecutionMemoryMax=m,t.failedTasks=o,t.speculativeTasks=s,t.taskAttempts=null,t.failureDetails=null;let g=new Float64Array(i);n.taskStore.set(e,g);let{p50:_,p95:v,max:y}=nu(g),ee=r.memoryBytesSpilled>0?ru(g):`unclassified`,{p50:b,p95:x,max:S}=tu(g,Q.SHUFFLE_READ),{p50:C,p95:w,max:T}=tu(g,Q.MEM_SPILLED),{p50:E,p95:D,max:O}=tu(g,Q.DISK_SPILLED),k=4*_,A=0,j=0,te=0,M=g.length/Q.STRIDE;if(_>0)for(let e=0;e<M;e++){let t=g[e*Q.STRIDE+Q.DURATION];t>k?(A++,j+=t-_):t>te&&(te=t)}let ne=_>0?Yl(h.values(),_):null,re=Ql(g),ie=A>0?$l(g,_,re):0,ae=[...c.entries()].map(([e,t])=>({host:e,taskCount:t.taskCount,totalDuration:t.totalDuration})),oe=[...l.entries()].map(([e,t])=>({executorId:e,taskCount:t.taskCount,totalDuration:t.totalDuration,logDurationSum:t.logDurationSum,logDurationM2:t.logDurationM2,inputBytes:t.inputBytes,shuffleReadBytes:t.shuffleReadBytes,shuffleWriteBytes:t.shuffleWriteBytes})),se=[...u.entries()].map(([e,t])=>({reason:e,count:t})),N=[...f.entries()].map(([e,t])=>({...e,count:t})).sort((e,t)=>t.count-e.count),P=[...p.entries()].map(([e,t])=>({locality:e,count:t})),ce={...t,hostStats:ae,executorStats:oe,failureReasons:se,localityStats:P,stragglerCount:A,stragglerExcessMs:j,longestNonStragglerMs:te,tailReplayRecoveryMs:ie,failedTaskSamples:d,failureGroups:N,peakExecutionMemoryMax:m,taskActiveMs:Zl(g),peakConcurrentTasks:re,...ne?{tailAttribution:ne}:{},taskDurationP50:_,taskDurationP95:v,taskDurationMax:y,shuffleReadP50:b,shuffleReadP95:x,shuffleReadMax:S,spillMemP50:C,spillMemP95:w,spillMemMax:T,spillDiskP50:E,spillDiskP95:D,spillDiskMax:O,gcPct:r.executorRunTime>0?r.jvmGCTime/r.executorRunTime*100:0,spillClassification:ee,stageType:r.shuffleReadBytes>0?`REDUCE`:`MAP`};return delete ce.taskAttempts,delete ce.failureDetails,delete ce.speculativeWinners,delete ce.lateSpeculationWaste,delete ce.stageAttemptId,{type:`stage`,data:ce}}const ql=1048576,Jl=1e3;function Yl(e,t){let n=[],r=[];for(let i of e)i.failed||(n.push(i),i.duration>3*t&&r.push(i));if(r.length===0)return null;let i=e=>e.inputBytes+e.shuffleRead,a=e=>e.inputRecords+e.shuffleReadRecords,o=Xl(n,i),s=Xl(n,a),c=Xl(n,e=>e.gcTime),l=Xl(n,e=>e.fetchWaitTime),u=o>=ql,d=s>=Jl,f=u||d,p=e=>Math.max(u?i(e)/o:0,d?a(e)/s:0),m=e=>i(e)>=ql||a(e)>=Jl,h=/* @__PURE__ */ new Map,g=/* @__PURE__ */ new Map;for(let e of n)e.host&&g.set(e.host,(g.get(e.host)??0)+1);for(let e of r)e.host&&h.set(e.host,(h.get(e.host)??0)+1);let _=null;for(let[e,t]of h)(_===null||t>h.get(_))&&(_=e);let v=_!==null&&h.get(_)>=3&&h.get(_)/r.length>=.5&&h.get(_)/r.length/(g.get(_)/n.length)>=2,y=0,ee=0,b=0,x=0,S=0,C=0,w=0,T=[];for(let e of r){let n=e.duration-t;y+=n;let r=n;if(f){let n=p(e);T.push(n);let i=Math.min(r,Math.max(0,t*(n-1)));ee+=i,r-=i}let i=Math.min(r,Math.max(0,e.gcTime-c));b+=i,r-=i;let a=Math.min(r,Math.max(0,e.fetchWaitTime-l));x+=a,r-=a,!f&&m(e)&&(ee+=r,r=0),v&&e.host===_&&(S+=r),C+=e.executorCpuTime,w+=e.executorRunTime}return T.sort((e,t)=>e-t),{tasks:r.length,excessMs:y,dataMs:ee,gcMs:b,fetchWaitMs:x,hostMs:S,host:v?_:null,hostTasks:v?h.get(_):0,dataRatio:f?Vl(Float64Array.from(T)):null,cpuPct:C>0&&w>0?Math.min(100,C/1e6/w*100):null}}function Xl(e,t){return Vl(Float64Array.from(e,t).sort())}function Zl(e){let t=e.length/Q.STRIDE,n=[];for(let r=0;r<t;r++){let t=e[r*Q.STRIDE+Q.LAUNCH_TIME],i=e[r*Q.STRIDE+Q.FINISH_TIME];t>0&&i>t&&n.push([t,i])}n.sort((e,t)=>e[0]-t[0]);let r=0,i=-1/0,a=-1/0;for(let[e,t]of n)e>a?(a>i&&(r+=a-i),i=e,a=t):t>a&&(a=t);return a>i&&(r+=a-i),r}function Ql(e){let t=e.length/Q.STRIDE,n=[],r=[];for(let i=0;i<t;i++){let t=e[i*Q.STRIDE+Q.LAUNCH_TIME],a=e[i*Q.STRIDE+Q.FINISH_TIME];t>0&&a>t&&(n.push(t),r.push(a))}n.sort((e,t)=>e-t),r.sort((e,t)=>e-t);let i=0,a=0,o=0;for(let e of n){for(;o<r.length&&r[o]<=e;)a--,o++;a++,a>i&&(i=a)}return i}function $l(e,t,n){let r=e.length/Q.STRIDE;if(r<2||!(t>0))return 0;let i=new Uint32Array(r);for(let e=0;e<r;e++)i[e]=e;i.sort((t,n)=>e[t*Q.STRIDE+Q.LAUNCH_TIME]-e[n*Q.STRIDE+Q.LAUNCH_TIME]||t-n);let a=new Float64Array(Math.max(1,Math.min(n,r))),o=4*t,s=eu(e,i,a,1/0,t),c=eu(e,i,a,o,t);return Math.max(0,s-c)}function eu(e,t,n,r,i){n.fill(0);let a=n.length,o=0;for(let s=0;s<t.length;s++){let c=e[t[s]*Q.STRIDE+Q.DURATION],l=n[0]+(c>r?i:c);l>o&&(o=l);let u=0;for(;;){let e=2*u+1;if(e>=a)break;let t=e+1<a&&n[e+1]<n[e]?e+1:e;if(n[t]>=l)break;n[u]=n[t],u=t}n[u]=l}return o}function tu(e,t){let n=e.length/Q.STRIDE;if(n===0)return{p50:0,p95:0,max:0};let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=e[i*Q.STRIDE+t];return r.sort(),{p50:Vl(r),p95:r[Math.ceil(n*.95)-1],max:r[n-1]}}function nu(e){return tu(e,Q.DURATION)}function ru(e){let t=e.length/Q.STRIDE;if(t===0)return`unclassified`;let n=0;for(let r=0;r<t;r++)e[r*Q.STRIDE+Q.MEM_SPILLED]===0&&n++;let r=n/t;return r>=.8?`skew`:r<.2?`volume`:`unclassified`}function iu(e,t){return e.length>t?`${e.slice(0,t-3)}...`:e}function au(e){return typeof e==`string`&&e.trim().length>0?e:null}function ou(e){if(e==null)return null;let t=e.split(`
|
|
113
|
+
`).map(e=>e.trim()).find(e=>e.length>0);return t?iu(t.replace(/\s+/g,` `),300):null}const su=/(?:^|: )(?:Traceback \(most recent call last\):|An exception was thrown from the Python worker)/,cu=/^\s*at \S/;function lu(e){if(e.length<2||!su.test(e[0].trim()))return-1;let t=-1;for(let n=1;n<e.length&&!cu.test(e[n]);n++)t=n;return t}function uu(e){if(e==null)return null;let t=e.split(`
|
|
114
|
+
`).filter(e=>e.trim().length>0),n=lu(t);return ou(n>=0?t[n]:e)}function du(e){if(e==null)return null;let t=e.split(`
|
|
115
|
+
`).map(e=>e.replace(/\s+$/,``)).filter(e=>e.trim().length>0);if(t.length===0)return null;let n=t.slice(0,9);if(t.length>9){let e=lu(t),r=-1;for(let e=t.length-1;e>=9;e--)if(t[e].startsWith(`Caused by:`)){r=e;break}e>=9&&n.push(` ...`,t[e]),e<t.length-1&&n.push(` ...`),r>=0&&n.push(...t.slice(r,r+2))}return iu(n.map(e=>iu(e,300)).join(`
|
|
116
|
+
`),2e3)}function fu(e){if(!e)return null;let t=au(e.Reason),n=au(e.Description)??au(e.Message)??au(e[`Kill Reason`]),r=au(e[`Full Stack Trace`])??(n!=null&&n.trim().includes(`
|
|
117
|
+
`)?n:null);return{reason:t,className:ou(au(e[`Class Name`])),message:uu(n),lossReason:ou(au(e[`Loss Reason`])),stackExcerpt:du(r)}}function pu(e){return JSON.stringify([e.reason,e.className,e.message,e.lossReason])}function mu(e,t){let n=[];for(let{launch:t,finish:r}of e)r>t&&(n.push({t,delta:1}),n.push({t:r,delta:-1}));n.sort((e,t)=>e.t-t.t||e.delta-t.delta);let r=[],i=0;for(let e=0;e<n.length;e++){let a=n[e];i+=a.delta;let o=n[e+1];if(!o||o.t===a.t)continue;let s=t==null?i:Math.min(i,t);r.push({tStart:a.t,tEnd:o.t,busy:s})}return r}function hu(e,{bucketBy:t=`time`,bucketWidthMs:n=1e3,hypotheticalCores:r=null}={}){let i=mu(e,r);if(t===`coreCount`){let e=[];for(let t of i)e[t.busy]=(e[t.busy]??0)+(t.tEnd-t.tStart);for(let t=0;t<e.length;t++)e[t]===void 0&&(e[t]=0);return{mode:`coreCount`,histogram:e}}if(i.length===0)return{mode:`time`,bucketWidthMs:n,startTime:null,endTime:null,buckets:[]};let a=i[0].tStart,o=i[i.length-1].tEnd,s=[];for(let e=a;e<o;e+=n){let t=e+n,r=0;for(let n of i){let i=Math.max(n.tStart,e),a=Math.min(n.tEnd,t);a>i&&(r+=n.busy*(a-i))}s.push({tStart:e,tEnd:t,busyCoreMs:r,avgBusyCores:r/n})}return{mode:`time`,bucketWidthMs:n,startTime:a,endTime:o,buckets:s}}function gu(e){let t=[],n={};for(let[r,i]of e){let e=i.length/Q.STRIDE,a=0;for(let n=0;n<e;n++){let e=n*Q.STRIDE,r=i[e+Q.LAUNCH_TIME],o=i[e+Q.FINISH_TIME];a+=i[e+Q.DURATION],o>r&&t.push({launch:r,finish:o})}n[r]={totalTaskDurationSum:a,taskCount:e}}let{histogram:r}=hu(t,{bucketBy:`coreCount`}),i=0;for(let e=0;e<r.length;e++)i+=e*r[e];let a=r.length>0?r.length-1:0;return{coreHistogram:r,busyCoreMs:i,peakConcurrentCores:a,perStage:n}}function _u(e){if(e==null)return null;let t=String(e).trim().toLowerCase().match(/^([\d.]+)\s*([kmgt]?)(b?)$/);if(!t)return null;let n=parseFloat(t[1]);if(!Number.isFinite(n))return null;switch(t[2]){case`k`:return Math.round(n/1024);case`g`:return Math.round(n*1024);case`t`:return Math.round(n*1024*1024);case`m`:return Math.round(n);default:return t[3]===`b`?Math.round(n/1048576):Math.round(n)}}const $=`always`,vu={"spark.speculation":[[$,`false`]],"spark.speculation.multiplier":[[$,`1.5`],[[4,0],`3`]],"spark.speculation.quantile":[[$,`0.75`],[[4,0],`0.9`]],"spark.executor.memory":[[$,`1g`]],"spark.serializer":[[$,`org.apache.spark.serializer.JavaSerializer`]],"spark.shuffle.service.enabled":[[$,`false`]],"spark.eventLog.logBlockUpdates.enabled":[[$,`false`]],"spark.eventLog.logStageExecutorMetrics":[[$,`false`]],"spark.dynamicAllocation.enabled":[[$,`false`]],"spark.dynamicAllocation.minExecutors":[[$,`0`]],"spark.dynamicAllocation.maxExecutors":[[$,`2147483647`]],"spark.dynamicAllocation.executorIdleTimeout":[[$,`60s`]],"spark.sql.shuffle.partitions":[[$,`200`]],"spark.sql.autoBroadcastJoinThreshold":[[$,`10MB`]],"spark.sql.files.maxPartitionBytes":[[$,`128MB`]],"spark.sql.adaptive.enabled":[[$,`false`],[[3,2],`true`]],"spark.sql.adaptive.skewJoin.enabled":[[[3,0],`true`]],"spark.sql.adaptive.coalescePartitions.enabled":[[[3,0],`true`]],"spark.sql.adaptive.skewJoin.skewedPartitionFactor":[[[3,0],`5`]],"spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes":[[[3,0],`256MB`]],"spark.sql.adaptive.forceOptimizeSkewedJoin":[[[3,3],`false`]],"spark.sql.adaptive.advisoryPartitionSizeInBytes":[[[3,0],`64MB`]],"spark.sql.adaptive.coalescePartitions.parallelismFirst":[[[3,2],`true`]],"spark.executor.memoryOverheadFactor":[[[3,3],`0.1`]],"spark.executor.minMemoryOverhead":[[[4,0],`384m`]],"spark.sql.execution.pythonUDF.arrow.enabled":[[[3,4],`false`],[[4,2],`true`]]};function yu(e){let t=/^(\d+)\.(\d+)/.exec(e??``);return t==null?null:[Number(t[1]),Number(t[2])]}function bu(e,t){let n=vu[t];if(n==null)return;let r=yu(e);if(r==null)return n.length===1&&n[0][0]===$?n[0][1]:void 0;let i;for(let[e,t]of n)(e===$||r[0]>e[0]||r[0]===e[0]&&r[1]>=e[1])&&(i=t);return i}function xu(e){return e!==`*********(redacted)`}function Su(e,t){let n=e.modified?.[t];if(n!==void 0&&xu(n))return{value:n.trim(),source:`query`};let r=e.properties?.[t];if(r!==void 0)return{value:String(r).trim(),source:`app`};let i=bu(e.sparkVersion,t);return i===void 0?void 0:{value:i,source:`default`}}const Cu=524288;function wu(){let e=new TextDecoder(`utf-8`),t=``,n=``,r=!1,i=!1,a=``,o=-1,s=!1,c=0;function l(e){let n=fd.length-1,r=t.length-e.length;if(a!==``){let t=(a+e.slice(0,n)).indexOf(fd);if(t!==-1)return r-a.length+t}let i=e.indexOf(fd);return i===-1?(a=e.length>=n?e.slice(-n):(a+e).slice(-n),-1):r+i}function u(u,d){if(!i){if(t.length<dd.length){r=!dd.startsWith(t);return}if(!(n.length>=dd.length?n:t).startsWith(dd)){r=!0;return}i=!0,a=``,d=t}let f=o;if(f===-1){let e=l(d);if(e===-1)return;f=e+fd.length}if(yd(t,f)!==-1){o=-1,r=!0;return}let p=Sd(t,f);if(p===`wait`){o=f;return}if(o=-1,r=!0,p===`keep`)return;let m=0;if(u===pd)for(let e=t.length-1;e>=f&&t.charCodeAt(e)===pd;e--)m++;c=m,t=t.substring(0,f),n=t,e.decode(),s=!0}function d(a,l,d){let f=0;if(s){let e=a.indexOf(md),t=bd(a,e===-1?a.length:e,c);if(t===-1&&e===-1){let e=a.length-1;for(;e>=0&&a[e]===pd;)e--;c=a.length-1-e+(e<0?c:0);return}s=!1,f=t===-1?e:t}let p=e.decode(f===0?a:a.subarray(f),{stream:!0}),m=p.indexOf(`
|
|
118
118
|
`),h=p;if(m===-1)t===``?(t=n=p,i=!1):t+=p;else{let e;if(t===``)e=p.substring(0,m);else{let r=p.substring(0,m);e=t+r,d?.push({index:l.length,head:n,tail:r})}e.length>0&&l.push(e);let a=m+1;for(m=p.indexOf(`
|
|
119
119
|
`,a);m!==-1;)m>a&&l.push(p.substring(a,m)),a=m+1,m=p.indexOf(`
|
|
120
|
-
`,a);t=n=h=a<p.length?p.substring(a):``,r=!1,i=!1,o=-1}!r&&t!==``&&u(a[a.length-1],h)}return{decode(e,t){let n=[];if(e.length<=mu)d(e,n,t);else for(let r=0;r<e.length;r+=mu)d(e.subarray(r,r+mu),n,t);return n},flush(){let n=(t+e.decode()).trim();return t=``,n?[n]:[]}}}function gu(){return{app:null,pendingSparkVersion:null,pendingConfig:null,pendingResources:null,stages:/* @__PURE__ */ new Map,taskStore:/* @__PURE__ */ new Map,sqlExecutions:/* @__PURE__ */ new Map,stageToSqlExec:/* @__PURE__ */ new Map,sqlExecStages:/* @__PURE__ */ new Map,jobs:/* @__PURE__ */ new Map,executors:{added:[],removed:[]},skippedLines:0,unreadableSqlStarts:/* @__PURE__ */ new Set,accumState:/* @__PURE__ */ new Map,rddInfo:/* @__PURE__ */ new Map,rddBlocks:/* @__PURE__ */ new Map,rddBlockUpdates:0,taskAccumStages:/* @__PURE__ */ new Map,pendingAdaptiveUpdates:/* @__PURE__ */ new Map,resolvedPlanExecutions:/* @__PURE__ */ new Set,evidenceInputs:{environmentUpdates:0,applicationEnds:0,stageSubmissions:0,rddStorageSnapshots:0,sqlExecutions:0,resolvedSqlPlans:0,executorMetricRows:0,taskRecords:0}}}function _u(e){if(Array.isArray(e)){let t={};for(let n of e)Array.isArray(n)&&n.length>=2&&(t[n[0]]=String(n[1]));return t}let t={};for(let[n,r]of Object.entries(e??{}))t[n]=String(r);return t}function vu(e){let t=e??{},n=e=>{if(t[e]==null)return null;let n=parseInt(t[e],10);return Number.isFinite(n)?n:null},r=e=>t[e]==null?null:pu(t[e]),i=e=>t[e]==null?null:String(t[e]).toLowerCase()===`true`;return{executor:{memory:t[`spark.executor.memory`]??null,memoryMB:r(`spark.executor.memory`),memoryOverhead:t[`spark.executor.memoryOverhead`]??null,memoryOverheadMB:r(`spark.executor.memoryOverhead`),cores:n(`spark.executor.cores`),instances:n(`spark.executor.instances`)},driver:{memory:t[`spark.driver.memory`]??null,memoryMB:r(`spark.driver.memory`),memoryOverhead:t[`spark.driver.memoryOverhead`]??null,memoryOverheadMB:r(`spark.driver.memoryOverhead`),cores:n(`spark.driver.cores`)},dynamicAllocationEnabled:i(`spark.dynamicAllocation.enabled`),shuffleServiceEnabled:i(`spark.shuffle.service.enabled`),serializer:t[`spark.serializer`]??null}}function yu(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e)t.set(n,{...r,stageIds:[...r.stageIds].sort((e,t)=>e-t)});return t}function bu(e){return{...e.evidenceInputs}}function xu(e){let t=bu(e);return e.app.evidenceInputs=t,e.app.rddBlockUpdates=e.rddBlockUpdates,{type:`app`,data:{...e.app,rddInfo:yu(e.rddInfo)}}}function Su(e){return{taskId:e.taskId,attemptNumber:e.attemptNumber,host:e.host,executorId:e.executorId,reason:e.reason,peakExecMem:e.peakExecMem,memSpilled:e.memSpilled,shuffleWrite:e.shuffleWrite}}function Cu(e,t){let n=cu(t);if(!n||!e.failureDetails)return null;let r=lu(n);return e.failureDetails.get(r)||(e.failureDetails.size>=50?null:(e.failureDetails.set(r,n),n))}function wu(e,t){let n=e[`Task Info`]??{},r=e[`Task Metrics`]??{},i=r[`Shuffle Read Metrics`]??{},a=r[`Shuffle Write Metrics`]??{},o=r[`Input Metrics`]??{},s=r[`Output Metrics`]??{};return{duration:(n[`Finish Time`]??0)-(n[`Launch Time`]??0),failed:!!(n.Failed||n.Killed),taskId:n[`Task ID`]??null,attemptNumber:n[`Attempt Number`]??0,launchTime:n[`Launch Time`]??0,finishTime:n[`Finish Time`]??0,reason:e[`Task End Reason`]?.Reason??null,failure:t,speculative:n.Speculative===!0,host:n.Host??``,executorId:n[`Executor ID`]??``,locality:n.Locality??null,peakExecMem:r[`Peak Execution Memory`]??0,gcTime:r[`JVM GC Time`]??0,memSpilled:r[`Memory Bytes Spilled`]??0,diskSpilled:r[`Disk Bytes Spilled`]??0,shuffleRead:(i[`Remote Bytes Read`]??0)+(i[`Local Bytes Read`]??0),shuffleWrite:a[`Shuffle Bytes Written`]??0,fetchWaitTime:i[`Fetch Wait Time`]??0,executorRunTime:r[`Executor Run Time`]??0,executorCpuTime:r[`Executor CPU Time`]??0,inputBytes:o[`Bytes Read`]??0,outputBytes:s[`Bytes Written`]??0,outputRecords:s[`Records Written`]??null}}function Tu(e,t){let n=e[`Stage ID`],r=t.stages.get(n);if(!r)return null;if(r.taskAttempts===null){let t=(e[`Stage Attempt ID`]??0)!==r.stageAttemptId;return!Eu(e,r)&&(r.stageFailureReason!=null||t)&&(r.lateAttemptWork=Fu(Iu(wu(e,null)),r.lateAttemptWork)),null}t.evidenceInputs.taskRecords++;let i=e[`Task Info`]?.Accumulables??[];for(let e of i)t.taskAccumStages.has(e.ID)||t.taskAccumStages.set(e.ID,/* @__PURE__ */ new Set),t.taskAccumStages.get(e.ID).add(n);let a=e[`Task Info`]??{},o=wu(e,a.Failed||a.Killed?Cu(r,e[`Task End Reason`]):null),s=a.Index,c=s==null?Symbol(`no-index`):`${e[`Stage Attempt ID`]??0}:${s}`,l=r.taskAttempts.get(c);return l?l.failed&&!o.failed?(l.speculative||o.speculative?(r.speculationWasteMs+=l.duration,r.speculationWastedAttempts++):(r.retryWasteMs+=l.duration,r.wastedAttempts++,r.retryTaskSamples.length<20&&r.retryTaskSamples.push(Su(l))),r.lateAttemptWork=Fu(Lu(l),r.lateAttemptWork),r.taskAttempts.set(c,o),o.speculative&&r.speculativeWinners.add(c)):(r.lateAttemptWork=Fu(Lu(o),r.lateAttemptWork),l.speculative||o.speculative?(r.speculationWasteMs+=o.duration,r.speculationWastedAttempts++):(r.retryWasteMs+=o.duration,r.wastedAttempts++,r.retryTaskSamples.length<20&&r.retryTaskSamples.push(Su(o)))):(r.taskAttempts.set(c,o),o.speculative&&!o.failed&&r.speculativeWinners.add(c)),null}function Eu(e,t){let n=e[`Task Info`];if(n?.Index==null)return!1;let r=`${e[`Stage Attempt ID`]??0}:${n.Index}`;return n.Speculative!==!0&&!t.speculativeWinners.has(r)?!1:(t.speculationWasteMs+=(n[`Finish Time`]??0)-(n[`Launch Time`]??0),t.speculationWastedAttempts++,t.lateSpeculationWaste=!0,t.lateAttemptWork=Fu(Lu(wu(e,null)),t.lateAttemptWork),!0)}function Du(e,t,n,r,i){let a=/* @__PURE__ */ new WeakSet,o=/* @__PURE__ */ new WeakMap,s=0,c=i==null?``:`e${i}:`;function l(e){let i=(e.metrics??[]).reduce((e,n)=>(n.accumulatorId!==void 0&&t.has(n.accumulatorId)&&e.push({name:n.name,value:t.get(n.accumulatorId),metricType:n.metricType}),e),[]),a=/* @__PURE__ */ new Set;for(let t of e.metrics??[]){if(t.accumulatorId===void 0)continue;let e=n.get(t.accumulatorId);if(e)for(let t of e)r&&r.has(t)&&a.add(t)}return a.size>0?{metrics:i,stageIds:[...a].sort((e,t)=>e-t)}:{metrics:i}}function u(e,t){let{metrics:n,stageIds:r}=l(e),i={id:`${c}n${s++}`,name:e.nodeName,detail:e.simpleString??``,metrics:n,children:t};return r&&(i.stageIds=r),i}function d(e,t){let{metrics:n,stageIds:r}=l(e),i={id:`${c}n${s++}`,name:e.nodeName,detail:``,metrics:n,children:t,exchangeRole:`write`};r&&(i.stageIds=r);let a={id:`${c}n${s++}`,name:e.nodeName,detail:e.simpleString??``,metrics:[],children:[i],exchangeRole:`read`};return r&&(a.stageIds=r),a}let f=[e],p=[];for(;f.length>0;){let e=f.pop();if(!a.has(e)){a.add(e),p.push(e);for(let t of e.children??[])a.has(t)||f.push(t)}}for(let e=p.length-1;e>=0;e--){let t=p[e],n=[];for(let e of t.children??[]){let t=o.get(e);t&&n.push(t)}let r=t.nodeName===`Exchange`||t.nodeName===`BroadcastExchange`?d(t,n):u(t,n);o.set(t,r)}return o.get(e)}const Ou={JVMHeapMemory:`jvmHeapMemory`,JVMOffHeapMemory:`jvmOffHeapMemory`,OnHeapExecutionMemory:`onHeapExecutionMemory`,OffHeapExecutionMemory:`offHeapExecutionMemory`,OnHeapStorageMemory:`onHeapStorageMemory`,OffHeapStorageMemory:`offHeapStorageMemory`,OnHeapUnifiedMemory:`onHeapUnifiedMemory`,OffHeapUnifiedMemory:`offHeapUnifiedMemory`,DirectPoolMemory:`directPoolMemory`,MappedPoolMemory:`mappedPoolMemory`,ProcessTreeJVMVMemory:`processTreeJVMVMemory`,ProcessTreeJVMRSSMemory:`processTreeJVMRSSMemory`,ProcessTreePythonVMemory:`processTreePythonVMemory`,ProcessTreePythonRSSMemory:`processTreePythonRSSMemory`,ProcessTreeOtherVMemory:`processTreeOtherVMemory`,ProcessTreeOtherRSSMemory:`processTreeOtherRSSMemory`,MinorGCCount:`minorGCCount`,MinorGCTime:`minorGCTime`,MajorGCCount:`majorGCCount`,MajorGCTime:`majorGCTime`,TotalGCTime:`totalGCTime`,ConcurrentGCCount:`concurrentGCCount`,ConcurrentGCTime:`concurrentGCTime`};function ku(e,t){let n=t.pendingConfig??{};return t.app={id:e[`App ID`],name:e[`App Name`],startTime:e.Timestamp,endTime:null,sparkVersion:t.pendingSparkVersion??e[`Spark Version`]??null,config:n,resources:t.pendingResources??vu(n),rddInfo:t.rddInfo},xu(t)}function Au(e,t){t.evidenceInputs.environmentUpdates++;let n=_u(e[`Spark Properties`]),r=vu(n);return t.app?(t.app.config=n,t.app.resources=r,xu(t)):(t.pendingConfig=n,t.pendingResources=r,null)}function ju(e,t){let n=e[`Stage IDs`]??[],r=e.Properties?.[`spark.sql.execution.id`],i=r==null?null:parseInt(String(r),10);if(i!=null){t.sqlExecStages.has(i)||t.sqlExecStages.set(i,/* @__PURE__ */ new Set);let e=t.sqlExecStages.get(i);for(let r of n)t.stageToSqlExec.set(r,i),e.add(r)}let a=e[`Job ID`];return a!=null&&t.jobs.set(a,{id:a,submissionTime:e[`Submission Time`]??null,stageIds:n,sqlExecutionId:i,result:null,succeeded:null,exception:null,completionTime:null}),null}function Mu(e,t){let n=e[`Job ID`],r=e[`Job Result`]?.Result??null,i=e[`Job Result`]?.Exception?.Message??null,a=t.jobs.get(n)??{id:n,submissionTime:null,stageIds:[],sqlExecutionId:null,result:null,succeeded:null,exception:null,completionTime:null};return a.result=r,a.succeeded=r===`JobSucceeded`,a.exception=i,a.completionTime=e[`Completion Time`]??null,t.jobs.set(n,a),{type:`job`,data:{...a}}}const Nu=[`taskCount`,`failedTasks`,`wastedAttempts`,`executorRunTime`,`executorCpuTime`,`jvmGCTime`,`memoryBytesSpilled`,`diskBytesSpilled`,`shuffleReadBytes`,`shuffleWriteBytes`,`inputBytes`,`outputBytes`],Pu=(e,t)=>e==null?t:t==null?e:e+t;function Fu(e,t){if(t==null)return e;let n={outputRecords:Pu(e.outputRecords,t.outputRecords),peakExecutionMemoryMax:Math.max(e.peakExecutionMemoryMax,t.peakExecutionMemoryMax),durationMs:Pu(e.durationMs,t.durationMs)};for(let r of Nu)n[r]=e[r]+t[r];return n}function Iu(e){return{taskCount:1,failedTasks:+!!e.failed,wastedAttempts:0,executorRunTime:e.executorRunTime,executorCpuTime:e.executorCpuTime,jvmGCTime:e.gcTime,memoryBytesSpilled:e.memSpilled,diskBytesSpilled:e.diskSpilled,shuffleReadBytes:e.shuffleRead,shuffleWriteBytes:e.shuffleWrite,inputBytes:e.inputBytes,outputBytes:e.outputBytes,outputRecords:e.outputRecords,peakExecutionMemoryMax:e.peakExecMem,durationMs:null}}function Lu(e){return{...Iu(e),taskCount:0,failedTasks:0}}function Ru(e){return e?e.taskAttempts===null?Fu({...Object.fromEntries(Nu.map(t=>[t,e[t]])),outputRecords:e.outputRecords,peakExecutionMemoryMax:e.peakExecutionMemoryMax??0,durationMs:e.submittedAt>0&&e.completedAt>=e.submittedAt?e.completedAt-e.submittedAt:null},e.earlierAttempts):e.earlierAttempts:null}function zu(e,t){t.evidenceInputs.stageSubmissions++;let n=e[`Stage Info`],r=n[`Stage ID`],i=t.stages.get(r);return t.stages.set(r,{id:r,name:n[`Stage Name`]??``,details:n.Details??``,submittedAt:n[`Submission Time`]??0,completedAt:0,taskCount:0,failedTasks:0,shuffleReadBytes:0,shuffleWriteBytes:0,fetchWaitTime:0,memoryBytesSpilled:0,diskBytesSpilled:0,jvmGCTime:0,executorRunTime:0,executorCpuTime:0,inputBytes:0,outputBytes:0,outputRecords:null,sqlExecutionId:t.stageToSqlExec.get(r)??null,parentIds:n[`Parent IDs`]??[],hostStats:/* @__PURE__ */ new Map,speculativeTasks:0,failureReasons:/* @__PURE__ */ new Map,stageFailureReason:null,stageAttemptId:n[`Stage Attempt ID`]??0,stageAttempts:(i?.stageAttempts??0)+1,failedStageAttempts:i?.failedStageAttempts??0,earlierAttempts:Ru(i),lateAttemptWork:i?.lateAttemptWork??null,taskAttempts:/* @__PURE__ */ new Map,failureDetails:/* @__PURE__ */ new Map,retryTaskSamples:[],retryWasteMs:0,wastedAttempts:0,speculationWasteMs:0,speculationWastedAttempts:0,speculativeWinners:/* @__PURE__ */ new Set,lateSpeculationWaste:!1,executorMetrics:/* @__PURE__ */ new Map}),Bu(n,r,t),null}function Bu(e,t,n){for(let r of e[`RDD Info`]??[]){let e=r[`RDD ID`];if(e==null)continue;n.evidenceInputs.rddStorageSnapshots++;let i=r[`Storage Level`]??{},a=n.rddInfo.get(e),o=a?.stageIds??/* @__PURE__ */ new Set;o.add(t);let s=a?.storageSource===`blockUpdates`,c=!!(i[`Use Disk`]||i[`Use Memory`]);n.rddInfo.set(e,{id:e,name:r.Name??``,callsite:r.Callsite??``,storageLevel:s&&!c?a.storageLevel:{useDisk:i[`Use Disk`]??!1,useMemory:i[`Use Memory`]??!1,deserialized:i.Deserialized??!1,replication:i.Replication??1},numPartitions:r[`Number of Partitions`]??0,numCachedPartitions:s?a.numCachedPartitions:r[`Number of Cached Partitions`]||a?.numCachedPartitions||0,memorySize:s?a.memorySize:r[`Memory Size`]||a?.memorySize||0,diskSize:s?a.diskSize:r[`Disk Size`]||a?.diskSize||0,storageSource:a?.storageSource??`rddInfo`,stageIds:o})}}const Vu=/^rdd_(\d+)_(\d+)$/;function Hu(e,t){let n=e.blocks.get(t);if(!n)return;e.memorySize-=n.memorySize,e.diskSize-=n.diskSize;let r=(e.replicasByPartition.get(n.partition)??1)-1;r>0?e.replicasByPartition.set(n.partition,r):e.replicasByPartition.delete(n.partition),e.blocks.delete(t)}function Uu(e,t){let n=e[`Block Updated Info`],r=Vu.exec(n[`Block ID`]);if(!r)return null;t.rddBlockUpdates++;let i=Number(r[1]),a=Number(r[2]),o=n[`Storage Level`]??{},s=!!(o[`Use Memory`]||o[`Use Disk`])&&(o.Replication??1)>0,c=t.rddBlocks.get(i);c||(c={blocks:/* @__PURE__ */ new Map,replicasByPartition:/* @__PURE__ */ new Map,memorySize:0,diskSize:0,peakCachedPartitions:0},t.rddBlocks.set(i,c));let l=`${a}@${n[`Block Manager ID`]?.[`Executor ID`]??``}`;if(Hu(c,l),s){let e={partition:a,memorySize:o[`Use Memory`]?n[`Memory Size`]??0:0,diskSize:o[`Use Disk`]?n[`Disk Size`]??0:0};c.blocks.set(l,e),c.memorySize+=e.memorySize,c.diskSize+=e.diskSize,c.replicasByPartition.set(a,(c.replicasByPartition.get(a)??0)+1)}let u=t.rddInfo.get(i)??{id:i,name:``,callsite:``,storageLevel:{useDisk:!!o[`Use Disk`],useMemory:!!o[`Use Memory`],deserialized:!1,replication:o.Replication??1},numPartitions:0,numCachedPartitions:0,memorySize:0,diskSize:0,storageSource:`blockUpdates`,stageIds:/* @__PURE__ */ new Set};return u.storageSource=`blockUpdates`,c.replicasByPartition.size>=c.peakCachedPartitions&&(c.peakCachedPartitions=c.replicasByPartition.size,u.numCachedPartitions=c.peakCachedPartitions,u.memorySize=c.memorySize,u.diskSize=c.diskSize),t.rddInfo.set(i,u),null}function Wu(e,t){let n=t.stages.get(e[`Stage ID`]);if(!n)return null;let r=e[`Executor Metrics`]??{},i={};for(let[e,t]of Object.entries(Ou))r[e]!=null&&(i[t]=r[e]);return Object.keys(i).length>0&&t.evidenceInputs.executorMetricRows++,n.executorMetrics.set(e[`Executor ID`],i),null}function Gu(e,t){t.evidenceInputs.sqlExecutions++;let n=e.sparkPlanInfo??null,r={id:e.executionId,description:e.description??``,startTime:e.time,endTime:null,stageIds:[],sparkPlanInfo:n,hadAdaptiveUpdate:!1};return e.rootExecutionId!==void 0&&(r.rootExecutionId=e.rootExecutionId),e.physicalPlanDescription&&od.test(e.physicalPlanDescription)&&(r.commandArguments=e.physicalPlanDescription),t.sqlExecutions.set(r.id,r),t.resolvedPlanExecutions.delete(r.id),n!==null&&t.accumState.set(r.id,/* @__PURE__ */ new Map),{type:`sql`,data:r}}function Ku(e,t){let n=t.sqlExecutions.get(e.executionId);if(n&&(n.endTime=e.time),t.resolvedPlanExecutions.has(e.executionId))return null;let r=n?.sparkPlanInfo??null;if(!r||!r.nodeName)return t.accumState.delete(e.executionId),n?{type:`sql`,data:{...n}}:null;let i=Du(r,t.accumState.get(e.executionId)??/* @__PURE__ */ new Map,t.taskAccumStages,t.sqlExecStages.get(e.executionId),e.executionId);return t.accumState.delete(e.executionId),n.sparkPlanInfo=null,t.resolvedPlanExecutions.add(e.executionId),t.evidenceInputs.resolvedSqlPlans++,{type:`sqlPlan`,data:{executionId:e.executionId,planTree:i}}}function qu(e,t){let{executionId:n,accumUpdates:r}=e;if(!t.accumState.has(n))return null;let i=t.accumState.get(n);for(let[e,t]of r)i.set(e,(i.get(e)??0)+t);return null}function Ju(e,t){let n=t.sqlExecutions.get(e.executionId);return n?(e.sparkPlanInfo!=null&&(n.sparkPlanInfo=e.sparkPlanInfo),n.hadAdaptiveUpdate=!0,{type:`sql`,data:{...n,sparkPlanInfo:null}}):null}function Yu(e,t){let n={kind:`added`,timestamp:e.Timestamp,executorId:e[`Executor ID`],host:e[`Executor Info`]?.Host??``,totalCores:e[`Executor Info`]?.[`Total Cores`]??0,resourceProfileId:e[`Executor Info`]?.[`Resource Profile Id`]??e[`Resource Profile Id`]??null};return t.executors.added.push(n),{type:`executor`,data:n}}function Xu(e,t){let n={kind:`removed`,timestamp:e.Timestamp,executorId:e[`Executor ID`],reason:e[`Removed Reason`]??``};t.executors.removed.push(n);let r=`@${n.executorId}`;for(let e of t.rddBlocks.values())for(let t of e.blocks.keys())t.endsWith(r)&&Hu(e,t);return{type:`executor`,data:n}}function Zu(e,t){switch(e.Event){case`SparkListenerLogStart`:return t.pendingSparkVersion=e[`Spark Version`]??null,null;case`SparkListenerApplicationStart`:return ku(e,t);case`SparkListenerEnvironmentUpdate`:return Au(e,t);case`SparkListenerApplicationEnd`:return t.evidenceInputs.applicationEnds++,t.app?(t.app.endTime=e.Timestamp,xu(t)):null;case`SparkListenerJobStart`:return ju(e,t);case`SparkListenerJobEnd`:return Mu(e,t);case`SparkListenerStageSubmitted`:return zu(e,t);case`SparkListenerStageCompleted`:{let n=e[`Stage Info`],r=n[`Stage ID`],i=t.stages.get(r);return i?(i.completedAt=n[`Completion Time`]??0,!i.submittedAt&&n[`Submission Time`]!=null&&(i.submittedAt=n[`Submission Time`]),i.stageFailureReason=n[`Failure Reason`]??null,i.stageFailureReason!=null&&i.taskAttempts!==null&&i.failedStageAttempts++,Kl(r,i,t)):null}case`SparkListenerStageExecutorMetrics`:return Wu(e,t);case`SparkListenerTaskEnd`:return Tu(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionStart`:return Gu(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerSQLAdaptiveExecutionUpdate`:return Ju(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionEnd`:return Ku(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerDriverAccumUpdates`:return qu(e,t);case`SparkListenerExecutorAdded`:return Yu(e,t);case`SparkListenerExecutorRemoved`:return Xu(e,t);case`SparkListenerBlockUpdated`:return Uu(e,t);default:return Bl(e)}}const Qu=new Set(Rl.options.map(e=>e.shape.Event.value)),$u=`{"Event":"org.apache.spark.sql.execution.ui.SparkListenerSQL`,ed=`"physicalPlanDescription":"`,td=92,nd=10,rd=new Set(zl),id=new Set([...rd].filter(e=>e!==`SaveIntoDataSourceCommand`)),ad=`== Physical Plan ==\\nExecute `,od=/^[A-Za-z]+\nArguments: /;function sd(e,t){for(let n=e.indexOf(`"`,t);n!==-1;n=e.indexOf(`"`,n+1)){let r=0;for(let i=n-1;i>=t&&e.charCodeAt(i)===92;i--)r++;if(r%2==0)return n}return-1}function cd(e,t,n){for(let r=e.indexOf(34);r!==-1&&r<t;r=e.indexOf(34,r+1)){let t=r-1;for(;t>=0&&e[t]===92;)t--;if((r-1-t+(t<0?n:0))%2==0)return r}return-1}function ld(e,t){if(!e.startsWith(ad,t))return null;let n=t+29,r=n;for(;r<e.length&&/[A-Za-z]/.test(e[r]);)r++;return r<e.length?e.slice(n,r):null}function ud(e,t){let n=e.slice(t,t+29);if(!ad.startsWith(n))return`skip`;if(n.length<29)return`wait`;let r=ld(e,t);return r===null?`wait`:id.has(r)?`keep`:`skip`}function dd(e,t,n){let r=ld(e,t);if(r===null||!rd.has(r))return null;let i=`${r}\\nArguments: `,a=e.indexOf(i,t+29+r.length);if(a===-1||a>=n)return null;let o=a+i.length;for(;o<n&&(e.charCodeAt(o)!==92||e.charCodeAt(o+1)!==110);)o+=e.charCodeAt(o)===92?2:1;let s=e.slice(a,Math.min(o,n));return r===`SaveIntoDataSourceCommand`&&!s.includes(`DeltaDataSource`)?null:s}function fd(e){if(!e.startsWith($u))return e;let t=e.indexOf(ed);if(t===-1)return e;let n=t+27;if(e.charCodeAt(n)===34)return e;let r=sd(e,n);return r===-1?e:e.slice(0,n)+(dd(e,n,r)??``)+e.slice(r)}function pd(e){if(!e.startsWith(`{"Event":"SparkListenerTaskEnd",`))return null;let t=e.indexOf(`"Accumulables":[`);if(t===-1)return null;let n=t+16,r=e.indexOf(`]`,n);if(r===-1)return null;let i=e.indexOf(`[`,n);if(i!==-1&&i<r)return null;let a=[];for(let t=e.indexOf(`{`,n);t!==-1&&t<r;t=e.indexOf(`{`,t+1)){if(!e.startsWith(`"ID":`,t+1))return null;let n=t+1+5,r=n,i=0;for(let t=e.charCodeAt(r);t>=48&&t<=57;t=e.charCodeAt(++r))i=i*10+t-48;if(r===n||r-n>15)return null;let o=e.charCodeAt(r);if(o!==44&&o!==125)return null;a.push(i)}let o;try{o=JSON.parse(e.slice(0,n)+e.slice(r))}catch{return null}let s=o?.[`Task Info`];return!s||!Array.isArray(s.Accumulables)||s.Accumulables.length!==0?null:(s.Accumulables=a.map(e=>({ID:e})),o)}function md(e,t,n,r){let i=r&&r.head.length>119?r.head:e;if(!i.startsWith(`{"Event":"org.apache.spark.sql.execution.ui.SparkListenerSQLAdaptiveExecutionUpdate","executionId":`))return!1;let a=0,o=99;for(;o<i.length&&i.charCodeAt(o)>=48&&i.charCodeAt(o)<=57;o++)a=a*10+i.charCodeAt(o)-48;if(o===99||i.charCodeAt(o)!==44)return!1;let s=t.sqlExecutions.get(a);return!s||s.endTime!=null?!1:(r&&r.tail.length>=2?r.tail:e).endsWith(`}}`)?(t.pendingAdaptiveUpdates.set(a,e),!0):(hd(a,t,n),!1)}function hd(e,t,n){let r=t.pendingAdaptiveUpdates.get(e);r!==void 0&&(t.pendingAdaptiveUpdates.delete(e),bd(r,t,n))}function gd(e,t,n,r){md(e,t,n,r)||bd(e,t,n)}const _d=`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionStart`,vd=/"executionId":(\d+)/;function yd(e,t){let n=e.slice(0,300);if(!n.includes(`${_d}"`))return;let r=vd.exec(n);r&&t.unreadableSqlStarts.add(Number(r[1]))}function bd(e,t,n){if(e.startsWith(`{"Event":"SparkListenerBlockUpdated",`)&&!e.includes(`"Block ID":"rdd_`))return;let r;try{r=pd(e)??JSON.parse(fd(e))}catch{t.skippedLines++,yd(e,t);return}let i=r?.Event;if(typeof i!=`string`||!Qu.has(i))return;let a=Rl.safeParse(r);if(!a.success){t.skippedLines++,i===_d&&yd(e,t);return}a.data.Event===`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionEnd`&&hd(a.data.executionId,t,n);let o;try{o=Zu(a.data,t)}catch(e){console.error(`processEvent threw for an already-validated event:`,e),t.skippedLines++;return}o&&n(o)}function xd(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e.stages)r.executorMetrics instanceof Map&&r.executorMetrics.size>0&&t.set(n,r.executorMetrics);return t}function Sd(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e.stages)r.lateSpeculationWaste&&t.set(n,{speculationWasteMs:r.speculationWasteMs,speculationWastedAttempts:r.speculationWastedAttempts});return t}function Cd(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e.stages)r.lateAttemptWork!=null&&t.set(n,r.lateAttemptWork);return t}function wd(e,t,n){for(let n of[...e.pendingAdaptiveUpdates.keys()])hd(n,e,t);t({type:`progress`,pct:1,linesProcessed:n}),t({type:`stageLateAttemptWork`,data:Cd(e)}),t({type:`runAggregates`,data:fu(e.taskStore)}),t({type:`stageSpeculationWaste`,data:Sd(e)}),t({type:`stageExecutorMetrics`,data:xd(e)}),t(xu(e)),t({type:`done`,skippedLines:e.skippedLines,...e.unreadableSqlStarts.size>0?{unreadableSqlExecutions:[...e.unreadableSqlStarts].sort((e,t)=>e-t)}:{}}),e.accumState.clear()}const Td=/* @__PURE__ */ new Set([`local-server-unavailable`,`upstream-unreachable`,`application-not-found`,`access-or-upstream-failure`,`invalid-event-log`]);function Ed({baseUrl:e,appId:t,attemptId:n}){let r=[[`baseUrl`,e],[`appId`,t]];return n!==null&&r.push([`attemptId`,n]),`/shs-proxy?${r.map(([e,t])=>`${e}=${encodeURIComponent(t)}`).join(`&`)}`}function Dd(e){return typeof e==`string`&&Td.has(e)}const Od=X({code:q()}).passthrough();function kd(e,t){let n=e=>e.match(/(\d+)|(\D+)/g)??[e],r=n(e),i=n(t),a=Math.max(r.length,i.length);for(let e=0;e<a;e++){let t=r[e]??``,n=i[e]??``;if(t===n)continue;let a=Number(t),o=Number(n);return!Number.isNaN(a)&&!Number.isNaN(o)?a-o:t<n?-1:1}return 0}function Ad(e){let t=e.filter(e=>!e.toLowerCase().startsWith(`appstatus`)).filter(e=>/^events_\d+_/.test(e)),n=e=>parseInt(e.match(/^events_(\d+)_/)[1],10),r=t.filter(e=>e.endsWith(`.compact`)).map(n),i=r.length>0?Math.max(...r):-1,a=t.filter(e=>{let t=n(e);return e.endsWith(`.compact`)?t===i:t>i}).sort(kd),o=a.map(n);for(let e=1;e<o.length;e++)if(o[e]!==o[e-1]+1)throw Error(`Rolling event-log directory is missing file(s) between index ${o[e-1]} and ${o[e]}.`);return a}const jd=67324752,Md=101010256,Nd=(e,t)=>e[t]|e[t+1]<<8,$=(e,t)=>(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0,Pd=(e,t)=>$(e,t)+$(e,t+4)*2**32;async function Fd(e,t,n){if(t<0||n>e.size||t>n)throw Error(`zip structure points outside the file`);return new Uint8Array(await e.slice(t,n).arrayBuffer())}function Id(e){if(e.length<4)return!1;let t=$(e,0);return t===jd||t===Md}async function Ld(e){let t=Math.max(0,e.size-65557),n=await Fd(e,t,e.size),r=n.length-22;for(;r>=0&&$(n,r)!==Md;)r--;if(r<0)throw Error(`no end-of-central-directory record`);let i={count:Nd(n,r+10),size:$(n,r+12),offset:$(n,r+16)},a=t+r-20;if(a>=0){let t=await Fd(e,a,a+20);if($(t,0)===117853008){let n=Pd(t,8),r=await Fd(e,n,n+56);if($(r,0)!==101075792)throw Error(`bad zip64 end-of-central-directory record`);return{count:Pd(r,32),size:Pd(r,40),offset:Pd(r,48)}}}return i}function Rd(e,t,n,r){for(let i=t;i+4<=n;){let t=Nd(e,i),n=Nd(e,i+2);if(t===1){let t=i+4;for(let a of[`uncompressed`,`compressed`,`offset`])r[a]===4294967295&&t+8<=i+4+n&&(r[a]=Pd(e,t),t+=8);return}i+=4+n}}async function zd(e){let{count:t,offset:n,size:r}=await Ld(e),i=await Fd(e,n,n+r),a=[],o=0;for(let e=0;e<t;e++){if(o+46>i.length||$(i,o)!==33639248)throw Error(`bad central-directory header`);let e=Nd(i,o+28),t=Nd(i,o+30),n=Nd(i,o+32),r=!!(Nd(i,o+8)&2048),s=o+46,c=s+e,l={uncompressed:$(i,o+24),compressed:$(i,o+20),offset:$(i,o+42)};Rd(i,c,c+t,l),a.push({name:M(i.subarray(s,c),!r),compression:Nd(i,o+10),compressedSize:l.compressed,localHeaderOffset:l.offset}),o=c+t+n}return a}async function Bd(e,t,n,{chunkSize:r,onRead:i}){let a=await Fd(e,t.localHeaderOffset,t.localHeaderOffset+30);if($(a,0)!==jd)throw Error(`bad local header for "${t.name}"`);let o=t.localHeaderOffset+30+Nd(a,26)+Nd(a,28),s=o+t.compressedSize;if(s>e.size)throw Error(`"${t.name}" is truncated`);if(t.compression!==0&&t.compression!==8)throw Error(`"${t.name}" uses unsupported zip compression method ${t.compression}`);let c=[],l=null,u=t.compression===8?new ne:null;u&&(u.ondata=(e,t)=>{e?l=e:t.length&&c.push(t)});for(let t=o;t<s;){let a=Math.min(s,t+r),o=await Fd(e,t,a);if(t=a,u?u.push(o,t>=s):c.push(o),l)throw l;for(i?.(o.length);c.length;)await n(c.shift())}}function Vd(e){return e.length>=2&&e[0]===31&&e[1]===139?`gz`:e.length>=4&&e[0]===40&&e[1]===181&&e[2]===47&&e[3]===253?`zstd`:e.length>=8&&[76,90,52,66,108,111,99,107].every((t,n)=>e[n]===t)?`lz4`:e.length>=8&&[130,83,78,65,80,80,89,0].every((t,n)=>e[n]===t)?`snappy`:null}function Hd(e,t,n,r){if(e===`lz4`||t.endsWith(`.lz4`)){let e=oe(n);return{push(t,n){e.push(t),n&&e.end()}}}if(e===`gz`||t.endsWith(`.gz`)){let e=new A(n);return{push:(t,n)=>e.push(t,n)}}if(e===`zstd`||t.endsWith(`.zstd`)||t.endsWith(`.zst`)){let e=r?r(n):new Ae(n);return{push:(t,n)=>e.push(t,n),cancel:()=>e.cancel?.()}}if(e===`snappy`||t.endsWith(`.snappy`)){let e=Ie(n);return{push(t,n){e.push(t),n&&e.end()}}}return{push:e=>n(e)}}function Ud(e,t,n){let r=/* @__PURE__ */ new Uint8Array,i=null,a=null,o=()=>{a=Hd(Vd(r),e,t,n),i=r};return{async push(e){if(!a){let t=new Uint8Array(r.length+e.length);t.set(r),t.set(e,r.length),r=t,r.length>=8&&o();return}await a.push(i,!1),i=e},async end(){if(!a){if(!r.length)return;o()}await a.push(i,!0)},cancel(){a?.cancel?.()}}}function Wd(e,t,n){e({type:`error`,source:`shs`,code:t,...n?{message:n}:{}})}async function Gd(e,t,{fetchImpl:n=fetch,emit:r=e=>self.postMessage(e)}={}){let i=Ed(e),a;try{a=await n(i)}catch{Wd(r,`local-server-unavailable`);return}if(a.status===404){Wd(r,`local-server-unavailable`);return}if(!a.ok){let e=`access-or-upstream-failure`;try{let t=Od.parse(await a.json());Dd(t.code)&&(e=t.code)}catch{}Wd(r,e);return}if(!a.body){Wd(r,`invalid-event-log`);return}let o,s;try{s=Number(a.headers.get(`content-length`))||null;let e=a.body.getReader(),t=[],n=0;for(;;){let{done:i,value:a}=await e.read();if(i)break;t.push(a),n+=a.length,(!s||n<s)&&r({type:`progress`,pct:s?n/s*.5:null,linesProcessed:0})}o=new Uint8Array(n);let i=0;for(let e of t)o.set(e,i),i+=e.length}catch{Wd(r,`local-server-unavailable`);return}if((a.headers.get(`content-type`)||``).startsWith(`text/html`)){Wd(r,`local-server-unavailable`);return}s&&r({type:`progress`,pct:.5,linesProcessed:0}),await qd(o,t,r)}function Kd(e){return{size:e.length,slice:(t,n)=>({arrayBuffer:async()=>e.slice(t,n).buffer})}}function qd(e,t,n,{zstdDecoder:r}={}){return Qd(Kd(e),t,n,{zstdDecoder:r,onInvalid:e=>Wd(n,`invalid-event-log`,e??void 0)})}const Jd=e=>e.name.slice(e.name.lastIndexOf(`/`)+1),Yd=e=>/^events_\d+_/.test(Jd(e));function Xd(e){let t=/* @__PURE__ */ new Set;for(let n of e){if(n.name.endsWith(`/`)||Jd(n).toLowerCase().startsWith(`appstatus`))continue;let e=n.name.slice(0,n.name.indexOf(`/`)+1);t.add(e||(Yd(n)?``:n.name))}return t.size}function Zd(e){let t=e.filter(e=>!e.name.endsWith(`/`));if(t.some(Yd)){let e=new Map(t.map(e=>[Jd(e),e]));return Ad(t.map(Jd)).map(t=>e.get(t))}return t.filter(e=>Jd(e).toLowerCase()!==`appstatus`)}async function Qd(e,t,n,{zstdDecoder:r,chunkSize:i=524288,onInvalid:a,progressEvery:o=2e3,reportPct:s=!1}){let c,l;try{let t=await zd(e);l=Xd(t),c=l>1?[]:Zd(t)}catch(e){a(`Could not read the zip archive: ${e instanceof Error?e.message:String(e)}`);return}if(l>1){a(`The zip archive holds ${l} application attempts. Download a single attempt, for example GET /api/v1/applications/<appId>/<attemptId>/logs.`);return}if(c.length===0){a(`The zip archive contains no event log.`);return}let u=c.reduce((e,t)=>e+t.compressedSize,0),d=0,f=hu(),p=[],m=0,h=e=>{p.length=0;let r=f.decode(e,p);for(let e=0,i=0;e<r.length;e++)gd(r[e],t,n,p[i]?.index===e?p[i++]:void 0),m++,m%o===0&&n({type:`progress`,pct:s&&u?d/u:null,linesProcessed:m})};for(let t of c){let n=Ud(t.name,h,r);try{await Bd(e,t,e=>n.push(e),{chunkSize:i,onRead:e=>{d+=e}}),await n.end()}catch(e){n.cancel(),a(`Could not decompress "${t.name}" in the zip archive: ${e instanceof Error?e.message:String(e)}`);return}}for(let e of f.flush())gd(e,t,n);if(!t.app){a(null);return}wd(t,n,m)}function $d(e,t,{maxInFlight:n=3,onFallback:r}={}){let i=null,a=null,o=null,s=0,c=e=>{i?.terminate?.(),i=null,a=Promise.resolve(!1),r?.(e)},l=()=>new Promise(t=>{let n;try{n=e()}catch(e){c(`could not start the decompress worker: ${e instanceof Error?e.message:String(e)}`),t(!1);return}let r=!1,a=(e,a=``)=>{r||(r=!0,e?i=n:(n.terminate?.(),c(a)),t(e))};n.onmessage=({data:e})=>{e.type===`ready`?a(!0):o&&`id`in e&&e.id===o.id&&o.onReply(e)},n.onerror=e=>{e.preventDefault();let t=e.message||`unknown error`;if(!r){a(!1,`the decompress worker failed to load: ${t}`);return}let n=o;c(`the decompress worker crashed: ${t}`),n?.fail(/* @__PURE__ */ Error(`Decompress worker crashed: ${t}`))}});return e=>{let r=s++,c=!1,u=null,d=0,f=0,p=null,m=null,h=e=>new Promise(t=>{let n=()=>{e()&&(m=null,t())};m=n,n()}),g={id:r,onReply(t){if(!p){if(t.type===`chunk`)try{e(new Uint8Array(t.bytes,0,t.length))}catch(e){i?.postMessage({type:`cancel`,id:r},[]),g.fail(e instanceof Error?e:Error(String(e)))}else t.type===`consumed`?(f--,m?.()):t.type===`error`&&g.fail(Error(t.message))}},fail(e){p||(p=e,o===g&&(o=null),m?.())}},_=async()=>{if(c=!0,a??=l(),!await a||!i){u=t(e);return}o=g,i.postMessage({type:`start`,id:r},[])};return{async push(e,t=!1){if(c||await _(),u)return u.push(e,t);if(p)throw p;let a=e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.slice().buffer;if(!i)throw Error(`Decompress worker is gone`);if(i.postMessage({type:`data`,id:r,seq:d++,bytes:a,final:t},[a]),f++,await h(()=>p!==null||f<(t?1:n)),p)throw p;t&&o===g&&(o=null)},cancel(){u||!c||p||(i?.postMessage({type:`cancel`,id:r},[]),g.fail(/* @__PURE__ */ Error(`Decompression cancelled`)))}}}}const ef=524288,tf=`Not a Spark event log: no application-start event found. Choose a Spark event log file, or check the docs for supported formats.`;async function nf(e,t,n,r){let i=Vd(new Uint8Array(await e.slice(0,Math.min(8,e.size)).arrayBuffer())),a=0,o=i===`gz`?new A(e=>t(e,a)):null,s=i===`lz4`?oe(e=>t(e,a)):null,c=e=>t(e,a),l=i===`zstd`?r?r(c):new Ae(c):null,u=i===`snappy`?Ie(e=>t(e,a)):null,d=Math.max(1,Math.min(n,Math.ceil(e.size/100))),f=0;try{for(;f<e.size;){let n=f,r=new Uint8Array(await e.slice(n,n+d).arrayBuffer());f+=d;let i=f>=e.size;a=n/e.size,o?o.push(r,i):s?s.push(r):l?await l.push(r,i):u?u.push(r):t(r,a)}}catch(e){throw l?.cancel?.(),e}s&&s.end(),u&&u.end()}async function rf(e,t,{emit:n=e=>self.postMessage(e),chunkSize:r=ef,zstdDecoder:i}={}){if(e.size===0){n({type:`error`,message:`File is empty.`});return}if(Id(new Uint8Array(await e.slice(0,Math.min(4,e.size)).arrayBuffer()))){await Qd(e,t,n,{zstdDecoder:i,chunkSize:r,progressEvery:300,reportPct:!0,onInvalid:e=>n({type:`error`,message:e??tf})});return}let a=hu(),o=[],s=0,c=(e,r)=>{o.length=0;let i=a.decode(e,o);for(let e=0,a=0;e<i.length;e++)gd(i[e],t,n,o[a]?.index===e?o[a++]:void 0),s++,s%300==0&&n({type:`progress`,pct:r??null,linesProcessed:s})};try{await nf(e,c,r,i)}catch(t){let r=t instanceof Error?t.message:String(t);n({type:`error`,message:`Could not decompress "${e.name}": ${r}`});return}for(let e of a.flush())gd(e,t,n);if(!t.app){n({type:`error`,message:tf});return}wd(t,n,s)}async function af(e,t,{emit:n=e=>self.postMessage(e),chunkSize:r=ef,zstdDecoder:i}={}){if(e.length===0){n({type:`error`,message:`Rolling event-log directory contained no event files.`});return}let a=hu(),o=[],s=0,c=e.reduce((e,t)=>e+t.size,0),l=0,u=0,d=(e,r)=>{o.length=0;let i=a.decode(e,o);for(let e=0,a=0;e<i.length;e++)gd(i[e],t,n,o[a]?.index===e?o[a++]:void 0),s++,s%300==0&&n({type:`progress`,pct:c>0?(l+(r??0)*u)/c:null,linesProcessed:s})};for(let t of e){u=t.size;try{await nf(t,d,r,i)}catch(e){let r=e instanceof Error?e.message:String(e);n({type:`error`,message:`Could not decompress "${t.name}": ${r}`});return}l+=t.size}for(let e of a.flush())gd(e,t,n);if(!t.app){n({type:`error`,message:tf});return}wd(t,n,s)}if(typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope){let e=null,t=$d(()=>new Worker(new URL(
|
|
120
|
+
`,a);t=n=h=a<p.length?p.substring(a):``,r=!1,i=!1,o=-1}!r&&t!==``&&u(a[a.length-1],h)}return{decode(e,t){let n=[];if(e.length<=Cu)d(e,n,t);else for(let r=0;r<e.length;r+=Cu)d(e.subarray(r,r+Cu),n,t);return n},flush(){let n=(t+e.decode()).trim();return t=``,n?[n]:[]}}}function Tu(){return{app:null,pendingSparkVersion:null,pendingConfig:null,pendingResources:null,stages:/* @__PURE__ */ new Map,taskStore:/* @__PURE__ */ new Map,sqlExecutions:/* @__PURE__ */ new Map,stageToSqlExec:/* @__PURE__ */ new Map,sqlExecStages:/* @__PURE__ */ new Map,jobs:/* @__PURE__ */ new Map,executors:{added:[],removed:[]},skippedLines:0,unreadableSqlStarts:/* @__PURE__ */ new Set,accumState:/* @__PURE__ */ new Map,executorAccumState:/* @__PURE__ */ new Map,rddInfo:/* @__PURE__ */ new Map,rddBlocks:/* @__PURE__ */ new Map,rddBlockUpdates:0,taskAccumStages:/* @__PURE__ */ new Map,lastTaskAccumIds:/* @__PURE__ */ new Map,executorPeakMetrics:/* @__PURE__ */ new Map,pendingAdaptiveUpdates:/* @__PURE__ */ new Map,resolvedPlanExecutions:/* @__PURE__ */ new Set,evidenceInputs:{environmentUpdates:0,applicationEnds:0,stageSubmissions:0,rddStorageSnapshots:0,sqlExecutions:0,resolvedSqlPlans:0,executorMetricRows:0,taskRecords:0}}}function Eu(e){if(Array.isArray(e)){let t={};for(let n of e)Array.isArray(n)&&n.length>=2&&(t[n[0]]=String(n[1]));return t}let t={};for(let[n,r]of Object.entries(e??{}))t[n]=String(r);return t}function Du(e,t){let n=e??{},r=Object.keys(n).length>0,i=e=>r?Su({sparkVersion:t,properties:n},e)?.value:void 0,a=e=>{let t=i(e);if(t==null)return null;let n=parseInt(t,10);return Number.isFinite(n)?n:null},o=e=>_u(i(e)),s=e=>{let t=i(e);return t==null?null:t.toLowerCase()===`true`};return{executor:{memory:n[`spark.executor.memory`]??null,memoryMB:n[`spark.executor.memory`]==null?null:_u(n[`spark.executor.memory`]),memoryOverhead:i(`spark.executor.memoryOverhead`)??null,memoryOverheadMB:o(`spark.executor.memoryOverhead`),cores:a(`spark.executor.cores`),instances:a(`spark.executor.instances`)},driver:{memory:i(`spark.driver.memory`)??null,memoryMB:o(`spark.driver.memory`),memoryOverhead:i(`spark.driver.memoryOverhead`)??null,memoryOverheadMB:o(`spark.driver.memoryOverhead`),cores:a(`spark.driver.cores`)},dynamicAllocationEnabled:s(`spark.dynamicAllocation.enabled`),shuffleServiceEnabled:s(`spark.shuffle.service.enabled`),serializer:n[`spark.serializer`]??null,stageExecutorMetricsLogging:s(`spark.eventLog.logStageExecutorMetrics`)}}function Ou(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e)t.set(n,{...r,stageIds:[...r.stageIds].sort((e,t)=>e-t)});return t}function ku(e){return{...e.evidenceInputs}}function Au(e){let t=ku(e);return e.app.evidenceInputs=t,e.app.rddBlockUpdates=e.rddBlockUpdates,{type:`app`,data:{...e.app,rddInfo:Ou(e.rddInfo)}}}function ju(e){return{taskId:e.taskId,attemptNumber:e.attemptNumber,host:e.host,executorId:e.executorId,reason:e.reason,peakExecMem:e.peakExecMem,memSpilled:e.memSpilled,shuffleWrite:e.shuffleWrite}}function Mu(e,t){let n=fu(t);if(!n||!e.failureDetails)return null;let r=pu(n);return e.failureDetails.get(r)||(e.failureDetails.size>=50?null:(e.failureDetails.set(r,n),n))}function Nu(e,t){let n=e[`Task Info`]??{},r=e[`Task Metrics`]??{},i=r[`Shuffle Read Metrics`]??{},a=r[`Shuffle Write Metrics`]??{},o=r[`Input Metrics`]??{},s=r[`Output Metrics`]??{};return{duration:(n[`Finish Time`]??0)-(n[`Launch Time`]??0),failed:!!(n.Failed||n.Killed),taskId:n[`Task ID`]??null,attemptNumber:n[`Attempt Number`]??0,launchTime:n[`Launch Time`]??0,finishTime:n[`Finish Time`]??0,reason:e[`Task End Reason`]?.Reason??null,failure:t,speculative:n.Speculative===!0,host:n.Host??``,executorId:n[`Executor ID`]??``,locality:n.Locality??null,peakExecMem:r[`Peak Execution Memory`]??0,gcTime:r[`JVM GC Time`]??0,memSpilled:r[`Memory Bytes Spilled`]??0,diskSpilled:r[`Disk Bytes Spilled`]??0,shuffleRead:(i[`Remote Bytes Read`]??0)+(i[`Local Bytes Read`]??0),shuffleWrite:a[`Shuffle Bytes Written`]??0,fetchWaitTime:i[`Fetch Wait Time`]??0,executorRunTime:r[`Executor Run Time`]??0,executorCpuTime:r[`Executor CPU Time`]??0,inputBytes:o[`Bytes Read`]??0,inputRecords:o[`Records Read`]??0,shuffleReadRecords:i[`Total Records Read`]??0,outputBytes:s[`Bytes Written`]??0,outputRecords:s[`Records Written`]??null}}function Pu(e,t){let n=e[`Task Executor Metrics`],r=e[`Task Info`]?.[`Executor ID`];if(!n||r==null)return;let i,a=!1;for(let[e,o]of zu){let s=n[e];typeof s==`number`&&s>0&&(a=!0,i??=t.executorPeakMetrics.get(r)??{},s>(i[o]??0)&&(i[o]=s))}a&&i&&(t.executorPeakMetrics.set(r,i),r!==`driver`&&t.evidenceInputs.executorMetricRows++)}function Fu(e,t){if(t===void 0||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Iu(e,t,n){Pu(e,t);let r=e[`Stage ID`],i=t.stages.get(r);if(!i)return null;if(i.taskAttempts===null){let t=(e[`Stage Attempt ID`]??0)!==i.stageAttemptId;return!Lu(e,i)&&(i.stageFailureReason!=null||t)&&(i.lateAttemptWork=Ku(qu(Nu(e,null)),i.lateAttemptWork)),null}t.evidenceInputs.taskRecords++;let a=n??(e[`Task Info`]?.Accumulables??[]).map(e=>e.ID);if(!Fu(a,t.lastTaskAccumIds.get(r))){t.lastTaskAccumIds.set(r,a);for(let e of a)t.taskAccumStages.has(e)||t.taskAccumStages.set(e,/* @__PURE__ */ new Set),t.taskAccumStages.get(e).add(r)}let o=e[`Task Info`]??{},s=Nu(e,o.Failed||o.Killed?Mu(i,e[`Task End Reason`]):null),c=o.Index,l=c==null?Symbol(`no-index`):`${e[`Stage Attempt ID`]??0}:${c}`,u=i.taskAttempts.get(l);return u?u.failed&&!s.failed?(u.speculative||s.speculative?(i.speculationWasteMs+=u.duration,i.speculationWastedAttempts++):(i.retryWasteMs+=u.duration,i.wastedAttempts++,i.retryTaskSamples.length<20&&i.retryTaskSamples.push(ju(u))),i.lateAttemptWork=Ku(Ju(u),i.lateAttemptWork),i.taskAttempts.set(l,s),s.speculative&&i.speculativeWinners.add(l)):(i.lateAttemptWork=Ku(Ju(s),i.lateAttemptWork),u.speculative||s.speculative?(i.speculationWasteMs+=s.duration,i.speculationWastedAttempts++):(i.retryWasteMs+=s.duration,i.wastedAttempts++,i.retryTaskSamples.length<20&&i.retryTaskSamples.push(ju(s)))):(i.taskAttempts.set(l,s),s.speculative&&!s.failed&&i.speculativeWinners.add(l)),null}function Lu(e,t){let n=e[`Task Info`];if(n?.Index==null)return!1;let r=`${e[`Stage Attempt ID`]??0}:${n.Index}`;return n.Speculative!==!0&&!t.speculativeWinners.has(r)?!1:(t.speculationWasteMs+=(n[`Finish Time`]??0)-(n[`Launch Time`]??0),t.speculationWastedAttempts++,t.lateSpeculationWaste=!0,t.lateAttemptWork=Ku(Ju(Nu(e,null)),t.lateAttemptWork),!0)}function Ru(e,t,n,r,i,a){let o=/* @__PURE__ */ new WeakSet,s=/* @__PURE__ */ new WeakMap,c=0,l=i==null?``:`e${i}:`;function u(e){let i=(e.metrics??[]).reduce((e,n)=>(n.accumulatorId===void 0||(t.has(n.accumulatorId)?e.push({name:n.name,value:t.get(n.accumulatorId),metricType:n.metricType}):a?.has(n.accumulatorId)&&n.metricType!==`average`&&e.push({name:n.name,value:a.get(n.accumulatorId),metricType:n.metricType,executorSide:!0})),e),[]),o=/* @__PURE__ */ new Set;for(let t of e.metrics??[]){if(t.accumulatorId===void 0)continue;let e=n.get(t.accumulatorId);if(e)for(let t of e)r&&r.has(t)&&o.add(t)}return o.size>0?{metrics:i,stageIds:[...o].sort((e,t)=>e-t)}:{metrics:i}}function d(e,t){let{metrics:n,stageIds:r}=u(e),i={id:`${l}n${c++}`,name:e.nodeName,detail:e.simpleString??``,metrics:n,children:t};return r&&(i.stageIds=r),i}function f(e,t){let{metrics:n,stageIds:r}=u(e),i={id:`${l}n${c++}`,name:e.nodeName,detail:``,metrics:n,children:t,exchangeRole:`write`};r&&(i.stageIds=r);let a={id:`${l}n${c++}`,name:e.nodeName,detail:e.simpleString??``,metrics:[],children:[i],exchangeRole:`read`};return r&&(a.stageIds=r),a}let p=[e],m=[];for(;p.length>0;){let e=p.pop();if(!o.has(e)){o.add(e),m.push(e);for(let t of e.children??[])o.has(t)||p.push(t)}}for(let e=m.length-1;e>=0;e--){let t=m[e],n=[];for(let e of t.children??[]){let t=s.get(e);t&&n.push(t)}let r=t.nodeName===`Exchange`||t.nodeName===`BroadcastExchange`?f(t,n):d(t,n);s.set(t,r)}return s.get(e)}const zu=Object.entries({JVMHeapMemory:`jvmHeapMemory`,JVMOffHeapMemory:`jvmOffHeapMemory`,OnHeapExecutionMemory:`onHeapExecutionMemory`,OffHeapExecutionMemory:`offHeapExecutionMemory`,OnHeapStorageMemory:`onHeapStorageMemory`,OffHeapStorageMemory:`offHeapStorageMemory`,OnHeapUnifiedMemory:`onHeapUnifiedMemory`,OffHeapUnifiedMemory:`offHeapUnifiedMemory`,DirectPoolMemory:`directPoolMemory`,MappedPoolMemory:`mappedPoolMemory`,ProcessTreeJVMVMemory:`processTreeJVMVMemory`,ProcessTreeJVMRSSMemory:`processTreeJVMRSSMemory`,ProcessTreePythonVMemory:`processTreePythonVMemory`,ProcessTreePythonRSSMemory:`processTreePythonRSSMemory`,ProcessTreeOtherVMemory:`processTreeOtherVMemory`,ProcessTreeOtherRSSMemory:`processTreeOtherRSSMemory`,MinorGCCount:`minorGCCount`,MinorGCTime:`minorGCTime`,MajorGCCount:`majorGCCount`,MajorGCTime:`majorGCTime`,TotalGCTime:`totalGCTime`,ConcurrentGCCount:`concurrentGCCount`,ConcurrentGCTime:`concurrentGCTime`});function Bu(e,t){let n=t.pendingConfig??{};return t.app={id:e[`App ID`],name:e[`App Name`],...e[`App Attempt ID`]?{attemptId:e[`App Attempt ID`]}:{},startTime:e.Timestamp,endTime:null,sparkVersion:t.pendingSparkVersion??e[`Spark Version`]??null,config:n,resources:t.pendingResources??Du(n,t.pendingSparkVersion??e[`Spark Version`]),rddInfo:t.rddInfo},Au(t)}function Vu(e,t){t.evidenceInputs.environmentUpdates++;let n=Eu(e[`Spark Properties`]),r=Du(n,t.app?.sparkVersion??t.pendingSparkVersion);return t.app?(t.app.config=n,t.app.resources=r,Au(t)):(t.pendingConfig=n,t.pendingResources=r,null)}function Hu(e,t){let n=e[`Stage IDs`]??[],r=e.Properties?.[`spark.sql.execution.id`],i=r==null?null:parseInt(String(r),10);if(i!=null){t.sqlExecStages.has(i)||t.sqlExecStages.set(i,/* @__PURE__ */ new Set);let e=t.sqlExecStages.get(i);for(let r of n)t.stageToSqlExec.set(r,i),e.add(r)}let a=e[`Job ID`];return a!=null&&t.jobs.set(a,{id:a,submissionTime:e[`Submission Time`]??null,stageIds:n,sqlExecutionId:i,result:null,succeeded:null,exception:null,completionTime:null}),null}function Uu(e,t){let n=e[`Job ID`],r=e[`Job Result`]?.Result??null,i=e[`Job Result`]?.Exception?.Message??null,a=t.jobs.get(n)??{id:n,submissionTime:null,stageIds:[],sqlExecutionId:null,result:null,succeeded:null,exception:null,completionTime:null};return a.result=r,a.succeeded=r===`JobSucceeded`,a.exception=i,a.completionTime=e[`Completion Time`]??null,t.jobs.set(n,a),{type:`job`,data:{...a}}}const Wu=[`taskCount`,`failedTasks`,`wastedAttempts`,`executorRunTime`,`executorCpuTime`,`jvmGCTime`,`memoryBytesSpilled`,`diskBytesSpilled`,`shuffleReadBytes`,`shuffleWriteBytes`,`inputBytes`,`outputBytes`],Gu=(e,t)=>e==null?t:t==null?e:e+t;function Ku(e,t){if(t==null)return e;let n={outputRecords:Gu(e.outputRecords,t.outputRecords),peakExecutionMemoryMax:Math.max(e.peakExecutionMemoryMax,t.peakExecutionMemoryMax),durationMs:Gu(e.durationMs,t.durationMs)};for(let r of Wu)n[r]=e[r]+t[r];return n}function qu(e){return{taskCount:1,failedTasks:+!!e.failed,wastedAttempts:0,executorRunTime:e.executorRunTime,executorCpuTime:e.executorCpuTime,jvmGCTime:e.gcTime,memoryBytesSpilled:e.memSpilled,diskBytesSpilled:e.diskSpilled,shuffleReadBytes:e.shuffleRead,shuffleWriteBytes:e.shuffleWrite,inputBytes:e.inputBytes,outputBytes:e.outputBytes,outputRecords:e.outputRecords,peakExecutionMemoryMax:e.peakExecMem,durationMs:null}}function Ju(e){return{...qu(e),taskCount:0,failedTasks:0}}function Yu(e){return e?e.taskAttempts===null?Ku({...Object.fromEntries(Wu.map(t=>[t,e[t]])),outputRecords:e.outputRecords,peakExecutionMemoryMax:e.peakExecutionMemoryMax??0,durationMs:e.submittedAt>0&&e.completedAt>=e.submittedAt?e.completedAt-e.submittedAt:null},e.earlierAttempts):e.earlierAttempts:null}function Xu(e,t){t.evidenceInputs.stageSubmissions++;let n=e[`Stage Info`],r=n[`Stage ID`],i=t.stages.get(r);return t.stages.set(r,{id:r,name:n[`Stage Name`]??``,details:n.Details??``,submittedAt:n[`Submission Time`]??0,completedAt:0,taskCount:0,failedTasks:0,shuffleReadBytes:0,shuffleWriteBytes:0,fetchWaitTime:0,memoryBytesSpilled:0,diskBytesSpilled:0,jvmGCTime:0,executorRunTime:0,executorCpuTime:0,inputBytes:0,outputBytes:0,outputRecords:null,sqlExecutionId:t.stageToSqlExec.get(r)??null,parentIds:n[`Parent IDs`]??[],hostStats:/* @__PURE__ */ new Map,speculativeTasks:0,failureReasons:/* @__PURE__ */ new Map,stageFailureReason:null,stageAttemptId:n[`Stage Attempt ID`]??0,stageAttempts:(i?.stageAttempts??0)+1,failedStageAttempts:i?.failedStageAttempts??0,earlierAttempts:Yu(i),lateAttemptWork:i?.lateAttemptWork??null,taskAttempts:/* @__PURE__ */ new Map,failureDetails:/* @__PURE__ */ new Map,retryTaskSamples:[],retryWasteMs:0,wastedAttempts:0,speculationWasteMs:0,speculationWastedAttempts:0,speculativeWinners:/* @__PURE__ */ new Set,lateSpeculationWaste:!1,executorMetrics:/* @__PURE__ */ new Map}),Zu(n,r,t),null}function Zu(e,t,n){for(let r of e[`RDD Info`]??[]){let e=r[`RDD ID`];if(e==null)continue;n.evidenceInputs.rddStorageSnapshots++;let i=r[`Storage Level`]??{},a=n.rddInfo.get(e),o=a?.stageIds??/* @__PURE__ */ new Set;o.add(t);let s=a?.storageSource===`blockUpdates`,c=!!(i[`Use Disk`]||i[`Use Memory`]);n.rddInfo.set(e,{id:e,name:r.Name??``,callsite:r.Callsite??``,storageLevel:s&&!c?a.storageLevel:{useDisk:i[`Use Disk`]??!1,useMemory:i[`Use Memory`]??!1,deserialized:i.Deserialized??!1,replication:i.Replication??1},numPartitions:r[`Number of Partitions`]??0,numCachedPartitions:s?a.numCachedPartitions:r[`Number of Cached Partitions`]||a?.numCachedPartitions||0,memorySize:s?a.memorySize:r[`Memory Size`]||a?.memorySize||0,diskSize:s?a.diskSize:r[`Disk Size`]||a?.diskSize||0,storageSource:a?.storageSource??`rddInfo`,stageIds:o})}}const Qu=/^rdd_(\d+)_(\d+)$/;function $u(e,t){let n=e.blocks.get(t);if(!n)return;e.memorySize-=n.memorySize,e.diskSize-=n.diskSize;let r=(e.replicasByPartition.get(n.partition)??1)-1;r>0?e.replicasByPartition.set(n.partition,r):e.replicasByPartition.delete(n.partition),e.blocks.delete(t)}function ed(e,t){let n=e[`Block Updated Info`],r=Qu.exec(n[`Block ID`]);if(!r)return null;t.rddBlockUpdates++;let i=Number(r[1]),a=Number(r[2]),o=n[`Storage Level`]??{},s=!!(o[`Use Memory`]||o[`Use Disk`])&&(o.Replication??1)>0,c=t.rddBlocks.get(i);c||(c={blocks:/* @__PURE__ */ new Map,replicasByPartition:/* @__PURE__ */ new Map,memorySize:0,diskSize:0,peakCachedPartitions:0},t.rddBlocks.set(i,c));let l=`${a}@${n[`Block Manager ID`]?.[`Executor ID`]??``}`;if($u(c,l),s){let e={partition:a,memorySize:o[`Use Memory`]?n[`Memory Size`]??0:0,diskSize:o[`Use Disk`]?n[`Disk Size`]??0:0};c.blocks.set(l,e),c.memorySize+=e.memorySize,c.diskSize+=e.diskSize,c.replicasByPartition.set(a,(c.replicasByPartition.get(a)??0)+1)}let u=t.rddInfo.get(i)??{id:i,name:``,callsite:``,storageLevel:{useDisk:!!o[`Use Disk`],useMemory:!!o[`Use Memory`],deserialized:!1,replication:o.Replication??1},numPartitions:0,numCachedPartitions:0,memorySize:0,diskSize:0,storageSource:`blockUpdates`,stageIds:/* @__PURE__ */ new Set};return u.storageSource=`blockUpdates`,c.replicasByPartition.size>=c.peakCachedPartitions&&(c.peakCachedPartitions=c.replicasByPartition.size,u.numCachedPartitions=c.peakCachedPartitions,u.memorySize=c.memorySize,u.diskSize=c.diskSize),t.rddInfo.set(i,u),null}function td(e,t){let n=t.stages.get(e[`Stage ID`]);if(!n)return null;let r=e[`Executor Metrics`]??{},i={};for(let[e,t]of zu)r[e]!=null&&(i[t]=r[e]);return Object.keys(i).length>0&&e[`Executor ID`]!==`driver`&&t.evidenceInputs.executorMetricRows++,n.executorMetrics.set(e[`Executor ID`],i),null}function nd(e,t){t.evidenceInputs.sqlExecutions++;let n=e.sparkPlanInfo??null,r={id:e.executionId,description:e.description??``,startTime:e.time,endTime:null,stageIds:[],sparkPlanInfo:n,hadAdaptiveUpdate:!1};return e.rootExecutionId!==void 0&&(r.rootExecutionId=e.rootExecutionId),e.modifiedConfigs!==void 0&&Object.keys(e.modifiedConfigs).length>0&&(r.modifiedConfigs=e.modifiedConfigs),e.physicalPlanDescription&&vd.test(e.physicalPlanDescription)&&(r.commandArguments=e.physicalPlanDescription),t.sqlExecutions.set(r.id,r),t.resolvedPlanExecutions.delete(r.id),n!==null&&(t.accumState.set(r.id,/* @__PURE__ */ new Map),t.executorAccumState.set(r.id,/* @__PURE__ */ new Map)),{type:`sql`,data:r}}function rd(e,t){let n=t.sqlExecutions.get(e.executionId);if(n&&(n.endTime=e.time),t.resolvedPlanExecutions.has(e.executionId))return null;let r=n?.sparkPlanInfo??null;if(!r||!r.nodeName)return t.accumState.delete(e.executionId),t.executorAccumState.delete(e.executionId),n?{type:`sql`,data:{...n}}:null;let i=Ru(r,t.accumState.get(e.executionId)??/* @__PURE__ */ new Map,t.taskAccumStages,t.sqlExecStages.get(e.executionId),e.executionId,t.executorAccumState.get(e.executionId));return t.accumState.delete(e.executionId),t.executorAccumState.delete(e.executionId),n.sparkPlanInfo=null,t.resolvedPlanExecutions.add(e.executionId),t.evidenceInputs.resolvedSqlPlans++,{type:`sqlPlan`,data:{executionId:e.executionId,planTree:i}}}function id(e,t){let n=e.Accumulables;if(!n||n.length===0)return;let r=t.stageToSqlExec.get(e[`Stage ID`]),i=r===void 0?void 0:t.executorAccumState.get(r);if(i)for(let e of n){if(e.Metadata!==`sql`)continue;let t=typeof e.Value==`string`?Number(e.Value):e.Value;typeof t==`number`&&Number.isFinite(t)&&i.set(e.ID,t)}}function ad(e,t){let{executionId:n,accumUpdates:r}=e;if(!t.accumState.has(n))return null;let i=t.accumState.get(n);for(let[e,t]of r)i.set(e,(i.get(e)??0)+t);return null}function od(e,t){let n=t.sqlExecutions.get(e.executionId);return n?(e.sparkPlanInfo!=null&&(n.sparkPlanInfo=e.sparkPlanInfo),n.hadAdaptiveUpdate=!0,{type:`sql`,data:{...n,sparkPlanInfo:null}}):null}function sd(e,t){let n={kind:`added`,timestamp:e.Timestamp,executorId:e[`Executor ID`],host:e[`Executor Info`]?.Host??``,totalCores:e[`Executor Info`]?.[`Total Cores`]??0,resourceProfileId:e[`Executor Info`]?.[`Resource Profile Id`]??e[`Resource Profile Id`]??null};return t.executors.added.push(n),{type:`executor`,data:n}}function cd(e,t){let n={kind:`removed`,timestamp:e.Timestamp,executorId:e[`Executor ID`],reason:e[`Removed Reason`]??``};t.executors.removed.push(n);let r=`@${n.executorId}`;for(let e of t.rddBlocks.values())for(let t of e.blocks.keys())t.endsWith(r)&&$u(e,t);return{type:`executor`,data:n}}function ld(e,t){switch(e.Event){case`SparkListenerLogStart`:return t.pendingSparkVersion=e[`Spark Version`]??null,null;case`SparkListenerApplicationStart`:return Bu(e,t);case`SparkListenerEnvironmentUpdate`:return Vu(e,t);case`SparkListenerApplicationEnd`:return t.evidenceInputs.applicationEnds++,t.app?(t.app.endTime=e.Timestamp,Au(t)):null;case`SparkListenerJobStart`:return Hu(e,t);case`SparkListenerJobEnd`:return Uu(e,t);case`SparkListenerStageSubmitted`:return Xu(e,t);case`SparkListenerStageCompleted`:{let n=e[`Stage Info`],r=n[`Stage ID`],i=t.stages.get(r);return i?(id(n,t),i.completedAt=n[`Completion Time`]??0,!i.submittedAt&&n[`Submission Time`]!=null&&(i.submittedAt=n[`Submission Time`]),i.stageFailureReason=n[`Failure Reason`]??null,i.stageFailureReason!=null&&i.taskAttempts!==null&&i.failedStageAttempts++,Kl(r,i,t)):null}case`SparkListenerStageExecutorMetrics`:return td(e,t);case`SparkListenerTaskEnd`:return Iu(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionStart`:return nd(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerSQLAdaptiveExecutionUpdate`:return od(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionEnd`:return rd(e,t);case`org.apache.spark.sql.execution.ui.SparkListenerDriverAccumUpdates`:return ad(e,t);case`SparkListenerExecutorAdded`:return sd(e,t);case`SparkListenerExecutorRemoved`:return cd(e,t);case`SparkListenerBlockUpdated`:return ed(e,t);default:return Bl(e)}}const ud=new Set(Rl.options.map(e=>e.shape.Event.value)),dd=`{"Event":"org.apache.spark.sql.execution.ui.SparkListenerSQL`,fd=`"physicalPlanDescription":"`,pd=92,md=10,hd=new Set(zl),gd=new Set([...hd].filter(e=>e!==`SaveIntoDataSourceCommand`)),_d=`== Physical Plan ==\\nExecute `,vd=/^[A-Za-z]+\nArguments: /;function yd(e,t){for(let n=e.indexOf(`"`,t);n!==-1;n=e.indexOf(`"`,n+1)){let r=0;for(let i=n-1;i>=t&&e.charCodeAt(i)===92;i--)r++;if(r%2==0)return n}return-1}function bd(e,t,n){for(let r=e.indexOf(34);r!==-1&&r<t;r=e.indexOf(34,r+1)){let t=r-1;for(;t>=0&&e[t]===92;)t--;if((r-1-t+(t<0?n:0))%2==0)return r}return-1}function xd(e,t){if(!e.startsWith(_d,t))return null;let n=t+29,r=n;for(;r<e.length&&/[A-Za-z]/.test(e[r]);)r++;return r<e.length?e.slice(n,r):null}function Sd(e,t){let n=e.slice(t,t+29);if(!_d.startsWith(n))return`skip`;if(n.length<29)return`wait`;let r=xd(e,t);return r===null?`wait`:gd.has(r)?`keep`:`skip`}function Cd(e,t,n){let r=xd(e,t);if(r===null||!hd.has(r))return null;let i=`${r}\\nArguments: `,a=e.indexOf(i,t+29+r.length);if(a===-1||a>=n)return null;let o=a+i.length;for(;o<n&&(e.charCodeAt(o)!==92||e.charCodeAt(o+1)!==110);)o+=e.charCodeAt(o)===92?2:1;let s=e.slice(a,Math.min(o,n));return r===`SaveIntoDataSourceCommand`&&!s.includes(`DeltaDataSource`)?null:s}function wd(e){if(!e.startsWith(dd))return e;let t=e.indexOf(fd);if(t===-1)return e;let n=t+27;if(e.charCodeAt(n)===34)return e;let r=yd(e,n);return r===-1?e:e.slice(0,n)+(Cd(e,n,r)??``)+e.slice(r)}function Td(e){if(!e.startsWith(`{"Event":"SparkListenerTaskEnd",`))return null;let t=e.indexOf(`"Accumulables":[`);if(t===-1)return null;let n=t+16,r=e.indexOf(`]`,n);if(r===-1)return null;let i=e.indexOf(`[`,n);if(i!==-1&&i<r)return null;let a=[];for(let t=e.indexOf(`{`,n);t!==-1&&t<r;t=e.indexOf(`{`,t+1)){if(!e.startsWith(`"ID":`,t+1))return null;let n=t+1+5,r=n,i=0;for(let t=e.charCodeAt(r);t>=48&&t<=57;t=e.charCodeAt(++r))i=i*10+t-48;if(r===n||r-n>15)return null;let o=e.charCodeAt(r);if(o!==44&&o!==125)return null;a.push(i)}if(a.length>1e4)return null;let o;try{o=JSON.parse(e.slice(0,n)+e.slice(r))}catch{return null}let s=o?.[`Task Info`];return!s||!Array.isArray(s.Accumulables)||s.Accumulables.length!==0?null:{parsed:o,ids:a}}function Ed(e,t,n,r){let i=r&&r.head.length>119?r.head:e;if(!i.startsWith(`{"Event":"org.apache.spark.sql.execution.ui.SparkListenerSQLAdaptiveExecutionUpdate","executionId":`))return!1;let a=0,o=99;for(;o<i.length&&i.charCodeAt(o)>=48&&i.charCodeAt(o)<=57;o++)a=a*10+i.charCodeAt(o)-48;if(o===99||i.charCodeAt(o)!==44)return!1;let s=t.sqlExecutions.get(a);return!s||s.endTime!=null?!1:(r&&r.tail.length>=2?r.tail:e).endsWith(`}}`)?(t.pendingAdaptiveUpdates.set(a,e),!0):(Dd(a,t,n),!1)}function Dd(e,t,n){let r=t.pendingAdaptiveUpdates.get(e);r!==void 0&&(t.pendingAdaptiveUpdates.delete(e),Md(r,t,n))}function Od(e,t,n,r){Ed(e,t,n,r)||Md(e,t,n)}const kd=`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionStart`,Ad=/"executionId":(\d+)/;function jd(e,t){let n=e.slice(0,300);if(!n.includes(`${kd}"`))return;let r=Ad.exec(n);r&&t.unreadableSqlStarts.add(Number(r[1]))}function Md(e,t,n){if(e.startsWith(`{"Event":"SparkListenerBlockUpdated",`)&&!e.includes(`"Block ID":"rdd_`))return;let r,i;try{let t=Td(e);t?{parsed:r,ids:i}=t:r=JSON.parse(wd(e))}catch{t.skippedLines++,jd(e,t);return}let a=r?.Event;if(typeof a!=`string`||!ud.has(a))return;let o=Rl.safeParse(r);if(!o.success){t.skippedLines++,a===kd&&jd(e,t);return}o.data.Event===`org.apache.spark.sql.execution.ui.SparkListenerSQLExecutionEnd`&&Dd(o.data.executionId,t,n);let s;try{s=i&&o.data.Event===`SparkListenerTaskEnd`?Iu(o.data,t,i):ld(o.data,t)}catch(e){console.error(`processEvent threw for an already-validated event:`,e),t.skippedLines++;return}s&&n(s)}function Nd(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e.stages)r.executorMetrics instanceof Map&&r.executorMetrics.size>0&&t.set(n,r.executorMetrics);return t}function Pd(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e.stages)r.lateSpeculationWaste&&t.set(n,{speculationWasteMs:r.speculationWasteMs,speculationWastedAttempts:r.speculationWastedAttempts});return t}function Fd(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of e.stages)r.lateAttemptWork!=null&&t.set(n,r.lateAttemptWork);return t}function Id(e,t,n){for(let n of[...e.pendingAdaptiveUpdates.keys()])Dd(n,e,t);t({type:`progress`,pct:1,linesProcessed:n}),t({type:`stageLateAttemptWork`,data:Fd(e)}),t({type:`runAggregates`,data:{...gu(e.taskStore),executorPeakMetrics:Object.fromEntries(e.executorPeakMetrics)}}),t({type:`stageSpeculationWaste`,data:Pd(e)}),t({type:`stageExecutorMetrics`,data:Nd(e)}),t(Au(e)),t({type:`done`,skippedLines:e.skippedLines,...e.unreadableSqlStarts.size>0?{unreadableSqlExecutions:[...e.unreadableSqlStarts].sort((e,t)=>e-t)}:{}}),e.accumState.clear(),e.executorAccumState.clear()}const Ld=/* @__PURE__ */ new Set([`local-server-unavailable`,`upstream-unreachable`,`application-not-found`,`access-or-upstream-failure`,`invalid-event-log`]);function Rd({baseUrl:e,appId:t,attemptId:n}){let r=[[`baseUrl`,e],[`appId`,t]];return n!==null&&r.push([`attemptId`,n]),`/shs-proxy?${r.map(([e,t])=>`${e}=${encodeURIComponent(t)}`).join(`&`)}`}function zd(e){return typeof e==`string`&&Ld.has(e)}const Bd=X({code:q()}).passthrough();function Vd(e,t){let n=e=>e.match(/(\d+)|(\D+)/g)??[e],r=n(e),i=n(t),a=Math.max(r.length,i.length);for(let e=0;e<a;e++){let t=r[e]??``,n=i[e]??``;if(t===n)continue;let a=Number(t),o=Number(n);return!Number.isNaN(a)&&!Number.isNaN(o)?a-o:t<n?-1:1}return 0}function Hd(e){let t=e.filter(e=>!e.toLowerCase().startsWith(`appstatus`)).filter(e=>/^events_\d+_/.test(e)),n=e=>parseInt(e.match(/^events_(\d+)_/)[1],10),r=t.filter(e=>e.endsWith(`.compact`)).map(n),i=r.length>0?Math.max(...r):-1,a=t.filter(e=>{let t=n(e);return e.endsWith(`.compact`)?t===i:t>i}).sort(Vd),o=a.map(n);for(let e=1;e<o.length;e++)if(o[e]!==o[e-1]+1)throw Error(`Rolling event-log directory is missing file(s) between index ${o[e-1]} and ${o[e]}.`);return a}const Ud=67324752,Wd=101010256,Gd=(e,t)=>e[t]|e[t+1]<<8,Kd=(e,t)=>(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0,qd=(e,t)=>Kd(e,t)+Kd(e,t+4)*2**32;async function Jd(e,t,n){if(t<0||n>e.size||t>n)throw Error(`zip structure points outside the file`);return new Uint8Array(await e.slice(t,n).arrayBuffer())}function Yd(e){if(e.length<4)return!1;let t=Kd(e,0);return t===Ud||t===Wd}async function Xd(e){let t=Math.max(0,e.size-65557),n=await Jd(e,t,e.size),r=n.length-22;for(;r>=0&&Kd(n,r)!==Wd;)r--;if(r<0)throw Error(`no end-of-central-directory record`);let i={count:Gd(n,r+10),size:Kd(n,r+12),offset:Kd(n,r+16)},a=t+r-20;if(a>=0){let t=await Jd(e,a,a+20);if(Kd(t,0)===117853008){let n=qd(t,8),r=await Jd(e,n,n+56);if(Kd(r,0)!==101075792)throw Error(`bad zip64 end-of-central-directory record`);return{count:qd(r,32),size:qd(r,40),offset:qd(r,48)}}}return i}function Zd(e,t,n,r){for(let i=t;i+4<=n;){let t=Gd(e,i),n=Gd(e,i+2);if(t===1){let t=i+4;for(let a of[`uncompressed`,`compressed`,`offset`])r[a]===4294967295&&t+8<=i+4+n&&(r[a]=qd(e,t),t+=8);return}i+=4+n}}async function Qd(e){let{count:t,offset:n,size:r}=await Xd(e),i=await Jd(e,n,n+r),a=[],o=0;for(let e=0;e<t;e++){if(o+46>i.length||Kd(i,o)!==33639248)throw Error(`bad central-directory header`);let e=Gd(i,o+28),t=Gd(i,o+30),n=Gd(i,o+32),r=!!(Gd(i,o+8)&2048),s=o+46,c=s+e,l={uncompressed:Kd(i,o+24),compressed:Kd(i,o+20),offset:Kd(i,o+42)};Zd(i,c,c+t,l),a.push({name:M(i.subarray(s,c),!r),compression:Gd(i,o+10),compressedSize:l.compressed,localHeaderOffset:l.offset}),o=c+t+n}return a}async function $d(e,t,n,{chunkSize:r,onRead:i}){let a=await Jd(e,t.localHeaderOffset,t.localHeaderOffset+30);if(Kd(a,0)!==Ud)throw Error(`bad local header for "${t.name}"`);let o=t.localHeaderOffset+30+Gd(a,26)+Gd(a,28),s=o+t.compressedSize;if(s>e.size)throw Error(`"${t.name}" is truncated`);if(t.compression!==0&&t.compression!==8)throw Error(`"${t.name}" uses unsupported zip compression method ${t.compression}`);let c=[],l=null,u=t.compression===8?new ne:null;u&&(u.ondata=(e,t)=>{e?l=e:t.length&&c.push(t)});for(let t=o;t<s;){let a=Math.min(s,t+r),o=await Jd(e,t,a);if(t=a,u?u.push(o,t>=s):c.push(o),l)throw l;for(i?.(o.length);c.length;)await n(c.shift())}}function ef(e){return e.length>=2&&e[0]===31&&e[1]===139?`gz`:e.length>=4&&e[0]===40&&e[1]===181&&e[2]===47&&e[3]===253?`zstd`:e.length>=8&&[76,90,52,66,108,111,99,107].every((t,n)=>e[n]===t)?`lz4`:e.length>=8&&[130,83,78,65,80,80,89,0].every((t,n)=>e[n]===t)?`snappy`:null}function tf(e,t,n,r){if(e===`lz4`||t.endsWith(`.lz4`)){let e=oe(n);return{push(t,n){e.push(t),n&&e.end()}}}if(e===`gz`||t.endsWith(`.gz`)){let e=new A(n);return{push:(t,n)=>e.push(t,n)}}if(e===`zstd`||t.endsWith(`.zstd`)||t.endsWith(`.zst`)){let e=r?r(n):new Ae(n);return{push:(t,n)=>e.push(t,n),cancel:()=>e.cancel?.()}}if(e===`snappy`||t.endsWith(`.snappy`)){let e=Ie(n);return{push(t,n){e.push(t),n&&e.end()}}}return{push:e=>n(e)}}function nf(e,t,n){let r=/* @__PURE__ */ new Uint8Array,i=null,a=null,o=()=>{a=tf(ef(r),e,t,n),i=r};return{async push(e){if(!a){let t=new Uint8Array(r.length+e.length);t.set(r),t.set(e,r.length),r=t,r.length>=8&&o();return}await a.push(i,!1),i=e},async end(){if(!a){if(!r.length)return;o()}await a.push(i,!0)},cancel(){a?.cancel?.()}}}function rf(e,t,n){e({type:`error`,source:`shs`,code:t,...n?{message:n}:{}})}async function af(e,t,{fetchImpl:n=fetch,emit:r=e=>self.postMessage(e)}={}){let i=Rd(e),a;try{a=await n(i)}catch{rf(r,`local-server-unavailable`);return}if(a.status===404){rf(r,`local-server-unavailable`);return}if(!a.ok){let e=`access-or-upstream-failure`;try{let t=Bd.parse(await a.json());zd(t.code)&&(e=t.code)}catch{}rf(r,e);return}if(!a.body){rf(r,`invalid-event-log`);return}let o,s;try{s=Number(a.headers.get(`content-length`))||null;let e=a.body.getReader(),t=[],n=0;for(;;){let{done:i,value:a}=await e.read();if(i)break;t.push(a),n+=a.length,(!s||n<s)&&r({type:`progress`,pct:s?n/s*.5:null,linesProcessed:0})}o=new Uint8Array(n);let i=0;for(let e of t)o.set(e,i),i+=e.length}catch{rf(r,`local-server-unavailable`);return}if((a.headers.get(`content-type`)||``).startsWith(`text/html`)){rf(r,`local-server-unavailable`);return}s&&r({type:`progress`,pct:.5,linesProcessed:0}),await sf(o,t,r)}function of(e){return{size:e.length,slice:(t,n)=>({arrayBuffer:async()=>e.slice(t,n).buffer})}}function sf(e,t,n,{zstdDecoder:r}={}){return ff(of(e),t,n,{zstdDecoder:r,onInvalid:e=>rf(n,`invalid-event-log`,e??void 0)})}const cf=e=>e.name.slice(e.name.lastIndexOf(`/`)+1),lf=e=>/^events_\d+_/.test(cf(e));function uf(e){let t=/* @__PURE__ */ new Set;for(let n of e){if(n.name.endsWith(`/`)||cf(n).toLowerCase().startsWith(`appstatus`))continue;let e=n.name.slice(0,n.name.indexOf(`/`)+1);t.add(e||(lf(n)?``:n.name))}return t.size}function df(e){let t=e.filter(e=>!e.name.endsWith(`/`));if(t.some(lf)){let e=new Map(t.map(e=>[cf(e),e]));return Hd(t.map(cf)).map(t=>e.get(t))}return t.filter(e=>cf(e).toLowerCase()!==`appstatus`)}async function ff(e,t,n,{zstdDecoder:r,chunkSize:i=524288,onInvalid:a,progressEvery:o=2e3,reportPct:s=!1}){let c,l;try{let t=await Qd(e);l=uf(t),c=l>1?[]:df(t)}catch(e){a(`Could not read the zip archive: ${e instanceof Error?e.message:String(e)}`);return}if(l>1){a(`The zip archive holds ${l} application attempts. Download a single attempt, for example GET /api/v1/applications/<appId>/<attemptId>/logs.`);return}if(c.length===0){a(`The zip archive contains no event log.`);return}let u=c.reduce((e,t)=>e+t.compressedSize,0),d=0,f=wu(),p=[],m=0,h=e=>{p.length=0;let r=f.decode(e,p);for(let e=0,i=0;e<r.length;e++)Od(r[e],t,n,p[i]?.index===e?p[i++]:void 0),m++,m%o===0&&n({type:`progress`,pct:s&&u?d/u:null,linesProcessed:m})};for(let t of c){let n=nf(t.name,h,r);try{await $d(e,t,e=>n.push(e),{chunkSize:i,onRead:e=>{d+=e}}),await n.end()}catch(e){n.cancel(),a(`Could not decompress "${t.name}" in the zip archive: ${e instanceof Error?e.message:String(e)}`);return}}for(let e of f.flush())Od(e,t,n);if(!t.app){a(null);return}Id(t,n,m)}function pf(e,t,{maxInFlight:n=3,onFallback:r}={}){let i=null,a=null,o=null,s=0,c=e=>{i?.terminate?.(),i=null,a=Promise.resolve(!1),r?.(e)},l=()=>new Promise(t=>{let n;try{n=e()}catch(e){c(`could not start the decompress worker: ${e instanceof Error?e.message:String(e)}`),t(!1);return}let r=!1,a=(e,a=``)=>{r||(r=!0,e?i=n:(n.terminate?.(),c(a)),t(e))};n.onmessage=({data:e})=>{e.type===`ready`?a(!0):o&&`id`in e&&e.id===o.id&&o.onReply(e)},n.onerror=e=>{e.preventDefault();let t=e.message||`unknown error`;if(!r){a(!1,`the decompress worker failed to load: ${t}`);return}let n=o;c(`the decompress worker crashed: ${t}`),n?.fail(/* @__PURE__ */ Error(`Decompress worker crashed: ${t}`))}});return e=>{let r=s++,c=!1,u=null,d=0,f=0,p=null,m=null,h=e=>new Promise(t=>{let n=()=>{e()&&(m=null,t())};m=n,n()}),g={id:r,onReply(t){if(!p){if(t.type===`chunk`)try{e(new Uint8Array(t.bytes,0,t.length))}catch(e){i?.postMessage({type:`cancel`,id:r},[]),g.fail(e instanceof Error?e:Error(String(e)))}else t.type===`consumed`?(f--,m?.()):t.type===`error`&&g.fail(Error(t.message))}},fail(e){p||(p=e,o===g&&(o=null),m?.())}},_=async()=>{if(c=!0,a??=l(),!await a||!i){u=t(e);return}o=g,i.postMessage({type:`start`,id:r},[])};return{async push(e,t=!1){if(c||await _(),u)return u.push(e,t);if(p)throw p;let a=e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.slice().buffer;if(!i)throw Error(`Decompress worker is gone`);if(i.postMessage({type:`data`,id:r,seq:d++,bytes:a,final:t},[a]),f++,await h(()=>p!==null||f<(t?1:n)),p)throw p;t&&o===g&&(o=null)},cancel(){u||!c||p||(i?.postMessage({type:`cancel`,id:r},[]),g.fail(/* @__PURE__ */ Error(`Decompression cancelled`)))}}}}const mf=524288,hf=`Not a Spark event log: no application-start event found. Choose a Spark event log file, or check the docs for supported formats.`;async function gf(e,t,n,r){let i=ef(new Uint8Array(await e.slice(0,Math.min(8,e.size)).arrayBuffer())),a=0,o=i===`gz`?new A(e=>t(e,a)):null,s=i===`lz4`?oe(e=>t(e,a)):null,c=e=>t(e,a),l=i===`zstd`?r?r(c):new Ae(c):null,u=i===`snappy`?Ie(e=>t(e,a)):null,d=Math.max(1,Math.min(n,Math.ceil(e.size/100))),f=0;try{for(;f<e.size;){let n=f,r=new Uint8Array(await e.slice(n,n+d).arrayBuffer());f+=d;let i=f>=e.size;a=n/e.size,o?o.push(r,i):s?s.push(r):l?await l.push(r,i):u?u.push(r):t(r,a)}}catch(e){throw l?.cancel?.(),e}s&&s.end(),u&&u.end()}async function _f(e,t,{emit:n=e=>self.postMessage(e),chunkSize:r=mf,zstdDecoder:i}={}){if(e.size===0){n({type:`error`,message:`File is empty.`});return}if(Yd(new Uint8Array(await e.slice(0,Math.min(4,e.size)).arrayBuffer()))){await ff(e,t,n,{zstdDecoder:i,chunkSize:r,progressEvery:300,reportPct:!0,onInvalid:e=>n({type:`error`,message:e??hf})});return}let a=wu(),o=[],s=0,c=(e,r)=>{o.length=0;let i=a.decode(e,o);for(let e=0,a=0;e<i.length;e++)Od(i[e],t,n,o[a]?.index===e?o[a++]:void 0),s++,s%300==0&&n({type:`progress`,pct:r??null,linesProcessed:s})};try{await gf(e,c,r,i)}catch(t){let r=t instanceof Error?t.message:String(t);n({type:`error`,message:`Could not decompress "${e.name}": ${r}`});return}for(let e of a.flush())Od(e,t,n);if(!t.app){n({type:`error`,message:hf});return}Id(t,n,s)}async function vf(e,t,{emit:n=e=>self.postMessage(e),chunkSize:r=mf,zstdDecoder:i}={}){if(e.length===0){n({type:`error`,message:`Rolling event-log directory contained no event files.`});return}let a=wu(),o=[],s=0,c=e.reduce((e,t)=>e+t.size,0),l=0,u=0,d=(e,r)=>{o.length=0;let i=a.decode(e,o);for(let e=0,a=0;e<i.length;e++)Od(i[e],t,n,o[a]?.index===e?o[a++]:void 0),s++,s%300==0&&n({type:`progress`,pct:c>0?(l+(r??0)*u)/c:null,linesProcessed:s})};for(let t of e){u=t.size;try{await gf(t,d,r,i)}catch(e){let r=e instanceof Error?e.message:String(e);n({type:`error`,message:`Could not decompress "${t.name}": ${r}`});return}l+=t.size}for(let e of a.flush())Od(e,t,n);if(!t.app){n({type:`error`,message:hf});return}Id(t,n,s)}if(typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope){let e=null,t=pf(()=>new Worker(new URL(
|
|
121
121
|
/* @vite-ignore */
|
|
122
|
-
new URL(`zstd-worker-C1Jq9lfb.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),e=>new Ae(e),{onFallback:e=>console.warn(`zstd: decompressing on the parse worker: ${e}`)});self.onmessage=async({data:n})=>{if(n.type===`parse`)e=
|
|
122
|
+
new URL(`zstd-worker-C1Jq9lfb.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),e=>new Ae(e),{onFallback:e=>console.warn(`zstd: decompressing on the parse worker: ${e}`)});self.onmessage=async({data:n})=>{if(n.type===`parse`)e=Tu(),await _f(n.file,e,{zstdDecoder:t});else if(n.type===`parseFromUrl`)e=Tu(),await af(n.request,e);else if(n.type===`parseFiles`)e=Tu(),await vf(n.files,e,{zstdDecoder:t});else if(n.type===`getTaskData`){let{stageId:t,reqId:r}=n,i=e?.taskStore.get(t)??/* @__PURE__ */ new Float64Array;self.postMessage({type:`taskData`,stageId:t,reqId:r,metrics:i.slice(),fieldNames:Wl})}}}
|