gitnexus 1.6.10-rc.2 → 1.6.10-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/README.md +56 -12
  2. package/dist/cli/analyze.js +166 -5
  3. package/dist/cli/clean.js +17 -3
  4. package/dist/cli/cli-message.d.ts +1 -1
  5. package/dist/cli/doctor.d.ts +18 -0
  6. package/dist/cli/doctor.js +76 -3
  7. package/dist/cli/embeddings.d.ts +12 -0
  8. package/dist/cli/embeddings.js +49 -0
  9. package/dist/cli/help-i18n.js +4 -0
  10. package/dist/cli/i18n/en.d.ts +10 -5
  11. package/dist/cli/i18n/en.js +10 -5
  12. package/dist/cli/i18n/resources.d.ts +15 -5
  13. package/dist/cli/i18n/zh-CN.d.ts +5 -0
  14. package/dist/cli/i18n/zh-CN.js +10 -5
  15. package/dist/cli/index.js +12 -1
  16. package/dist/core/augmentation/engine.js +4 -3
  17. package/dist/core/embeddings/embedder.js +16 -2
  18. package/dist/core/embeddings/embedding-pipeline.d.ts +20 -0
  19. package/dist/core/embeddings/embedding-pipeline.js +10 -2
  20. package/dist/core/embeddings/http-client.d.ts +28 -1
  21. package/dist/core/embeddings/http-client.js +107 -15
  22. package/dist/core/embeddings/node-module-compat.d.ts +23 -0
  23. package/dist/core/embeddings/node-module-compat.js +23 -0
  24. package/dist/core/embeddings/onnxruntime-common-resolver.js +6 -3
  25. package/dist/core/embeddings/onnxruntime-node-resolver.js +31 -5
  26. package/dist/core/embeddings/runtime-install.d.ts +119 -0
  27. package/dist/core/embeddings/runtime-install.js +372 -0
  28. package/dist/core/embeddings/runtime-support.d.ts +48 -17
  29. package/dist/core/embeddings/runtime-support.js +96 -0
  30. package/dist/core/group/extractors/http-patterns/python.js +246 -108
  31. package/dist/core/group/extractors/manifest-extractor.js +4 -0
  32. package/dist/core/incremental/escalation-gate.d.ts +38 -0
  33. package/dist/core/incremental/escalation-gate.js +48 -0
  34. package/dist/core/incremental/shadow-candidates.d.ts +3 -3
  35. package/dist/core/incremental/shadow-candidates.js +3 -3
  36. package/dist/core/incremental/subgraph-extract.d.ts +2 -2
  37. package/dist/core/incremental/subgraph-extract.js +2 -2
  38. package/dist/core/ingestion/cobol/jcl-processor.js +9 -8
  39. package/dist/core/ingestion/cobol-processor.js +27 -26
  40. package/dist/core/ingestion/community-processor.d.ts +51 -1
  41. package/dist/core/ingestion/community-processor.js +316 -63
  42. package/dist/core/ingestion/emit-references.js +3 -2
  43. package/dist/core/ingestion/languages/cpp/captures.js +157 -74
  44. package/dist/core/ingestion/markdown-processor.js +3 -2
  45. package/dist/core/ingestion/parsing-processor.d.ts +3 -1
  46. package/dist/core/ingestion/parsing-processor.js +4 -0
  47. package/dist/core/ingestion/pipeline-phases/parse-impl.js +42 -0
  48. package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +83 -0
  49. package/dist/core/ingestion/route-extractors/constant-resolver.js +131 -0
  50. package/dist/core/ingestion/route-extractors/python-const-resolver.d.ts +75 -0
  51. package/dist/core/ingestion/route-extractors/python-const-resolver.js +299 -0
  52. package/dist/core/ingestion/tree-sitter-queries.d.ts +1 -1
  53. package/dist/core/ingestion/tree-sitter-queries.js +12 -1
  54. package/dist/core/ingestion/utils/line-base.d.ts +20 -0
  55. package/dist/core/ingestion/utils/line-base.js +20 -0
  56. package/dist/core/ingestion/utils/symbol-labels.d.ts +21 -0
  57. package/dist/core/ingestion/utils/symbol-labels.js +45 -0
  58. package/dist/core/ingestion/workers/parse-worker.d.ts +34 -0
  59. package/dist/core/ingestion/workers/parse-worker.js +40 -5
  60. package/dist/core/ingestion/workers/result-merge.js +4 -0
  61. package/dist/core/ingestion/workers/worker-pool.d.ts +14 -0
  62. package/dist/core/ingestion/workers/worker-pool.js +85 -5
  63. package/dist/core/lbug/csv-generator.js +8 -2
  64. package/dist/core/lbug/cypher-escape.d.ts +20 -0
  65. package/dist/core/lbug/cypher-escape.js +20 -0
  66. package/dist/core/lbug/extension-load-error.d.ts +67 -0
  67. package/dist/core/lbug/extension-load-error.js +320 -0
  68. package/dist/core/lbug/extension-loader.d.ts +17 -2
  69. package/dist/core/lbug/extension-loader.js +38 -13
  70. package/dist/core/lbug/lbug-adapter.d.ts +147 -1
  71. package/dist/core/lbug/lbug-adapter.js +390 -70
  72. package/dist/core/lbug/lbug-config.d.ts +28 -0
  73. package/dist/core/lbug/lbug-config.js +114 -4
  74. package/dist/core/lbug/native-check.d.ts +22 -0
  75. package/dist/core/lbug/native-check.js +66 -0
  76. package/dist/core/lbug/pool-adapter.js +10 -1
  77. package/dist/core/lbug/sidecar-recovery.d.ts +172 -0
  78. package/dist/core/lbug/sidecar-recovery.js +418 -16
  79. package/dist/core/platform/capabilities.js +27 -1
  80. package/dist/core/run-analyze.js +470 -108
  81. package/dist/core/search/fts-indexes.d.ts +7 -0
  82. package/dist/core/search/fts-indexes.js +37 -0
  83. package/dist/core/tree-sitter/safe-parse.d.ts +8 -3
  84. package/dist/core/tree-sitter/safe-parse.js +21 -7
  85. package/dist/core/wiki/graph-queries.js +6 -5
  86. package/dist/mcp/core/embedder.js +16 -2
  87. package/dist/mcp/local/line-display.d.ts +22 -0
  88. package/dist/mcp/local/line-display.js +3 -0
  89. package/dist/mcp/local/local-backend.d.ts +14 -0
  90. package/dist/mcp/local/local-backend.js +63 -19
  91. package/dist/mcp/local/pdg-impact.d.ts +5 -3
  92. package/dist/mcp/local/pdg-impact.js +5 -2
  93. package/dist/mcp/resources.js +1 -0
  94. package/dist/mcp/tools.js +1 -1
  95. package/dist/server/analyze-launch.d.ts +6 -0
  96. package/dist/server/analyze-launch.js +82 -6
  97. package/dist/server/api.d.ts +30 -0
  98. package/dist/server/api.js +63 -21
  99. package/dist/storage/parse-cache.js +1 -1
  100. package/dist/storage/repo-manager.d.ts +65 -1
  101. package/dist/storage/repo-manager.js +18 -1
  102. package/hooks/antigravity/gitnexus-antigravity-hook.cjs +50 -3
  103. package/hooks/claude/gitnexus-hook.cjs +59 -9
  104. package/package.json +5 -3
  105. package/scripts/cross-platform-tests.ts +43 -0
  106. package/scripts/ensure-fts.ts +32 -0
  107. package/scripts/install-duckdb-extension.mjs +85 -24
  108. package/scripts/run-cross-platform.ts +46 -6
  109. package/scripts/shard-arg.ts +30 -0
  110. package/web/assets/ProcessFlowModal-Dna7GkwO.js +22 -0
  111. package/web/assets/{agent-Dli_x7bU.js → agent-DNYDy-KA.js} +49 -49
  112. package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +1 -0
  113. package/web/assets/architectureDiagram-UL44E2DR-BU5ZRITg.js +36 -0
  114. package/web/assets/{blockDiagram-7IZFK4PR-BkWhpzWB.js → blockDiagram-7IZFK4PR-Dut1BpTV.js} +2 -2
  115. package/web/assets/{c4Diagram-Y2BXMSZH-DtBvpzWD.js → c4Diagram-Y2BXMSZH-DOXVs7-C.js} +2 -2
  116. package/web/assets/chunk-2T2R6R2M-pkw2oXHH.js +4 -0
  117. package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +1 -0
  118. package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +321 -0
  119. package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +159 -0
  120. package/web/assets/{chunk-6764PJDD-DpIS7hxD.js → chunk-6764PJDD-C7xxk063.js} +1 -1
  121. package/web/assets/{chunk-67TQ5CYL-4sNPJU1q.js → chunk-67TQ5CYL-zxhDWgyF.js} +3 -3
  122. package/web/assets/chunk-7FYTHRHK-CsmYIswB.js +32 -0
  123. package/web/assets/chunk-7J6CGLKN-AmkN8jJN.js +10 -0
  124. package/web/assets/chunk-7W6UQGC5-pyKGssV3.js +1 -0
  125. package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +1 -0
  126. package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +1 -0
  127. package/web/assets/{chunk-INKRHTLW-Nu4ri9P-.js → chunk-INKRHTLW-D9BM9HWZ.js} +1 -1
  128. package/web/assets/chunk-J5EP6P6S-L19oz55R.js +1 -0
  129. package/web/assets/{chunk-KGFNY3KK-JGMJvKCK.js → chunk-KGFNY3KK-tD2F6wxK.js} +1 -1
  130. package/web/assets/chunk-KGYTTC2M-zm6n242I.js +1 -0
  131. package/web/assets/{chunk-KRXBNO2N-BW5o0KUN.js → chunk-KRXBNO2N-C-UNuKKf.js} +1 -1
  132. package/web/assets/{chunk-LCXTWHL2-CfLLCywY.js → chunk-LCXTWHL2-Ba9JK-6F.js} +2 -2
  133. package/web/assets/{chunk-LII3EMHJ-D-jm-dLa.js → chunk-LII3EMHJ-EGx-eBIu.js} +1 -1
  134. package/web/assets/chunk-LRIF4GLE-C3_PqUBq.js +1 -0
  135. package/web/assets/{chunk-QA3QBVWF-BgRW3SXd.js → chunk-QA3QBVWF-D4cSJBf6.js} +1 -1
  136. package/web/assets/chunk-RERM46MO-B5dAdWpP.js +1 -0
  137. package/web/assets/{chunk-RG4AUYOV-CqWzWsV3.js → chunk-RG4AUYOV-OqBBMwuQ.js} +4 -4
  138. package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +1 -0
  139. package/web/assets/chunk-RLI5ZMPA-CkXZ0y0U.js +1 -0
  140. package/web/assets/{chunk-T2UQINTJ-DSBqkzH7.js → chunk-T2UQINTJ-BJusEiGe.js} +1 -1
  141. package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +1 -0
  142. package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +1 -0
  143. package/web/assets/{chunk-UY5QBCOK-DyF0vyGd.js → chunk-UY5QBCOK-BCpUlARQ.js} +1 -1
  144. package/web/assets/chunk-VU6ZFW4Y-BeXVk45_.js +2 -0
  145. package/web/assets/{chunk-W44A43WB-JqMLIpR0.js → chunk-W44A43WB-BN8EQc_u.js} +1 -1
  146. package/web/assets/{chunk-ZXARS5L4-CxN8oiwI.js → chunk-ZXARS5L4-BI_qR2Nm.js} +1 -1
  147. package/web/assets/classDiagram-KGZ6W3CR-D9zSIg0x.js +1 -0
  148. package/web/assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js +1 -0
  149. package/web/assets/cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js +1 -0
  150. package/web/assets/dagre-ND4H6XIP-CpcV5kbl.js +4 -0
  151. package/web/assets/diagram-3NCE3AQN-6SMxBRpj.js +43 -0
  152. package/web/assets/diagram-GF46GFSD-BZEdNcRZ.js +24 -0
  153. package/web/assets/{diagram-HNR7UZ2L-DFCfd5LI.js → diagram-HNR7UZ2L-DxKW2a2Y.js} +2 -2
  154. package/web/assets/diagram-QXG6HAR7-HfTHcXX_.js +24 -0
  155. package/web/assets/diagram-WEQXMOUZ-CyijUS8r.js +10 -0
  156. package/web/assets/{erDiagram-L5TCEMPS-8X1y6R4Y.js → erDiagram-L5TCEMPS-D0fvpWEX.js} +3 -3
  157. package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +1 -0
  158. package/web/assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js +162 -0
  159. package/web/assets/{ganttDiagram-JCBTUEKG-D3iL2Aet.js → ganttDiagram-JCBTUEKG-TzODrLzv.js} +2 -2
  160. package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +1 -0
  161. package/web/assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.js +106 -0
  162. package/web/assets/index-B4eB4dNZ.js +575 -0
  163. package/web/assets/index-CX_fADmQ.css +2 -0
  164. package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +1 -0
  165. package/web/assets/infoDiagram-3YFTVSEB-DIPVUIQ6.js +2 -0
  166. package/web/assets/{ishikawaDiagram-BNXS4ZKH-DfYpxnE5.js → ishikawaDiagram-BNXS4ZKH-BLjivjXL.js} +3 -3
  167. package/web/assets/{journeyDiagram-M6C3CM3L-CvArszLo.js → journeyDiagram-M6C3CM3L-Cetgs3NH.js} +3 -3
  168. package/web/assets/{kanban-definition-75IXJCU3-CpfVLLf9.js → kanban-definition-75IXJCU3-DMlCaIpf.js} +5 -5
  169. package/web/assets/{katex-K3KEBU37-CTc5BslQ.js → katex-K3KEBU37-qRQBy-EZ.js} +2 -2
  170. package/web/assets/{mindmap-definition-2TDM6QVE-DypvbOMQ.js → mindmap-definition-2TDM6QVE-B4GbXQBc.js} +3 -3
  171. package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +1 -0
  172. package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +1 -0
  173. package/web/assets/{pieDiagram-CU6KROY3-s27EFWgP.js → pieDiagram-CU6KROY3-D3YC_xyg.js} +2 -2
  174. package/web/assets/{quadrantDiagram-VICAPDV7-yXSZ2lLz.js → quadrantDiagram-VICAPDV7-B1TQnlm0.js} +2 -2
  175. package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +1 -0
  176. package/web/assets/{requirementDiagram-JXO7QTGE-CWhqInuf.js → requirementDiagram-JXO7QTGE-f8wczLQf.js} +3 -3
  177. package/web/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  178. package/web/assets/{sankeyDiagram-URQDO5SZ-1qEjlFIB.js → sankeyDiagram-URQDO5SZ-BTxzG5j0.js} +2 -2
  179. package/web/assets/{sequenceDiagram-VS2MUI6T-RyTlZ5cR.js → sequenceDiagram-VS2MUI6T-DuamM-IR.js} +5 -5
  180. package/web/assets/src-BNCXICdA.js +1 -0
  181. package/web/assets/stateDiagram-7D4R322I-Ch2pEUcw.js +1 -0
  182. package/web/assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js +1 -0
  183. package/web/assets/{timeline-definition-O6YCAMPW-DrrqLYAf.js → timeline-definition-O6YCAMPW-07BR8R8G.js} +3 -3
  184. package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +1 -0
  185. package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +1 -0
  186. package/web/assets/{vennDiagram-MWXL3ELB-B0RkWAim.js → vennDiagram-MWXL3ELB-BQX2ossk.js} +4 -4
  187. package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +1 -0
  188. package/web/assets/{wardleyDiagram-CUQ6CDDI-boUxiQ5F.js → wardleyDiagram-CUQ6CDDI-CGIJBBiK.js} +3 -3
  189. package/web/assets/{xychartDiagram-N2JHSOCM-BOLm0eNm.js → xychartDiagram-N2JHSOCM-B3HNMuWp.js} +4 -4
  190. package/web/index.html +17 -10
  191. package/web/assets/architecture-7EHR7CIX-6QZW5X65-DxJw65fT.js +0 -1
  192. package/web/assets/architectureDiagram-UL44E2DR-dEkqUZN9.js +0 -36
  193. package/web/assets/chunk-3SSMPTDK-B4_etUhr.js +0 -321
  194. package/web/assets/chunk-7W6UQGC5-KyEG0HQg.js +0 -1
  195. package/web/assets/chunk-KGYTTC2M-CWC_c3H9.js +0 -161
  196. package/web/assets/classDiagram-KGZ6W3CR-CMne4tG9.js +0 -1
  197. package/web/assets/classDiagram-v2-72OJOZXJ-CMne4tG9.js +0 -1
  198. package/web/assets/cose-bilkent-UX7MHV2Q-D71wNYRJ.js +0 -1
  199. package/web/assets/dagre-ND4H6XIP-Co5rRx9X.js +0 -4
  200. package/web/assets/diagram-3NCE3AQN-DBp4O00j.js +0 -43
  201. package/web/assets/diagram-GF46GFSD-6N_8yS0i.js +0 -24
  202. package/web/assets/diagram-QXG6HAR7-Di093rFg.js +0 -24
  203. package/web/assets/diagram-WEQXMOUZ-DZWi4SUN.js +0 -10
  204. package/web/assets/eventmodeling-FCH6USID-MREXMVOE-BQm9QzEa.js +0 -1
  205. package/web/assets/flowDiagram-H6V6AXG4-CMpY8Ufn.js +0 -162
  206. package/web/assets/gitGraph-WXDBUCRP-R675I2BI-Cr_Bm2Nb.js +0 -1
  207. package/web/assets/gitGraphDiagram-S2ZK5IYY-CPIDgxGm.js +0 -106
  208. package/web/assets/index-KctnI3Vq.js +0 -635
  209. package/web/assets/index-_lgn7hs5.css +0 -2
  210. package/web/assets/info-J43DQDTF-KCYPFFUO-Cs4p2oyk.js +0 -1
  211. package/web/assets/infoDiagram-3YFTVSEB-BaLMZkUg.js +0 -2
  212. package/web/assets/packet-YPE3B663-LP52Z2RK-CKCrztD2.js +0 -1
  213. package/web/assets/pie-LRSECV5Y-TCRJHUBD-BB7pHqoD.js +0 -1
  214. package/web/assets/radar-GUYGQ44K-RDLRG3WG-DhoTOcuK.js +0 -1
  215. package/web/assets/stateDiagram-7D4R322I-DTjVfX4A.js +0 -1
  216. package/web/assets/stateDiagram-v2-36443NZ5-xY9_k9_Q.js +0 -1
  217. package/web/assets/treeView-BLDUP644-QA4HXRO3-ODehyGKL.js +0 -1
  218. package/web/assets/treemap-LRROVOQU-LLAWBHMP-BfpgC-7o.js +0 -1
  219. package/web/assets/wardley-L42UT6IY-5TKZOOLJ-CNeL6VHE.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitnexus",
3
- "version": "1.6.10-rc.2",
3
+ "version": "1.6.10-rc.21",
4
4
  "description": "Graph-powered code intelligence for AI agents. Index any codebase, query via MCP or CLI.",
5
5
  "author": "Abhigyan Patwari",
6
6
  "license": "PolyForm-Noncommercial-1.0.0",
@@ -55,7 +55,6 @@
55
55
  "prepack": "node scripts/assert-publish-grammar-coverage.cjs && node scripts/build.js"
56
56
  },
57
57
  "dependencies": {
58
- "@huggingface/transformers": "^4.1.0",
59
58
  "@ladybugdb/core": "^0.18.0",
60
59
  "@modelcontextprotocol/sdk": "^1.0.0",
61
60
  "@scarf/scarf": "^1.4.0",
@@ -76,7 +75,6 @@
76
75
  "node-addon-api": "^8.0.0",
77
76
  "node-gyp-build": "^4.8.0",
78
77
  "onnxruntime-common": "^1.26.0",
79
- "onnxruntime-node": "^1.24.0",
80
78
  "pandemonium": "^2.4.0",
81
79
  "pino": "^10.3.1",
82
80
  "pino-pretty": "^13.1.3",
@@ -93,6 +91,10 @@
93
91
  "tree-sitter-typescript": "^0.23.2",
94
92
  "uuid": "^14.0.0"
95
93
  },
94
+ "optionalDependencies": {
95
+ "@huggingface/transformers": "^4.1.0",
96
+ "onnxruntime-node": "^1.24.0"
97
+ },
96
98
  "devDependencies": {
97
99
  "@babel/generator": "^7.29.7",
98
100
  "@babel/parser": "^7.29.7",
@@ -32,7 +32,14 @@ const PLATFORM_LOGIC = [
32
32
  'test/unit/setup-antigravity.test.ts',
33
33
  'test/integration/setup-uninstall-roundtrip.test.ts',
34
34
  'test/unit/resolve-invocation.test.ts',
35
+ // CLI-spawn entry-point resolution; its path-separator assertion (cli[/\\]index)
36
+ // must exercise the Windows backslash branch, so run it on the OS matrix (#2394).
37
+ 'test/unit/cli-entry.test.ts',
35
38
  'test/unit/platform-capabilities.test.ts',
39
+ // getconf page-size probe: explicit process.platform gate (win32 short-circuit)
40
+ // plus a live-probe test whose only real non-4K coverage is macos-arm64's
41
+ // 16 KiB pages — the exact hardware class #1231 targets (#2424 review).
42
+ 'test/unit/lbug-config-pagesize.test.ts',
36
43
  'test/unit/worker-pool-windows-quarantine.test.ts',
37
44
  'test/unit/lbug-pool-fts-load.test.ts',
38
45
  'test/unit/repo-manager.test.ts',
@@ -43,12 +50,35 @@ const PLATFORM_LOGIC = [
43
50
  'test/unit/cursor-hook.test.ts',
44
51
  'test/unit/sidecar-recovery.test.ts',
45
52
  'test/unit/pool-wal-recovery.test.ts',
53
+ 'test/unit/lbug-adapter-wal-schema.test.ts',
46
54
  'test/unit/detect-changes-worktree.test.ts',
47
55
  'test/unit/eval-server-bind-restriction.test.ts',
48
56
  'test/unit/ignore-service.test.ts',
49
57
  'test/unit/group/bridge-db.test.ts',
50
58
  'test/unit/group/bridge-db-edge.test.ts',
51
59
  'test/unit/onnxruntime-node-resolver.test.ts',
60
+ // Windows cmd.exe arg-quoting + compose-and-spawn for the npm install (#2372):
61
+ // the quoting rules and win32 single-string spawn shape are OS-sensitive, so
62
+ // exercise them on real windows-latest. The spawn-shape/path tests force their
63
+ // platform branch and derive expected paths via the real fns, so they pass on
64
+ // any host (see the platform stubs + resolve() in the test file).
65
+ 'test/unit/embedding-runtime-install.test.ts',
66
+ // Real-spawn arg-delivery round-trip: proves the install spawn delivers args
67
+ // to the child intact on each platform — win32 via the cmd.exe -> .cmd %* ->
68
+ // node chain (real cmd.exe, not just our model), macos/linux via the no-shell
69
+ // array form. Runs on every platform (the ubuntu suite covers Linux; this
70
+ // registration adds windows + macos).
71
+ 'test/unit/embedding-install-arg-delivery.test.ts',
72
+ // Structural FTS-extension classifier against REAL binaries (#2374): on this
73
+ // matrix `process.execPath` / `lbugjs.node` are a real PE (windows) and Mach-O
74
+ // (macos), so the header parsing is proven on genuine binaries, not synthetic
75
+ // buffers (the ubuntu suite covers the ELF path).
76
+ 'test/integration/extension-binary-real.test.ts',
77
+ // Server repo resolver branches on path shape (path.isAbsolute, backslash
78
+ // detection) and canonicalizePath/realpathSync, all of which differ between
79
+ // POSIX and Windows — the fail-closed path-claim semantics must hold on the
80
+ // real windows-latest path implementation (#2419/#2420).
81
+ 'test/unit/server-api-repo-resolution.test.ts',
52
82
  ];
53
83
 
54
84
  // Native LadybugDB integration tests — exercise the @ladybugdb/core
@@ -78,6 +108,15 @@ const LBUG_NATIVE = [
78
108
  'test/integration/analyze-wal-checkpoint-failure.test.ts',
79
109
  'test/integration/fts-stemmer-sweep.test.ts',
80
110
  'test/integration/lbug-multiwriter-deadlock.test.ts',
111
+ // #2409 batched incremental writeback: chunked IN-list DETACH DELETEs +
112
+ // backslash quote escaping against the REAL native engine — the failing
113
+ // environment for #2409 was Windows, so the write pattern must be proven
114
+ // on the windows-latest native addon, not just Ubuntu.
115
+ 'test/integration/lbug-delete-nodes-for-files.test.ts',
116
+ // #2409 defect 2: dirty-flag recovery parks lbug.wal/.shadow (rename next
117
+ // to a live native DB, rm-then-rename over an existing parked copy) before
118
+ // any open — rename semantics are exactly what differs on Windows.
119
+ 'test/unit/incremental-dirty-recovery.test.ts',
81
120
  ];
82
121
 
83
122
  // Process spawning and CLI tests — exercise child_process with real
@@ -88,6 +127,10 @@ const SPAWN_CLI = [
88
127
  'test/integration/cli-limit-e2e.test.ts',
89
128
  'test/integration/hooks-e2e.test.ts',
90
129
  'test/integration/skills-e2e.test.ts',
130
+ // Spawns the real CLI across hermetic HOME/USERPROFILE homes to exercise the
131
+ // FTS extension lifecycle — the #2374 bug was Windows-reported, so this must
132
+ // run on the Windows/macOS matrix, not just the Ubuntu full suite.
133
+ 'test/integration/fts-extension-e2e.test.ts',
91
134
  'test/integration/server-http-startup.test.ts',
92
135
  'test/integration/mcp/server-startup.test.ts',
93
136
  'test/integration/analyze-heap-oom-e2e.test.ts',
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Install the LadybugDB FTS extension into the shared home (~/.lbdb) up front, so
3
+ * every test in a sharded CI run finds it regardless of which shard it lands in.
4
+ *
5
+ * FTS-dependent tests split two ways: the LOAD-path gate (skipUnlessFtsAvailable)
6
+ * self-installs on miss, but the FILE-path gate (requireFtsResourceOrSkip, e.g.
7
+ * extension-binary-real.test.ts) resolves the extension path at module load and
8
+ * cannot self-install. Sharding (and the balancing sequencer) can drop such a
9
+ * test into a shard with no installer sibling — this step removes that ordering
10
+ * dependency by installing FTS once before vitest starts. `auto` is LOAD-first,
11
+ * so a cache-warmed extension costs no network.
12
+ *
13
+ * Best-effort: exits 0 on failure (offline etc.) — the per-test gates still
14
+ * hard-fail under GITNEXUS_REQUIRE_FTS=1 if FTS is genuinely unavailable, which
15
+ * is where the loud signal belongs.
16
+ */
17
+ import { mkdtempSync, rmSync } from 'node:fs';
18
+ import { tmpdir } from 'node:os';
19
+ import { join } from 'node:path';
20
+ import { initLbug, loadFTSExtension, closeLbug } from '../src/core/lbug/lbug-adapter.js';
21
+
22
+ const dir = mkdtempSync(join(tmpdir(), 'gn-ensure-fts-'));
23
+ try {
24
+ await initLbug(join(dir, 'ensure-fts.lbug'));
25
+ const ok = await loadFTSExtension(undefined, { policy: 'auto' });
26
+ console.log(ok ? 'FTS extension ready.' : 'FTS extension unavailable (continuing).');
27
+ } catch (err) {
28
+ console.warn(`ensure-fts: skipped (${err instanceof Error ? err.message : String(err)})`);
29
+ } finally {
30
+ await closeLbug();
31
+ rmSync(dir, { recursive: true, force: true });
32
+ }
@@ -3,9 +3,41 @@ import fs from 'node:fs/promises';
3
3
  import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { createRequire } from 'node:module';
6
+ import { pathToFileURL } from 'node:url';
6
7
 
7
8
  const EXTENSION_NAME_PATTERN = /^[A-Za-z][A-Za-z0-9_]*$/;
8
9
 
10
+ // Positive on-disk-corruption signatures. `FORCE INSTALL` re-downloads even when
11
+ // a file is already present; we only want that when the LOAD error proves the
12
+ // existing file is bad (truncated/wrong-platform, #2374). For everything else —
13
+ // a missing file (plain INSTALL downloads it), or a permanent non-file failure a
14
+ // re-download can never fix (missing runtime dep: "cannot open shared object") —
15
+ // plain INSTALL avoids re-downloading ~2 MB on every analyze run forever.
16
+ // Exported so a parity test keeps this byte-identical to the copy in
17
+ // src/core/lbug/extension-load-error.ts (this `.mjs` cannot import that `.ts`), #2383 F5b.
18
+ export const FILE_CORRUPTION_SIGNATURES = [
19
+ /invalid elf/i,
20
+ /file too short/i,
21
+ /not a valid/i,
22
+ /bad magic/i,
23
+ /wrong architecture/i,
24
+ /mach-o/i,
25
+ /truncat/i,
26
+ ];
27
+
28
+ /**
29
+ * Decide the install verb from the LOAD error that triggered this install.
30
+ * `FORCE INSTALL` only when the error positively indicates file-level breakage;
31
+ * otherwise plain `INSTALL` (missing file, missing-dependency dlopen failure,
32
+ * or unknown/absent error).
33
+ */
34
+ export function chooseInstallVerb(loadError) {
35
+ if (loadError && FILE_CORRUPTION_SIGNATURES.some((re) => re.test(loadError))) {
36
+ return 'FORCE INSTALL';
37
+ }
38
+ return 'INSTALL';
39
+ }
40
+
9
41
  function parseLbugMaxDbSize(raw) {
10
42
  const parsed = raw ? Number(raw) : NaN;
11
43
  if (!Number.isFinite(parsed) || parsed <= 0) {
@@ -14,28 +46,54 @@ function parseLbugMaxDbSize(raw) {
14
46
  return Math.floor(parsed);
15
47
  }
16
48
 
17
- async function installDuckDbExtension(extensionName, verifyOnly = false) {
18
- if (!extensionName || !EXTENSION_NAME_PATTERN.test(extensionName)) {
19
- throw new Error(`Invalid DuckDB extension name: ${extensionName ?? '<missing>'}`);
20
- }
21
-
22
- const require = createRequire(import.meta.url);
23
- const lbugModule = require('@ladybugdb/core');
24
- const lbug = lbugModule.default ?? lbugModule;
49
+ function resolveMaxDbSize() {
25
50
  // argv[3] is the optional positional size; ignore it when it is actually a
26
51
  // flag token (e.g. `--verify-only`) and fall back to the env default.
27
52
  const sizeArg =
28
53
  process.argv[3] && !process.argv[3].startsWith('--') ? process.argv[3] : undefined;
29
- const lbugMaxDbSize = parseLbugMaxDbSize(sizeArg ?? process.env.GITNEXUS_LBUG_MAX_DB_SIZE);
54
+ return parseLbugMaxDbSize(sizeArg ?? process.env.GITNEXUS_LBUG_MAX_DB_SIZE);
55
+ }
56
+
57
+ /** Open a scratch LadybugDB and return its connection plus a disposer. */
58
+ async function defaultConnect(lbugMaxDbSize) {
59
+ const require = createRequire(import.meta.url);
60
+ const lbugModule = require('@ladybugdb/core');
61
+ const lbug = lbugModule.default ?? lbugModule;
30
62
 
31
63
  const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'gitnexus-ext-install-'));
32
64
  const dbPath = path.join(tmpDir, 'install.lbug');
33
- let db;
34
- let conn;
65
+ const db = new lbug.Database(dbPath, 0, false, false, lbugMaxDbSize);
66
+ const conn = new lbug.Connection(db);
67
+ return {
68
+ conn,
69
+ dispose: async () => {
70
+ await conn.close().catch(() => {});
71
+ await db.close().catch(() => {});
72
+ await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => {});
73
+ },
74
+ };
75
+ }
76
+
77
+ /**
78
+ * Install (or verify) an optional LadybugDB extension in this short-lived process.
79
+ *
80
+ * @param {string} extensionName
81
+ * @param {object} [options]
82
+ * @param {boolean} [options.verifyOnly] LOAD-only Docker build gate — no install.
83
+ * @param {string} [options.loadError] The parent's LOAD failure; selects the verb.
84
+ * @param {(size: number) => Promise<{conn: {query: (sql: string) => Promise<unknown>}, dispose: () => Promise<void>}>} [options.connect]
85
+ * Connection factory; injectable for offline unit tests.
86
+ */
87
+ export async function installDuckDbExtension(extensionName, options = {}) {
88
+ const { verifyOnly = false, loadError, connect } = options;
89
+ if (!extensionName || !EXTENSION_NAME_PATTERN.test(extensionName)) {
90
+ throw new Error(`Invalid DuckDB extension name: ${extensionName ?? '<missing>'}`);
91
+ }
92
+
93
+ const makeConnection = connect ?? (() => defaultConnect(resolveMaxDbSize()));
94
+ const { conn, dispose } = await makeConnection();
35
95
 
36
96
  try {
37
- db = new lbug.Database(dbPath, 0, false, false, lbugMaxDbSize);
38
- conn = new lbug.Connection(db);
39
97
  if (verifyOnly) {
40
98
  // Prove a previously-baked extension is resolvable by a FRESH process
41
99
  // under the current HOME (the runtime `LOAD EXTENSION` path) — no INSTALL,
@@ -46,19 +104,22 @@ async function installDuckDbExtension(extensionName, verifyOnly = false) {
46
104
  `[install-ext] LOAD-only verify OK for '${extensionName}' (HOME=${process.env.HOME})`,
47
105
  );
48
106
  } else {
49
- await conn.query(`INSTALL ${extensionName}`);
107
+ // Plain INSTALL is a no-op when the file already exists; escalate to FORCE
108
+ // only when the LOAD error proves the on-disk file is broken (#2374).
109
+ await conn.query(`${chooseInstallVerb(loadError)} ${extensionName}`);
50
110
  }
51
111
  } finally {
52
- if (conn) await conn.close().catch(() => {});
53
- if (db) await db.close().catch(() => {});
54
- await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => {});
112
+ await dispose();
55
113
  }
56
114
  }
57
115
 
58
- installDuckDbExtension(
59
- process.argv[2] ?? process.env.GITNEXUS_LBUG_EXTENSION_NAME,
60
- process.argv.includes('--verify-only'),
61
- ).catch((err) => {
62
- console.error(err instanceof Error ? (err.stack ?? err.message) : String(err));
63
- process.exitCode = 1;
64
- });
116
+ // Only run when executed directly — imported (e.g. by unit tests) it stays inert.
117
+ if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) {
118
+ installDuckDbExtension(process.argv[2] ?? process.env.GITNEXUS_LBUG_EXTENSION_NAME, {
119
+ verifyOnly: process.argv.includes('--verify-only'),
120
+ loadError: process.env.GITNEXUS_LBUG_EXTENSION_LOAD_ERROR,
121
+ }).catch((err) => {
122
+ console.error(err instanceof Error ? (err.stack ?? err.message) : String(err));
123
+ process.exitCode = 1;
124
+ });
125
+ }
@@ -14,6 +14,7 @@ import fs from 'fs';
14
14
  import path from 'path';
15
15
  import { fileURLToPath } from 'url';
16
16
  import { ALL_CROSS_PLATFORM } from './cross-platform-tests.js';
17
+ import { parseShardArg } from './shard-arg.js';
17
18
 
18
19
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
19
20
  const ROOT = path.resolve(__dirname, '..');
@@ -27,18 +28,57 @@ if (missing.length > 0) {
27
28
  process.exit(1);
28
29
  }
29
30
 
30
- console.log(`Running ${ALL_CROSS_PLATFORM.length} platform-sensitive tests...\n`);
31
+ // Optional sharding (CI): `--shard=<i>/<n>` splits the fixed file list across
32
+ // parallel matrix shards so each runner processes ~1/n of it. Passed straight
33
+ // through to vitest, which partitions the *given* files deterministically. The
34
+ // Windows runner is ~5x slower than macOS/Linux on this spawn-heavy suite (~50
35
+ // CLI/worker process spawns), so a single shard was creeping past the watchdog
36
+ // below; sharding keeps each runner well under it (see ci-tests.yml matrix).
37
+ // Fail loud on a malformed --shard arg (mirrors the missing-files check above):
38
+ // a silently-dropped shard flag would run the full unsharded suite and re-trip
39
+ // the watchdog. Kept outside the execFileSync try/catch below so the message
40
+ // isn't swallowed by that catch's watchdog-only branch.
41
+ let shardArg: string | undefined;
42
+ try {
43
+ shardArg = parseShardArg(process.argv.slice(2));
44
+ } catch (err) {
45
+ console.error(err instanceof Error ? err.message : String(err));
46
+ process.exit(1);
47
+ }
48
+
49
+ // Per-shard watchdog, default 15 min. Sharding splits the file list by COUNT, not
50
+ // runtime, so the heaviest spawn suites can cluster on one shard — what this
51
+ // bounds is the *busiest* shard, not an even 1/n of wall-clock. With 3 shards
52
+ // even that shard clears the watchdog, where the whole unsharded Windows run
53
+ // used to trip it. Allow CI/manual runs to add headroom without editing the
54
+ // script again.
55
+ const DEFAULT_TIMEOUT_MIN = 15;
56
+ const timeoutMinutes = Number.parseInt(
57
+ process.env.GITNEXUS_CROSS_PLATFORM_TIMEOUT_MINUTES ?? String(DEFAULT_TIMEOUT_MIN),
58
+ 10,
59
+ );
60
+ const timeoutMs =
61
+ Number.isFinite(timeoutMinutes) && timeoutMinutes > 0
62
+ ? timeoutMinutes * 60 * 1000
63
+ : DEFAULT_TIMEOUT_MIN * 60 * 1000;
64
+
65
+ console.log(
66
+ `Running ${ALL_CROSS_PLATFORM.length} platform-sensitive tests` +
67
+ `${shardArg ? ` (${shardArg.replace('--shard=', 'shard ')})` : ''}...\n`,
68
+ );
31
69
 
32
70
  try {
33
- execFileSync('npx', ['vitest', 'run', ...ALL_CROSS_PLATFORM], {
71
+ execFileSync('npx', ['vitest', 'run', ...ALL_CROSS_PLATFORM, ...(shardArg ? [shardArg] : [])], {
34
72
  cwd: ROOT,
35
73
  stdio: 'inherit',
36
- timeout: 15 * 60 * 1000,
74
+ timeout: timeoutMs,
37
75
  shell: true,
38
76
  });
39
- } catch (err: any) {
40
- if (err.killed || err.signal) {
41
- console.error('vitest timed out after 15 minutes');
77
+ } catch (err) {
78
+ // execFileSync sets `killed`/`signal` when the watchdog above kills vitest.
79
+ const e = err as { killed?: boolean; signal?: NodeJS.Signals | null };
80
+ if (e.killed || e.signal) {
81
+ console.error(`vitest timed out after ${Math.round(timeoutMs / 60_000)} minutes`);
42
82
  }
43
83
  process.exit(1);
44
84
  }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Resolves the optional `--shard=<index>/<total>` argument for
3
+ * `run-cross-platform.ts`.
4
+ *
5
+ * Extracted as a pure, side-effect-free function so the branch logic is
6
+ * unit-testable without the script's top-level `execFileSync` (see
7
+ * `test/unit/shard-arg.test.ts`). Mirrors the `computeSpawnPrefix` extraction
8
+ * pattern in `test/helpers/cli-entry.ts`.
9
+ */
10
+
11
+ const SHARD_RE = /^--shard=\d+\/\d+$/;
12
+
13
+ /**
14
+ * Returns the matched `--shard=<index>/<total>` token (e.g. `--shard=1/3`) to
15
+ * pass straight through to vitest, or `undefined` when no shard arg is present.
16
+ *
17
+ * Fails loud on a shard-shaped-but-malformed arg (e.g. `--shard=1`, `--shard`,
18
+ * `--shard=abc`): a silently-ignored malformed arg would drop the shard flag and
19
+ * run the full unsharded ~50-spawn suite, re-arming the Windows watchdog timeout
20
+ * with no signal. Only `--shard` / `--shard=…` args are inspected, so unrelated
21
+ * flags (including a hypothetical `--shardx=…`) pass through untouched.
22
+ */
23
+ export function parseShardArg(argv: string[]): string | undefined {
24
+ const shardArgs = argv.filter((a) => a === '--shard' || a.startsWith('--shard='));
25
+ const malformed = shardArgs.find((a) => !SHARD_RE.test(a));
26
+ if (malformed !== undefined) {
27
+ throw new Error(`Malformed --shard arg '${malformed}' — expected --shard=<index>/<total>`);
28
+ }
29
+ return shardArgs[0];
30
+ }
@@ -0,0 +1,22 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/c4Diagram-Y2BXMSZH-DOXVs7-C.js","assets/chunk-67TQ5CYL-zxhDWgyF.js","assets/chunk-AQ6EADP3-CZhslHi-.js","assets/chunk-7W6UQGC5-pyKGssV3.js","assets/chunk-KNLZD3CH-BGlP6X9R.js","assets/chunk-QA3QBVWF-D4cSJBf6.js","assets/chunk-LII3EMHJ-EGx-eBIu.js","assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js","assets/chunk-7FYTHRHK-CsmYIswB.js","assets/chunk-5IMINLNL-DOdTeQri.js","assets/chunk-T2UQINTJ-BJusEiGe.js","assets/chunk-UY5QBCOK-BCpUlARQ.js","assets/chunk-INKRHTLW-D9BM9HWZ.js","assets/chunk-KGFNY3KK-tD2F6wxK.js","assets/chunk-5VCL7Z4A-CQ-2dYWj.js","assets/chunk-7J6CGLKN-AmkN8jJN.js","assets/chunk-VU6ZFW4Y-BeXVk45_.js","assets/chunk-AZZRMDJM-y-xJBuMz.js","assets/chunk-6764PJDD-C7xxk063.js","assets/chunk-ZXARS5L4-BI_qR2Nm.js","assets/erDiagram-L5TCEMPS-D0fvpWEX.js","assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.js","assets/chunk-4R4BOZG6-Be_F0JoX.js","assets/chunk-RERM46MO-B5dAdWpP.js","assets/chunk-JQRUD6KW-Dbva2Z17.js","assets/chunk-2T2R6R2M-pkw2oXHH.js","assets/chunk-UP6H54XL-BG-n7qDp.js","assets/chunk-UXSXWOXI-CW1_r5cS.js","assets/chunk-C62D2QBJ-3gdL8EKc.js","assets/chunk-CEXFNPSA-CjwtMDkc.js","assets/chunk-J5EP6P6S-L19oz55R.js","assets/chunk-RLI5ZMPA-CkXZ0y0U.js","assets/chunk-2UTLFMKG-CXlhF3Pt.js","assets/chunk-RKZBBQEN-MyIQbGgD.js","assets/chunk-KGYTTC2M-zm6n242I.js","assets/chunk-T5OCTHI4-DdZvN-9i.js","assets/ganttDiagram-JCBTUEKG-TzODrLzv.js","assets/infoDiagram-3YFTVSEB-DIPVUIQ6.js","assets/chunk-LRIF4GLE-C3_PqUBq.js","assets/pieDiagram-CU6KROY3-D3YC_xyg.js","assets/quadrantDiagram-VICAPDV7-B1TQnlm0.js","assets/xychartDiagram-N2JHSOCM-B3HNMuWp.js","assets/requirementDiagram-JXO7QTGE-f8wczLQf.js","assets/sequenceDiagram-VS2MUI6T-DuamM-IR.js","assets/classDiagram-KGZ6W3CR-D9zSIg0x.js","assets/chunk-RG4AUYOV-OqBBMwuQ.js","assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js","assets/stateDiagram-7D4R322I-Ch2pEUcw.js","assets/chunk-W44A43WB-BN8EQc_u.js","assets/chunk-KRXBNO2N-C-UNuKKf.js","assets/chunk-LCXTWHL2-Ba9JK-6F.js","assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js","assets/journeyDiagram-M6C3CM3L-Cetgs3NH.js","assets/timeline-definition-O6YCAMPW-07BR8R8G.js","assets/mindmap-definition-2TDM6QVE-B4GbXQBc.js","assets/kanban-definition-75IXJCU3-DMlCaIpf.js","assets/sankeyDiagram-URQDO5SZ-BTxzG5j0.js","assets/diagram-QXG6HAR7-HfTHcXX_.js","assets/diagram-3NCE3AQN-6SMxBRpj.js","assets/blockDiagram-7IZFK4PR-Dut1BpTV.js","assets/diagram-WEQXMOUZ-CyijUS8r.js","assets/architectureDiagram-UL44E2DR-BU5ZRITg.js","assets/chunk-3SSMPTDK-rPsRM1x0.js","assets/diagram-HNR7UZ2L-DxKW2a2Y.js","assets/ishikawaDiagram-BNXS4ZKH-BLjivjXL.js","assets/vennDiagram-MWXL3ELB-BQX2ossk.js","assets/diagram-GF46GFSD-BZEdNcRZ.js","assets/wardleyDiagram-CUQ6CDDI-CGIJBBiK.js"])))=>i.map(i=>d[i]);
2
+ import{n as e,r as t,t as n}from"./rolldown-runtime-QTnfLwEv.js";import{$ as r,B as i,D as a,I as o,P as s,U as c,V as l,W as u,_ as d,a as f,b as p,c as m,d as h,h as g,it as _,l as v,m as y,n as b,nt as x,o as S,ot as C,p as w,rt as T,v as ee,w as te,x as ne,z as re}from"./chunk-67TQ5CYL-zxhDWgyF.js";import{t as E}from"./chunk-AQ6EADP3-CZhslHi-.js";import{M as D,V as O,q as k}from"./chunk-7W6UQGC5-pyKGssV3.js";import{t as ie}from"./chunk-LRIF4GLE-C3_PqUBq.js";import{n as ae,t as A}from"./chunk-7FYTHRHK-CsmYIswB.js";import"./chunk-5IMINLNL-DOdTeQri.js";import"./chunk-T2UQINTJ-BJusEiGe.js";import"./chunk-KNLZD3CH-BGlP6X9R.js";import{a as oe,c as se,h as ce,o as le,r as ue,t as de,u as fe}from"./chunk-QA3QBVWF-D4cSJBf6.js";import"./chunk-UY5QBCOK-BCpUlARQ.js";import{i as pe,t as me}from"./chunk-INKRHTLW-D9BM9HWZ.js";import"./chunk-KGFNY3KK-tD2F6wxK.js";import"./chunk-5VCL7Z4A-CQ-2dYWj.js";import"./chunk-7J6CGLKN-AmkN8jJN.js";import{t as j}from"./chunk-VU6ZFW4Y-BeXVk45_.js";var he=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function ee(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function te(e,t){return ee(e.type,t,e.props)}function ne(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function re(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var E=/\/+/g;function D(e,t){return typeof e==`object`&&e&&e.key!=null?re(``+e.key):t.toString(36)}function O(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function k(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,k(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+D(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(E,`$&/`)+`/`),k(o,r,i,``,function(e){return e})):o!=null&&(ne(o)&&(o=te(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(E,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+D(a,u),c+=k(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+D(a,u++),c+=k(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return k(O(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function ie(e,t,n){if(e==null)return e;var r=[],i=0;return k(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ae(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var A=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},oe={map:ie,forEach:function(e,t,n){ie(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ie(e,function(){t++}),t},toArray:function(e){return ie(e,function(e){return e})||[]},only:function(e){if(!ne(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=oe,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return ee(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return ee(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=ne,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ae}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,A)}catch(e){A(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),M=n(((e,t)=>{t.exports=he()})),N=t(M()),P=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);xe(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},ge={},_e=(e,t,n,r)=>{xe(n)&&ge[n]||(xe(n)&&(ge[n]=new Date),P(e,t,n,r))},F=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},ve=(e,t,n)=>{e.loadNamespaces(t,F(e,n))},ye=(e,t,n,r)=>{if(xe(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return ve(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,F(e,r))},be=(e,t,n={})=>!t.languages||!t.languages.length?(_e(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),xe=e=>typeof e==`string`,Se=e=>typeof e==`object`&&!!e,Ce=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,we={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},Te=e=>we[e],Ee={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:e=>e.replace(Ce,Te),transDefaultProps:void 0},De=(e={})=>{Ee={...Ee,...e}},Oe=()=>Ee,ke,Ae=e=>{ke=e},je=()=>ke,Me=(0,N.createContext)(),Ne=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},Pe=n((e=>{var t=M();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),Fe=n(((e,t)=>{t.exports=Pe()}))(),Ie={t:(e,t)=>{if(xe(t))return t;if(Se(t)&&xe(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},Le=()=>()=>{},I=(e,t={})=>{let{i18n:n}=t,{i18n:r,defaultNS:i}=(0,N.useContext)(Me)||{},a=n||r||je();a&&!a.reportNamespaces&&(a.reportNamespaces=new Ne),a||_e(a,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next`);let o=(0,N.useMemo)(()=>({...Oe(),...a?.options?.react,...t}),[a,t]),{useSuspense:s,keyPrefix:c}=o,l=e||i||a?.options?.defaultNS,u=xe(l)?[l]:l||[`translation`],d=(0,N.useMemo)(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(d);let f=(0,N.useRef)(0),p=(0,N.useCallback)(e=>{if(!a)return Le;let{bindI18n:t,bindI18nStore:n}=o,r=()=>{f.current+=1,e()};return t&&a.on(t,r),n&&a.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>a.off(e,r)),n&&n.split(` `).forEach(e=>a.store.off(e,r))}},[a,o]),m=(0,N.useRef)(),h=(0,N.useCallback)(()=>{if(!a)return Ie;let e=!!(a.isInitialized||a.initializedStoreOnce)&&d.every(e=>be(e,a,o)),n=t.lng||a.language,r=f.current,i=m.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===c&&i.revision===r)return i;let s={t:a.getFixedT(n,o.nsMode===`fallback`?d:d[0],c,{scopeNs:d}),ready:e,lng:n,keyPrefix:c,revision:r};return m.current=s,s},[a,d,c,o,t.lng]),[g,_]=(0,N.useState)(0),{t:v,ready:y}=(0,Fe.useSyncExternalStore)(p,h,h);(0,N.useEffect)(()=>{if(a&&!y&&!s){let e=()=>_(e=>e+1);t.lng?ye(a,t.lng,d,e):ve(a,d,e)}},[a,t.lng,d,y,s,g]);let b=a||{},x=(0,N.useRef)(null),S=(0,N.useRef)(),C=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},w=(0,N.useMemo)(()=>{let e=b,t=e?.language,n=e;e&&(x.current&&x.current.__original===e&&S.current===t?n=x.current:(n=C(e),x.current=n,S.current=t));let r=!y&&!s?(...e)=>(_e(a,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),v(...e)):v,i=[r,n,y];return i.t=r,i.i18n=n,i.ready=y,i},[v,b,y,b.resolvedLanguage,b.language,b.languages]);if(a&&s&&!y)throw new Promise(e=>{let n=()=>e();t.lng?ye(a,t.lng,d,n):ve(a,d,n)});return w},Re=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),ze=n(((e,t)=>{t.exports=Re()})),Be=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Ve=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),He=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Ue=e=>{let t=He(e);return t.charAt(0).toUpperCase()+t.slice(1)},We={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},L=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Ge=(0,N.createContext)({}),Ke=()=>(0,N.useContext)(Ge),qe=(0,N.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=Ke()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,N.createElement)(`svg`,{ref:c,...We,width:t??l??We.width,height:t??l??We.height,stroke:e??f,strokeWidth:m,className:Be(`lucide`,p,i),...!a&&!L(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,N.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),Je=(e,t)=>{let n=(0,N.forwardRef)(({className:n,...r},i)=>(0,N.createElement)(qe,{ref:i,iconNode:t,className:Be(`lucide-${Ve(Ue(e))}`,`lucide-${e}`,n),...r}));return n.displayName=Ue(e),n},Ye=Je(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),Xe=Je(`focus`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}]]),Ze=Je(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),Qe=Je(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),R=ze(),$e=(0,N.forwardRef)(function({size:e=24,color:t=`currentColor`,className:n,strokeWidth:r,absoluteStrokeWidth:i,...a},o){let s=typeof e==`string`?Number.parseFloat(e):e;return Number.isFinite(s)&&s<=16?(0,R.jsxs)(`svg`,{ref:o,xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 16 16`,fill:t,className:n,...a,children:[(0,R.jsx)(`path`,{d:`M8 15.282l1.855-5.717H6.145L8 15.282z`}),(0,R.jsx)(`path`,{d:`M8 15.282L6.145 9.565H2.333L8 15.282z`}),(0,R.jsx)(`path`,{d:`M2.333 9.565l-.944-2.942c-.09-.267.067-.553.333-.553h3.153L2.333 9.565z`}),(0,R.jsx)(`path`,{d:`M4.875 6.07L6.145 9.565H2.333l2.542-3.495z`}),(0,R.jsx)(`path`,{d:`M13.667 9.565l.944-2.942c.09-.267-.067-.553-.333-.553h-3.153l2.542 3.495z`}),(0,R.jsx)(`path`,{d:`M11.125 6.07L9.855 9.565h3.812l-2.542-3.495z`}),(0,R.jsx)(`path`,{d:`M8 15.282l1.855-5.717H6.145L8 15.282z`})]}):(0,R.jsx)(`svg`,{ref:o,xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 24 24`,fill:t,className:n,...a,children:(0,R.jsx)(`path`,{d:`m23.6004 9.5927-.0337-.0862L20.3.9814a.851.851 0 0 0-.3362-.405.8748.8748 0 0 0-.9997.0539.8748.8748 0 0 0-.29.4399l-2.2055 6.748H7.5375l-2.2057-6.748a.8573.8573 0 0 0-.29-.4412.8748.8748 0 0 0-.9997-.0537.8585.8585 0 0 0-.3362.4049L.4332 9.5015l-.0325.0862a6.0657 6.0657 0 0 0 2.0119 7.0105l.0113.0087.03.0213 4.976 3.7264 2.462 1.8633 1.4995 1.1321a1.0085 1.0085 0 0 0 1.2197 0l1.4995-1.1321 2.4619-1.8633 5.006-3.7489.0125-.01a6.0682 6.0682 0 0 0 2.0094-7.003z`})})}),et=(0,N.forwardRef)(function({size:e=24,color:t=`currentColor`,className:n,strokeWidth:r,absoluteStrokeWidth:i,...a},o){return(0,R.jsx)(`svg`,{ref:o,xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 24 24`,fill:t,className:n,...a,children:(0,R.jsx)(`path`,{d:`M0 8.877L2.247 5.91l8.405-3.416V.022l7.37 5.393L2.966 8.338v8.225L0 15.707zm24-4.45v14.651l-5.753 4.9-9.303-3.057v3.056l-5.978-7.416 15.057 1.798V5.415z`})})}),z=(0,N.forwardRef)(function({size:e=24,color:t=`currentColor`,className:n,strokeWidth:r,absoluteStrokeWidth:i,...a},o){let s=typeof e==`string`?Number.parseFloat(e):e;return Number.isFinite(s)&&s<=16?(0,R.jsx)(`svg`,{ref:o,xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 16 16`,fill:t,className:n,...a,children:(0,R.jsx)(`path`,{d:`M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656`})}):(0,R.jsx)(`svg`,{ref:o,xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 24 24`,fill:t,className:n,...a,children:(0,R.jsx)(`path`,{d:`M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943`})})}),tt={id:`c4`,detector:E(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./c4Diagram-Y2BXMSZH-DOXVs7-C.js`);return{diagram:e}},__vite__mapDeps([0,1,2,3,4,5,6]));return{id:`c4`,diagram:e}},`loader`)},nt=`flowchart`,rt={id:nt,detector:E((e,t)=>t?.flowchart?.defaultRenderer===`dagre-wrapper`||t?.flowchart?.defaultRenderer===`elk`?!1:/^\s*graph/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./flowDiagram-H6V6AXG4-Bvr9bbhk.js`);return{diagram:e}},__vite__mapDeps([7,1,2,3,8,9,10,4,5,11,12,13,14,15,16,17,6,18,19]));return{id:nt,diagram:e}},`loader`)},it=`flowchart-v2`,at={id:it,detector:E((e,t)=>t?.flowchart?.defaultRenderer===`dagre-d3`?!1:(t?.flowchart?.defaultRenderer===`elk`&&(t.layout=`elk`),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer===`dagre-wrapper`?!0:/^\s*flowchart/.test(e)),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./flowDiagram-H6V6AXG4-Bvr9bbhk.js`);return{diagram:e}},__vite__mapDeps([7,1,2,3,8,9,10,4,5,11,12,13,14,15,16,17,6,18,19]));return{id:it,diagram:e}},`loader`)},ot={id:`er`,detector:E(e=>/^\s*erDiagram/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./erDiagram-L5TCEMPS-D0fvpWEX.js`);return{diagram:e}},__vite__mapDeps([20,1,2,3,9,10,4,5,11,12,13,14,15,16,18,19]));return{id:`er`,diagram:e}},`loader`)},st=`gitGraph`,ct={id:st,detector:E(e=>/^\s*gitGraph/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./gitGraphDiagram-S2ZK5IYY-ONQSwJIY.js`);return{diagram:e}},__vite__mapDeps([21,1,2,3,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));return{id:st,diagram:e}},`loader`)},lt=`gantt`,ut={id:lt,detector:E(e=>/^\s*gantt/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./ganttDiagram-JCBTUEKG-TzODrLzv.js`);return{diagram:e}},__vite__mapDeps([36,1,2,3,4,5]));return{id:lt,diagram:e}},`loader`)},dt=`info`,ft={id:dt,detector:E(e=>/^\s*info/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./infoDiagram-3YFTVSEB-DIPVUIQ6.js`);return{diagram:e}},__vite__mapDeps([37,1,2,3,38,22,23,25,26,27,28,29,30,31,32,33,34]));return{id:dt,diagram:e}},`loader`)},pt={id:`pie`,detector:E(e=>/^\s*pie/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./pieDiagram-CU6KROY3-D3YC_xyg.js`);return{diagram:e}},__vite__mapDeps([39,1,2,3,38,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34]));return{id:`pie`,diagram:e}},`loader`)},mt=`quadrantChart`,ht={id:mt,detector:E(e=>/^\s*quadrantChart/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./quadrantDiagram-VICAPDV7-B1TQnlm0.js`);return{diagram:e}},__vite__mapDeps([40,1,2,3]));return{id:mt,diagram:e}},`loader`)},gt=`xychart`,_t={id:gt,detector:E(e=>/^\s*xychart(-beta)?/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./xychartDiagram-N2JHSOCM-B3HNMuWp.js`);return{diagram:e}},__vite__mapDeps([41,1,2,3,38,4,5,12]));return{id:gt,diagram:e}},`loader`)},vt=`requirement`,yt={id:vt,detector:E(e=>/^\s*requirement(Diagram)?/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./requirementDiagram-JXO7QTGE-f8wczLQf.js`);return{diagram:e}},__vite__mapDeps([42,1,2,3,9,10,4,5,11,12,13,14,15,16,18,19]));return{id:vt,diagram:e}},`loader`)},bt=`sequence`,xt={id:bt,detector:E(e=>/^\s*sequenceDiagram/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./sequenceDiagram-VS2MUI6T-DuamM-IR.js`);return{diagram:e}},__vite__mapDeps([43,1,2,3,8,4,5,6,35]));return{id:bt,diagram:e}},`loader`)},St=`class`,B={id:St,detector:E((e,t)=>t?.class?.defaultRenderer!==`dagre-wrapper`&&/^\s*classDiagram/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./classDiagram-KGZ6W3CR-D9zSIg0x.js`);return{diagram:e}},__vite__mapDeps([44,1,2,3,9,10,4,5,11,12,13,14,15,16,17,6,18,19,45]));return{id:St,diagram:e}},`loader`)},Ct=`classDiagram`,wt={id:Ct,detector:E((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer===`dagre-wrapper`?!0:/^\s*classDiagram-v2/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./classDiagram-v2-72OJOZXJ-D9zSIg0x.js`);return{diagram:e}},__vite__mapDeps([46,1,2,3,9,10,4,5,11,12,13,14,15,16,17,6,18,19,45]));return{id:Ct,diagram:e}},`loader`)},Tt=`state`,Et={id:Tt,detector:E((e,t)=>t?.state?.defaultRenderer!==`dagre-wrapper`&&/^\s*stateDiagram/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./stateDiagram-7D4R322I-Ch2pEUcw.js`);return{diagram:e}},__vite__mapDeps([47,1,2,3,9,10,4,5,11,12,13,14,15,16,48,18,19,49,50]));return{id:Tt,diagram:e}},`loader`)},Dt=`stateDiagram`,Ot={id:Dt,detector:E((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer===`dagre-wrapper`),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./stateDiagram-v2-36443NZ5-7ANuoZLL.js`);return{diagram:e}},__vite__mapDeps([51,1,2,3,9,10,4,5,11,12,13,14,15,16,18,19,50]));return{id:Dt,diagram:e}},`loader`)},kt=`journey`,At={id:kt,detector:E(e=>/^\s*journey/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./journeyDiagram-M6C3CM3L-Cetgs3NH.js`);return{diagram:e}},__vite__mapDeps([52,1,2,3,4,17,6]));return{id:kt,diagram:e}},`loader`)},jt={draw:E((e,t,n)=>{k.debug(`rendering svg for syntax error
3
+ `);let r=ie(t),i=r.append(`g`);r.attr(`viewBox`,`0 0 2412 512`),o(r,100,512,!0),i.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z`),i.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z`),i.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z`),i.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z`),i.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z`),i.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z`),i.append(`text`).attr(`class`,`error-text`).attr(`x`,1440).attr(`y`,250).attr(`font-size`,`150px`).style(`text-anchor`,`middle`).text(`Syntax error in text`),i.append(`text`).attr(`class`,`error-text`).attr(`x`,1250).attr(`y`,400).attr(`font-size`,`100px`).style(`text-anchor`,`middle`).text(`mermaid version ${n}`)},`draw`)},Mt=jt,Nt={db:{},renderer:jt,parser:{parse:E(()=>{},`parse`)}},Pt=`flowchart-elk`,Ft={id:Pt,detector:E((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer===`elk`?(t.layout=`elk`,!0):!1,`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./flowDiagram-H6V6AXG4-Bvr9bbhk.js`);return{diagram:e}},__vite__mapDeps([7,1,2,3,8,9,10,4,5,11,12,13,14,15,16,17,6,18,19]));return{id:Pt,diagram:e}},`loader`)},It=`timeline`,Lt={id:It,detector:E(e=>/^\s*timeline/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./timeline-definition-O6YCAMPW-07BR8R8G.js`);return{diagram:e}},__vite__mapDeps([53,1,2,3,38,4,5]));return{id:It,diagram:e}},`loader`)},Rt=`mindmap`,zt={id:Rt,detector:E(e=>/^\s*mindmap/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./mindmap-definition-2TDM6QVE-B4GbXQBc.js`);return{diagram:e}},__vite__mapDeps([54,1,2,3,9,10,4,5,11,12,13,14,15,16,18,19]));return{id:Rt,diagram:e}},`loader`)},Bt=`kanban`,Vt={id:Bt,detector:E(e=>/^\s*kanban/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./kanban-definition-75IXJCU3-DMlCaIpf.js`);return{diagram:e}},__vite__mapDeps([55,1,2,3,38,8,9,10,4,5,11,12,13,17]));return{id:Bt,diagram:e}},`loader`)},Ht=`sankey`,Ut={id:Ht,detector:E(e=>/^\s*sankey(-beta)?/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./sankeyDiagram-URQDO5SZ-BTxzG5j0.js`);return{diagram:e}},__vite__mapDeps([56,1,2,3]));return{id:Ht,diagram:e}},`loader`)},Wt=`packet`,Gt={id:Wt,detector:E(e=>/^\s*packet(-beta)?/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./diagram-QXG6HAR7-HfTHcXX_.js`);return{diagram:e}},__vite__mapDeps([57,1,2,3,38,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34]));return{id:Wt,diagram:e}},`loader`)},Kt=`radar`,qt={id:Kt,detector:E(e=>/^\s*radar-beta/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./diagram-3NCE3AQN-6SMxBRpj.js`);return{diagram:e}},__vite__mapDeps([58,1,2,3,38,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34]));return{id:Kt,diagram:e}},`loader`)},Jt=`block`,Yt={id:Jt,detector:E(e=>/^\s*block(-beta)?/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./blockDiagram-7IZFK4PR-Dut1BpTV.js`);return{diagram:e}},__vite__mapDeps([59,1,2,3,4,5,11,12,14,48,17]));return{id:Jt,diagram:e}},`loader`)},Xt=`treeView`,Zt={id:Xt,detector:E(e=>/^\s*treeView-beta/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./diagram-WEQXMOUZ-CyijUS8r.js`);return{diagram:e}},__vite__mapDeps([60,1,2,3,38,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34,35]));return{id:Xt,diagram:e}},`loader`)},Qt=`architecture`,$t={id:Qt,detector:E(e=>/^\s*architecture/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./architectureDiagram-UL44E2DR-BU5ZRITg.js`);return{diagram:e}},__vite__mapDeps([61,1,2,3,38,4,5,12,22,23,24,25,26,27,28,29,30,31,32,33,62,34]));return{id:Qt,diagram:e}},`loader`)},en=`eventmodeling`,tn={id:en,detector:E(e=>/^\s*eventmodeling/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./diagram-HNR7UZ2L-DxKW2a2Y.js`);return{diagram:e}},__vite__mapDeps([63,1,2,3,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34]));return{id:en,diagram:e}},`loader`)},nn=`ishikawa`,rn={id:nn,detector:E(e=>/^\s*ishikawa(-beta)?\b/i.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./ishikawaDiagram-BNXS4ZKH-BLjivjXL.js`);return{diagram:e}},__vite__mapDeps([64,1,2,3,38,9,4,5]));return{id:nn,diagram:e}},`loader`)},an=`venn`,on={id:an,detector:E(e=>/^\s*venn-beta/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./vennDiagram-MWXL3ELB-BQX2ossk.js`);return{diagram:e}},__vite__mapDeps([65,1,2,3,38,9,4,5]));return{id:an,diagram:e}},`loader`)},sn=`treemap`,cn={id:sn,detector:E(e=>/^\s*treemap/.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./diagram-GF46GFSD-BZEdNcRZ.js`);return{diagram:e}},__vite__mapDeps([66,1,2,3,38,10,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34,19]));return{id:sn,diagram:e}},`loader`)},ln=`wardley-beta`,un={id:ln,detector:E(e=>/^\s*wardley-beta/i.test(e),`detector`),loader:E(async()=>{let{diagram:e}=await C(async()=>{let{diagram:e}=await import(`./wardleyDiagram-CUQ6CDDI-CGIJBBiK.js`);return{diagram:e}},__vite__mapDeps([67,1,2,3,38,4,5,22,23,24,25,26,27,28,29,30,31,32,33,34]));return{id:ln,diagram:e}},`loader`)},dn=!1,fn=E(()=>{dn||(dn=!0,y(`error`,Nt,e=>e.toLowerCase().trim()===`error`),y(`---`,{db:{clear:E(()=>{},`clear`)},styles:{},renderer:{draw:E(()=>{},`draw`)},parser:{parse:E(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},`parse`)},init:E(()=>null,`init`)},e=>e.toLowerCase().trimStart().startsWith(`---`)),p(Ft,zt,$t),p(tt,Vt,wt,B,ot,ut,ft,pt,yt,xt,at,rt,Lt,ct,Ot,Et,At,ht,Ut,Gt,_t,Yt,tn,Zt,qt,rn,cn,on,un))},`addDiagrams`),pn=E(async()=>{k.debug(`Loading registered diagrams`);let e=(await Promise.allSettled(Object.entries(x).map(async([e,{detector:t,loader:n}])=>{if(n)try{m(e)}catch{try{let{diagram:e,id:r}=await n();y(r,e,t)}catch(t){throw k.error(`Failed to load external diagram with key ${e}. Removing from detectors.`),delete x[e],t}}}))).filter(e=>e.status===`rejected`);if(e.length>0){k.error(`Failed to load ${e.length} external diagrams`);for(let t of e)k.error(t);throw Error(`Failed to load ${e.length} external diagrams`)}},`loadRegisteredDiagrams`),mn=`comm`,hn=`rule`,gn=`decl`,_n=`@media`,vn=`@import`,yn=`@supports`,bn=`@namespace`,xn=`@keyframes`,Sn=`@layer`,Cn=`@scope`,wn=Math.abs,Tn=String.fromCharCode;function En(e){return e.trim()}E(En,`trim`);function Dn(e,t,n){return e.replace(t,n)}E(Dn,`replace`);function On(e,t,n){return e.indexOf(t,n)}E(On,`indexof`);function kn(e,t){return e.charCodeAt(t)|0}E(kn,`charat`);function An(e,t,n){return e.slice(t,n)}E(An,`substr`);function V(e){return e.length}E(V,`strlen`);function jn(e){return e.length}E(jn,`sizeof`);function Mn(e,t){return t.push(e),e}E(Mn,`append`);var Nn=1,Pn=1,Fn=0,H=0,U=0,In=``;function Ln(e,t,n,r,i,a,o,s){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:Nn,column:Pn,length:o,return:``,siblings:s}}E(Ln,`node`);function Rn(){return U}E(Rn,`char`);function zn(){return U=H>0?kn(In,--H):0,Pn--,U===10&&(Pn=1,Nn--),U}E(zn,`prev`);function W(){return U=H<Fn?kn(In,H++):0,Pn++,U===10&&(Pn=1,Nn++),U}E(W,`next`);function Bn(){return kn(In,H)}E(Bn,`peek`);function Vn(){return H}E(Vn,`caret`);function Hn(e,t){return An(In,e,t)}E(Hn,`slice`);function Un(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}E(Un,`token`);function Wn(e){return Nn=Pn=1,Fn=V(In=e),H=0,[]}E(Wn,`alloc`);function Gn(e){return In=``,e}E(Gn,`dealloc`);function Kn(e){return En(Hn(H-1,Yn(e===91?e+2:e===40?e+1:e)))}E(Kn,`delimit`);function qn(e){for(;(U=Bn())&&U<33;)W();return Un(e)>2||Un(U)>3?``:` `}E(qn,`whitespace`);function Jn(e,t){for(;--t&&W()&&!(U<48||U>102||U>57&&U<65||U>70&&U<97););return Hn(e,Vn()+(t<6&&Bn()==32&&W()==32))}E(Jn,`escaping`);function Yn(e){for(;W();)switch(U){case e:return H;case 34:case 39:e!==34&&e!==39&&Yn(U);break;case 40:e===41&&Yn(e);break;case 92:W();break}return H}E(Yn,`delimiter`);function Xn(e,t){for(;W()&&e+U!==57&&!(e+U===84&&Bn()===47););return`/*`+Hn(t,H-1)+`*`+Tn(e===47?e:W())}E(Xn,`commenter`);function Zn(e){for(;!Un(Bn());)W();return Hn(e,H)}E(Zn,`identifier`);function Qn(e){return Gn($n(``,null,null,null,[``],e=Wn(e),0,[0],e))}E(Qn,`compile`);function $n(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=``,b=i,x=a,S=r,C=y;g;)switch(m=v,v=W()){case 40:if(m!=108&&kn(C,d-1)==58){On(C+=Dn(Kn(v),`&`,`&\f`),`&\f`,wn(l?s[l-1]:0))!=-1&&(_=-1);break}case 34:case 39:case 91:C+=Kn(v);break;case 9:case 10:case 13:case 32:C+=qn(m);break;case 92:C+=Jn(Vn()-1,7);continue;case 47:switch(Bn()){case 42:case 47:Mn(tr(Xn(W(),Vn()),t,n,c),c),(Un(m||1)==5||Un(Bn()||1)==5)&&V(C)&&An(C,-1,void 0)!==` `&&(C+=` `);break;default:C+=`/`}break;case 123*h:s[l++]=V(C)*_;case 125*h:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:_==-1&&(C=Dn(C,/\f/g,``)),p>0&&(V(C)-d||h===0&&m===47)&&Mn(p>32?nr(C+`;`,r,n,d-1,c):nr(Dn(C,` `,``)+`;`,r,n,d-2,c),c);break;case 59:C+=`;`;default:if(Mn(S=er(C,t,n,l,u,i,s,y,b=[],x=[],d,a),a),v===123)if(u===0)$n(C,t,S,S,b,a,d,s,x);else{switch(f){case 99:if(kn(C,3)===110)break;case 108:if(kn(C,2)===97)break;default:u=0;case 100:case 109:case 115:}u?$n(e,S,S,r&&Mn(er(e,S,S,0,0,i,s,y,i,b=[],d,x),x),i,x,d,s,r?b:x):$n(C,S,S,S,[``],x,0,s,x)}}l=u=p=0,h=_=1,y=C=``,d=o;break;case 58:d=1+V(C),p=m;default:if(h<1){if(v==123)--h;else if(v==125&&h++==0&&zn()==125)continue}switch(C+=Tn(v),v*h){case 38:_=u>0?1:(C+=`\f`,-1);break;case 44:s[l++]=(V(C)-1)*_,_=1;break;case 64:Bn()===45&&(C+=Kn(W())),f=Bn(),u=d=V(y=C+=Zn(Vn())),v++;break;case 45:m===45&&V(C)==2&&(h=0)}}return a}E($n,`parse`);function er(e,t,n,r,i,a,o,s,c,l,u,d){for(var f=i-1,p=i===0?a:[``],m=jn(p),h=0,g=0,_=0;h<r;++h)for(var v=0,y=An(e,f+1,f=wn(g=o[h])),b=e;v<m;++v)(b=En(g>0?p[v]+` `+y:Dn(y,/&\f/g,p[v])))&&(c[_++]=b);return Ln(e,t,n,i===0?hn:s,c,l,u,d)}E(er,`ruleset`);function tr(e,t,n,r){return Ln(e,t,n,mn,Tn(Rn()),An(e,2,-2),0,r)}E(tr,`comment`);function nr(e,t,n,r,i){return Ln(e,t,n,gn,An(e,0,r),An(e,r+1,-1),r,i)}E(nr,`declaration`);function rr(e,t){for(var n=``,r=0;r<e.length;r++)n+=t(e[r],r,e,t)||``;return n}E(rr,`serialize`);function ir(e,t,n,r){switch(e.type){case Sn:if(e.children.length)break;case vn:case bn:case gn:return e.return=e.return||e.value;case mn:return``;case xn:return e.return=e.value+`{`+rr(e.children,r)+`}`;case hn:if(!V(e.value=e.props.join(`,`)))return``}return V(n=rr(e.children,r))?e.return=e.value+`{`+n+`}`:``}E(ir,`stringify`);function ar(e){var t=jn(e);return function(n,r,i,a){for(var o=``,s=0;s<t;s++)o+=e[s](n,r,i,a)||``;return o}}E(ar,`middleware`);var or=`graphics-document document`;function sr(e,t){e.attr(`role`,or),t!==``&&e.attr(`aria-roledescription`,t)}E(sr,`setA11yDiagramInfo`);function cr(e,t,n,r){if(e.insert!==void 0){if(n){let t=`chart-desc-${r}`;e.attr(`aria-describedby`,t),e.insert(`desc`,`:first-child`).attr(`id`,t).text(n)}if(t){let n=`chart-title-${r}`;e.attr(`aria-labelledby`,n),e.insert(`title`,`:first-child`).attr(`id`,n).text(t)}}}E(cr,`addSVGa11yTitleDescription`);var lr=class e{constructor(e,t,n,r,i){this.type=e,this.text=t,this.db=n,this.parser=r,this.renderer=i}static{E(this,`Diagram`)}static async fromText(t,n={}){let r=v(),a=i(t,r);t=fe(t)+`
4
+ `;try{m(a)}catch{let e=te(a);if(!e)throw new ee(`Diagram ${a} not found.`);let{id:t,diagram:n}=await e();y(t,n)}let{db:o,parser:s,renderer:c,init:l}=m(a);return s.parser&&(s.parser.yy=o),o.clear?.(),l?.(r),n.title&&o.setDiagramTitle?.(n.title),await s.parse(t),new e(a,t,o,s,c)}async render(e,t){await this.renderer.draw(this.text,e,t,this)}getParser(){return this.parser}getType(){return this.type}},ur=[],dr=E(()=>{ur.forEach(e=>{e()}),ur=[]},`attachFunctions`),fr=E(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,``).trimStart(),`cleanupComments`);function pr(e){let t=e.match(w);if(!t)return{text:e,metadata:{}};let n=A(t[1],{schema:ae})??{};n=typeof n==`object`&&!Array.isArray(n)?n:{};let r={};return n.displayMode&&(r.displayMode=n.displayMode.toString()),n.title&&(r.title=n.title.toString()),n.config&&(r.config=n.config),{text:e.slice(t[0].length),metadata:r}}E(pr,`extractFrontMatter`);var mr=E(e=>e.replace(/\r\n?/g,`
5
+ `).replace(/<(\w+)([^>]*)>/g,(e,t,n)=>`<`+t+n.replace(/="([^"]*)"/g,`='$1'`)+`>`),`cleanupText`),hr=E(e=>{let{text:t,metadata:n}=pr(e),{displayMode:r,title:i,config:a={}}=n;return r&&(a.gantt||={},a.gantt.displayMode=r),{title:i,config:a,text:t}},`processFrontmatter`),gr=E(e=>{let t=le.detectInit(e)??{},n=le.detectDirective(e,`wrap`);return Array.isArray(n)?t.wrap=n.some(({type:e})=>e===`wrap`):n?.type===`wrap`&&(t.wrap=!0),{text:de(e),directive:t}},`processDirectives`);function _r(e){let t=hr(mr(e)),n=gr(t.text),r=oe(t.config,n.directive);return e=fr(n.text),{code:e,title:t.title,config:r}}E(_r,`preprocessDiagram`);function vr(e){let t=new TextEncoder().encode(e),n=Array.from(t,e=>String.fromCodePoint(e)).join(``);return btoa(n)}E(vr,`toBase64`);var yr=5e4,br=`graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa`,xr=`sandbox`,Sr=`loose`,Cr=`http://www.w3.org/2000/svg`,wr=`http://www.w3.org/1999/xlink`,Tr=`http://www.w3.org/1999/xhtml`,Er=`100%`,Dr=`100%`,Or=`border:0;margin:0;`,kr=`margin:0`,Ar=`allow-top-navigation-by-user-activation allow-popups`,jr=`The "iframe" tag is not supported by your browser.`,Mr=[`foreignobject`],Nr=[`dominant-baseline`];function Pr(e){let t=_r(e);return r(),T(t.config??{}),t}E(Pr,`processAndSetConfigs`);async function Fr(e,t){fn();try{let{code:t,config:n}=Pr(e);return{diagramType:(await qr(t)).type,config:n}}catch(e){if(t?.suppressErrors)return!1;throw e}}E(Fr,`parse`);var Ir=E((e,t,n=[])=>`.${e} ${t} ${_(`{ ${n.join(` !important; `)} !important; }`)}`,`cssImportantStyles`),Lr=E((e,t=new Map)=>{let n=new CSSStyleSheet;if(e.fontFamily!==void 0&&n.insertRule(`:root { --mermaid-font-family: ${e.fontFamily}}`,n.cssRules.length),e.altFontFamily!==void 0&&n.insertRule(`:root { --mermaid-alt-font-family: ${e.altFontFamily}}`,n.cssRules.length),t instanceof Map){let r=a(e)?[`> *`,`span`]:[`rect`,`polygon`,`ellipse`,`circle`,`path`];t.forEach(e=>{ce(e.styles)||r.forEach(t=>{n.insertRule(Ir(e.id,t,e.styles),n.cssRules.length)}),ce(e.textStyles)||n.insertRule(Ir(e.id,`tspan`,(e?.textStyles||[]).map(e=>e.replace(`color`,`fill`))),n.cssRules.length)})}let r=``;if(e.themeCSS!==void 0)if(typeof n.replaceSync==`function`){let t=new CSSStyleSheet;t.replaceSync(e.themeCSS),r=s(t)+`
6
+ `}else r+=`${e.themeCSS}
7
+ `;return r+s(n)},`createCssStyles`),Rr=E((e,t)=>rr(Qn(`${e}{${t}}`),ar([E(function(t,n,r,i){if(t.type===`rule`&&Array.isArray(t.props)){if(t.parent&&t.parent.type===xn)return;t.props=t.props.map(t=>t.startsWith(e)?t:`${e} ${t}`)}else t.type.startsWith(`@`)&&([_n,yn,Sn,Cn,`@container`,`@starting-style`,xn].includes(t.type)||(k.warn(`Removing unsupported at-rule ${t.type} from CSS`),t.type=mn))},`addNamespace`),ir])),`compileCSS`),zr=E((e,t,n,r)=>Rr(r,re(t,Lr(e,n),{...e.themeVariables,theme:e.theme,look:e.look},r)),`createUserStyles`),Br=E((e=``,t,n)=>{let r=e;return!n&&!t&&(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,`marker-end="url(#`)),r=ue(r),r=r.replace(/<br>/g,`<br/>`),r},`cleanUpSvgCode`),Vr=E((e=``,t)=>`<iframe style="width:${Er};height:${t?.viewBox?.baseVal?.height?t.viewBox.baseVal.height+`px`:Dr};${Or}" src="data:text/html;charset=UTF-8;base64,${vr(`<body style="${kr}">${e}</body>`)}" sandbox="${Ar}">
8
+ ${jr}
9
+ </iframe>`,`putIntoIFrame`),Hr=E((e,t,n,r,i)=>{let a=e.append(`div`);a.attr(`id`,n),r&&a.attr(`style`,r);let o=a.append(`svg`).attr(`id`,t).attr(`width`,`100%`).attr(`xmlns`,Cr);return i&&o.attr(`xmlns:xlink`,i),o.append(`g`),e},`appendDivSvgG`);function Ur(e,t){return e.append(`iframe`).attr(`id`,t).attr(`style`,`width: 100%; height: 100%;`).attr(`sandbox`,``)}E(Ur,`sandboxedIframe`);var Wr=E((e,t,n,r)=>{e.getElementById(t)?.remove(),e.getElementById(n)?.remove(),e.getElementById(r)?.remove()},`removeExistingElements`),Gr=E(async function(e,t,n){fn();let r=Pr(t);t=r.code;let i=v();k.debug(i),t.length>(i?.maxTextSize??yr)&&(t=br);let a=`#${e}`,o=`i`+e,s=`#`+o,c=`d`+e,l=`#`+c,u=E(()=>{let e=O(f?s:l).node();e&&`remove`in e&&e.remove()},`removeTempElements`),d=O(document.body),f=i.securityLevel===xr,p=i.securityLevel===Sr,m=i.fontFamily;n===void 0?(Wr(document,e,c,o),f?(d=O(Ur(O(document.body),o).nodes()[0].contentDocument.body),d.node().style.margin=`0`):d=O(`body`),Hr(d,e,c)):(n&&(n.innerHTML=``),f?(d=O(Ur(O(n),o).nodes()[0].contentDocument.body),d.node().style.margin=`0`):d=O(n),Hr(d,e,c,`font-family: ${m}`,wr));let h,g;try{h=await lr.fromText(t,{title:r.title})}catch(e){if(i.suppressErrorRendering)throw u(),e;h=await lr.fromText(`error`),g=e}let _=d.select(l).node(),y=h.type,x=_.firstChild,C=x.firstChild,w=h.renderer.getClasses?.(t,h),T=zr(i,y,w,a),ee=document.createElement(`style`);ee.innerHTML=T,x.insertBefore(ee,C);try{await h.renderer.draw(t,e,`11.15.0`,h)}catch(n){throw i.suppressErrorRendering?u():Mt.draw(t,e,`11.15.0`),n}let te=d.select(`${l} svg`),ne=h.db.getAccTitle?.(),re=h.db.getAccDescription?.();Jr(y,te,ne,re),d.select(`[id="${e}"]`).selectAll(`foreignobject > *`).attr(`xmlns`,Tr);let D=d.select(l).node().innerHTML;if(k.debug(`config.arrowMarkerAbsolute`,i.arrowMarkerAbsolute),D=Br(D,f,S(i.arrowMarkerAbsolute)),f){let e=d.select(l+` svg`).node();D=Vr(D,e)}else p||(D=b.sanitize(D,{ADD_TAGS:Mr,ADD_ATTR:Nr,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(dr(),g)throw g;return u(),{diagramType:y,svg:D,bindFunctions:h.db.bindFunctions}},`render`);function Kr(e={}){let t=f({},e);t?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||={},t.themeVariables.fontFamily=t.fontFamily),ne(t),t?.theme&&t.theme in c?t.themeVariables=c[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=c.default.getThemeVariables(t.themeVariables)),D((typeof t==`object`?u(t):d()).logLevel),fn()}E(Kr,`initialize`);var qr=E((e,t={})=>{let{code:n}=_r(e);return lr.fromText(n,t)},`getDiagramFromText`);function Jr(e,t,n,r){sr(t,e),cr(t,n,r,t.attr(`id`))}E(Jr,`addA11yInfo`);var Yr=Object.freeze({render:Gr,parse:Fr,getDiagramFromText:qr,initialize:Kr,getConfig:v,setConfig:l,getSiteConfig:d,updateSiteConfig:h,reset:E(()=>{r()},`reset`),globalReset:E(()=>{r(g)},`globalReset`),defaultConfig:g});D(v().logLevel),r(v());var Xr=E((e,t,n)=>{k.warn(e),se(e)?(n&&n(e.str,e.hash),t.push({...e,message:e.str,error:e})):(n&&n(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},`handleError`),Zr=E(async function(e={querySelector:`.mermaid`}){try{await Qr(e)}catch(t){if(se(t)&&k.error(t.str),li.parseError&&li.parseError(t),!e.suppressErrors)throw k.error(`Use the suppressErrors option to suppress these errors`),t}},`run`),Qr=E(async function({postRenderCallback:e,querySelector:t,nodes:n}={querySelector:`.mermaid`}){let r=Yr.getConfig();k.debug(`${e?``:`No `}Callback function found`);let i;if(n)i=n;else if(t)i=document.querySelectorAll(t);else throw Error(`Nodes and querySelector are both undefined`);k.debug(`Found ${i.length} diagrams`),r?.startOnLoad!==void 0&&(k.debug(`Start On Load: `+r?.startOnLoad),Yr.updateSiteConfig({startOnLoad:r?.startOnLoad}));let a=new le.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed),o,s=[];for(let t of Array.from(i)){if(k.info(`Rendering diagram: `+t.id),t.getAttribute(`data-processed`))continue;t.setAttribute(`data-processed`,`true`);let n=`mermaid-${a.next()}`;o=t.innerHTML,o=me(le.entityDecode(o)).trim().replace(/<br\s*\/?>/gi,`<br/>`);let r=le.detectInit(o);r&&k.debug(`Detected early reinit: `,r);try{let{svg:r,bindFunctions:i}=await ci(n,o,t);t.innerHTML=r,e&&await e(n),i&&i(t)}catch(e){Xr(e,s,li.parseError)}}if(s.length>0)throw s[0]},`runThrowsErrors`),$r=E(function(e){Yr.initialize(e)},`initialize`),ei=E(async function(e,t,n){k.warn(`mermaid.init is deprecated. Please use run instead.`),e&&$r(e);let r={postRenderCallback:n,querySelector:`.mermaid`};typeof t==`string`?r.querySelector=t:t&&(t instanceof HTMLElement?r.nodes=[t]:r.nodes=t),await Zr(r)},`init`),ti=E(async(e,{lazyLoad:t=!0}={})=>{fn(),p(...e),t===!1&&await pn()},`registerExternalDiagrams`),ni=E(function(){if(li.startOnLoad){let{startOnLoad:e}=Yr.getConfig();e&&li.run().catch(e=>k.error(`Mermaid failed to initialize`,e))}},`contentLoaded`);typeof document<`u`&&window.addEventListener(`load`,ni,!1);var ri=E(function(e){li.parseError=e},`setParseErrorHandler`),ii=[],ai=!1,oi=E(async()=>{if(!ai){for(ai=!0;ii.length>0;){let e=ii.shift();if(e)try{await e()}catch(e){k.error(`Error executing queue`,e)}}ai=!1}},`executeQueue`),si=E(async(e,t)=>new Promise((n,r)=>{let i=E(()=>new Promise((i,a)=>{Yr.parse(e,t).then(e=>{i(e),n(e)},e=>{k.error(`Error parsing`,e),li.parseError?.(e),a(e),r(e)})}),`performCall`);ii.push(i),oi().catch(r)}),`parse`),ci=E((e,t,n)=>new Promise((r,i)=>{let a=E(()=>new Promise((a,o)=>{Yr.render(e,t,n).then(e=>{a(e),r(e)},e=>{k.error(`Error parsing`,e),li.parseError?.(e),o(e),i(e)})}),`performCall`);ii.push(a),oi().catch(i)}),`render`),li={startOnLoad:!0,mermaidAPI:Yr,parse:si,render:ci,init:ei,run:Zr,registerExternalDiagrams:ti,registerLayoutLoaders:j,initialize:$r,parseError:void 0,contentLoaded:ni,setParseErrorHandler:ri,detectType:i,registerIconPacks:pe,getRegisteredDiagramsMetadata:E(()=>Object.keys(x).map(e=>({id:e})),`getRegisteredDiagramsMetadata`)},ui=li;function di(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function fi(e){if(Array.isArray(e))return e}function pi(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function mi(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
10
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hi(e,t){return fi(e)||pi(e,t)||gi(e,t)||mi()}function gi(e,t){if(e){if(typeof e==`string`)return di(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?di(e,t):void 0}}var _i=Object.entries,vi=Object.setPrototypeOf,yi=Object.isFrozen,bi=Object.getPrototypeOf,xi=Object.getOwnPropertyDescriptor,G=Object.freeze,K=Object.seal,Si=Object.create,Ci=typeof Reflect<`u`&&Reflect,wi=Ci.apply,Ti=Ci.construct;G||=function(e){return e},K||=function(e){return e},wi||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Ti||=function(e){return new e(...[...arguments].slice(1))};var Ei=Y(Array.prototype.forEach),Di=Y(Array.prototype.lastIndexOf),Oi=Y(Array.prototype.pop),ki=Y(Array.prototype.push),Ai=Y(Array.prototype.splice),ji=Array.isArray,Mi=Y(String.prototype.toLowerCase),Ni=Y(String.prototype.toString),Pi=Y(String.prototype.match),Fi=Y(String.prototype.replace),Ii=Y(String.prototype.indexOf),Li=Y(String.prototype.trim),Ri=Y(Number.prototype.toString),zi=Y(Boolean.prototype.toString),Bi=typeof BigInt>`u`?null:Y(BigInt.prototype.toString),Vi=typeof Symbol>`u`?null:Y(Symbol.prototype.toString),q=Y(Object.prototype.hasOwnProperty),Hi=Y(Object.prototype.toString),J=Y(RegExp.prototype.test),Ui=Wi(TypeError);function Y(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return wi(e,t,n)}}function Wi(e){return function(){return Ti(e,[...arguments])}}function X(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Mi;if(vi&&vi(e,null),!ji(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(yi(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Gi(e){for(let t=0;t<e.length;t++)q(e,t)||(e[t]=null);return e}function Z(e){let t=Si(null);for(let r of _i(e)){var n=hi(r,2);let i=n[0],a=n[1];q(e,i)&&(ji(a)?t[i]=Gi(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=Z(a):t[i]=a)}return t}function Ki(e){switch(typeof e){case`string`:return e;case`number`:return Ri(e);case`boolean`:return zi(e);case`bigint`:return Bi?Bi(e):`0`;case`symbol`:return Vi?Vi(e):`Symbol()`;case`undefined`:return Hi(e);case`function`:case`object`:{if(e===null)return Hi(e);let t=e,n=Q(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Hi(e)}return Hi(e)}default:return Hi(e)}}function Q(e,t){for(;e!==null;){let n=xi(e,t);if(n){if(n.get)return Y(n.get);if(typeof n.value==`function`)return Y(n.value)}e=bi(e)}function n(){return null}return n}function qi(e){try{return J(e,``),!0}catch{return!1}}var Ji=G(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Yi=G(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),Xi=G([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Zi=G([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),Qi=G(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),$i=G([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),ea=G([`#text`]),ta=G(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),na=G(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),ra=G(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),ia=G([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),aa=K(/{{[\w\W]*|^[\w\W]*}}/g),oa=K(/<%[\w\W]*|^[\w\W]*%>/g),sa=K(/\${[\w\W]*/g),ca=K(/^data-[\-\w.\u00B7-\uFFFF]+$/),la=K(/^aria-[\-\w]+$/),ua=K(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),da=K(/^(?:\w+script|data):/i),fa=K(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),pa=K(/^html$/i),ma=K(/^[a-z][.\w]*(-[.\w]+)+$/i),ha=K(/<[/\w!]/g),ga=K(/<[/\w]/g),_a=K(/<\/no(script|embed|frames)/i),va=K(/\/>/i),$={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ya=function(){return typeof window>`u`?null:window},ba=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},xa=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Sa=function(e,t,n,r){return q(e,t)&&ji(e[t])?X(r.base?Z(r.base):{},e[t],r.transform):n};function Ca(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ya(),t=e=>Ca(e);if(t.version=`3.4.11`,t.removed=[],!e||!e.document||e.document.nodeType!==$.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=Q(d,`cloneNode`),p=Q(d,`remove`),m=Q(d,`nextSibling`),h=Q(d,`childNodes`),g=Q(d,`parentNode`),_=Q(d,`shadowRoot`),v=Q(d,`attributes`),y=o&&o.prototype?Q(o.prototype,`nodeType`):null,b=o&&o.prototype?Q(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,ee=function(){if(T>0)throw Ui(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},te=function(e){ee(),T++;try{return x.createHTML(e)}finally{T--}},ne=function(e){ee(),T++;try{return x.createScriptURL(e)}finally{T--}},re=function(){return w||=(C=ba(u,i),!0),C},E=n,D=E.implementation,O=E.createNodeIterator,k=E.createDocumentFragment,ie=E.getElementsByTagName,ae=r.importNode,A=xa();t.isSupported=typeof _i==`function`&&typeof g==`function`&&D&&D.createHTMLDocument!==void 0;let oe=aa,se=oa,ce=sa,le=ca,ue=la,de=da,fe=fa,pe=ma,me=ua,j=null,he=X({},[...Ji,...Yi,...Xi,...Qi,...ea]),M=null,N=X({},[...ta,...na,...ra,...ia]),P=Object.seal(Si(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ge=null,_e=null,F=Object.seal(Si(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ve=!0,ye=!0,be=!1,xe=!0,Se=!1,Ce=!0,we=!1,Te=!1,Ee=null,De=null,Oe=!1,ke=!1,Ae=!1,je=!1,Me=!0,Ne=!1,Pe=`user-content-`,Fe=!0,Ie=!1,Le={},I=null,Re=X({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),ze=null,Be=X({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Ve=null,He=X({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Ue=`http://www.w3.org/1998/Math/MathML`,We=`http://www.w3.org/2000/svg`,L=`http://www.w3.org/1999/xhtml`,Ge=L,Ke=!1,qe=null,Je=X({},[Ue,We,L],Ni),Ye=G([`mi`,`mo`,`mn`,`ms`,`mtext`]),Xe=X({},Ye),Ze=G([`annotation-xml`]),Qe=X({},Ze),R=X({},[`title`,`style`,`font`,`a`,`script`]),$e=null,et=[`application/xhtml+xml`,`text/html`],z=null,tt=null,nt=n.createElement(`form`),rt=function(e){return e instanceof RegExp||e instanceof Function},it=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(tt&&tt===e)return;(!e||typeof e!=`object`)&&(e={}),e=Z(e),$e=et.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,z=$e===`application/xhtml+xml`?Ni:Mi,j=Sa(e,`ALLOWED_TAGS`,he,{transform:z}),M=Sa(e,`ALLOWED_ATTR`,N,{transform:z}),qe=Sa(e,`ALLOWED_NAMESPACES`,Je,{transform:Ni}),Ve=Sa(e,`ADD_URI_SAFE_ATTR`,He,{transform:z,base:He}),ze=Sa(e,`ADD_DATA_URI_TAGS`,Be,{transform:z,base:Be}),I=Sa(e,`FORBID_CONTENTS`,Re,{transform:z}),ge=Sa(e,`FORBID_TAGS`,Z({}),{transform:z}),_e=Sa(e,`FORBID_ATTR`,Z({}),{transform:z}),Le=q(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?Z(e.USE_PROFILES):e.USE_PROFILES:!1,ve=e.ALLOW_ARIA_ATTR!==!1,ye=e.ALLOW_DATA_ATTR!==!1,be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Se=e.SAFE_FOR_TEMPLATES||!1,Ce=e.SAFE_FOR_XML!==!1,we=e.WHOLE_DOCUMENT||!1,ke=e.RETURN_DOM||!1,Ae=e.RETURN_DOM_FRAGMENT||!1,je=e.RETURN_TRUSTED_TYPE||!1,Oe=e.FORCE_BODY||!1,Me=e.SANITIZE_DOM!==!1,Ne=e.SANITIZE_NAMED_PROPS||!1,Fe=e.KEEP_CONTENT!==!1,Ie=e.IN_PLACE||!1,me=qi(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:ua,Ge=typeof e.NAMESPACE==`string`?e.NAMESPACE:L,Xe=q(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?Z(e.MATHML_TEXT_INTEGRATION_POINTS):X({},Ye),Qe=q(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?Z(e.HTML_INTEGRATION_POINTS):X({},Ze);let t=q(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?Z(e.CUSTOM_ELEMENT_HANDLING):Si(null);if(P=Si(null),q(t,`tagNameCheck`)&&rt(t.tagNameCheck)&&(P.tagNameCheck=t.tagNameCheck),q(t,`attributeNameCheck`)&&rt(t.attributeNameCheck)&&(P.attributeNameCheck=t.attributeNameCheck),q(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(P.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),K(P),Se&&(ye=!1),Ae&&(ke=!0),Le&&(j=X({},ea),M=Si(null),Le.html===!0&&(X(j,Ji),X(M,ta)),Le.svg===!0&&(X(j,Yi),X(M,na),X(M,ia)),Le.svgFilters===!0&&(X(j,Xi),X(M,na),X(M,ia)),Le.mathMl===!0&&(X(j,Qi),X(M,ra),X(M,ia))),F.tagCheck=null,F.attributeCheck=null,q(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?F.tagCheck=e.ADD_TAGS:ji(e.ADD_TAGS)&&(j===he&&(j=Z(j)),X(j,e.ADD_TAGS,z))),q(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?F.attributeCheck=e.ADD_ATTR:ji(e.ADD_ATTR)&&(M===N&&(M=Z(M)),X(M,e.ADD_ATTR,z))),q(e,`ADD_URI_SAFE_ATTR`)&&ji(e.ADD_URI_SAFE_ATTR)&&X(Ve,e.ADD_URI_SAFE_ATTR,z),q(e,`FORBID_CONTENTS`)&&ji(e.FORBID_CONTENTS)&&(I===Re&&(I=Z(I)),X(I,e.FORBID_CONTENTS,z)),q(e,`ADD_FORBID_CONTENTS`)&&ji(e.ADD_FORBID_CONTENTS)&&(I===Re&&(I=Z(I)),X(I,e.ADD_FORBID_CONTENTS,z)),Fe&&(j[`#text`]=!0),we&&X(j,[`html`,`head`,`body`]),j.table&&(X(j,[`tbody`]),delete ge.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Ui(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Ui(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=te(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=re()),x&&typeof S==`string`&&(S=te(``)));G&&G(e),tt=e},at=X({},[...Yi,...Xi,...Zi]),ot=X({},[...Qi,...$i]),st=function(e,t,n){return t.namespaceURI===L?e===`svg`:t.namespaceURI===Ue?e===`svg`&&(n===`annotation-xml`||Xe[n]):!!at[e]},ct=function(e,t,n){return t.namespaceURI===L?e===`math`:t.namespaceURI===We?e===`math`&&Qe[n]:!!ot[e]},lt=function(e,t,n){return t.namespaceURI===We&&!Qe[n]||t.namespaceURI===Ue&&!Xe[n]?!1:!ot[e]&&(R[e]||!at[e])},ut=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Ge,tagName:`template`});let n=Mi(e.tagName),r=Mi(t.tagName);return qe[e.namespaceURI]?e.namespaceURI===We?st(n,t,r):e.namespaceURI===Ue?ct(n,t,r):e.namespaceURI===L?lt(n,t,r):!!($e===`application/xhtml+xml`&&qe[e.namespaceURI]):!1},dt=function(e){ki(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw Ui(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},ft=function(e){let t=h(e);if(t){let e=[];Ei(t,t=>{ki(e,t)}),Ei(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},pt=function(e,n){try{ki(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{ki(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(ke||Ae)try{dt(n)}catch{}else try{n.setAttribute(e,``)}catch{}},mt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||M[z(i)]))try{e.removeAttribute(i)}catch{}}},ht=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===$.element&&mt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},gt=function(e){let t=null,r=null;if(Oe)e=`<remove></remove>`+e;else{let t=Pi(e,/^[\r\n\t ]+/);r=t&&t[0]}$e===`application/xhtml+xml`&&Ge===L&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=x?te(e):e;if(Ge===L)try{t=new l().parseFromString(i,$e)}catch{}if(!t||!t.documentElement){t=D.createDocument(Ge,`template`,null);try{t.documentElement.innerHTML=Ke?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ge===L?ie.call(t,we?`html`:`body`)[0]:we?t.documentElement:a},_t=function(e){return O.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},vt=function(e){return e=Fi(e,oe,` `),e=Fi(e,se,` `),e=Fi(e,ce,` `),e},yt=function(e){e.normalize();let t=O.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=vt(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&Ei(r,e=>{xt(e.content)&&yt(e.content)})},bt=function(e){let t=b?b(e):null;return typeof t!=`string`||z(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},xt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===$.documentFragment}catch{return!1}},St=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function B(e,n,r){e.length!==0&&Ei(e,e=>{e.call(t,n,r,tt)})}let Ct=function(e,t){return!!(Ce&&e.hasChildNodes()&&!St(e.firstElementChild)&&J(ha,e.textContent)&&J(ha,e.innerHTML)||Ce&&e.namespaceURI===L&&t===`style`&&St(e.firstElementChild)||e.nodeType===$.processingInstruction||Ce&&e.nodeType===$.comment&&J(ga,e.data))},wt=function(e,t){if(!ge[t]&&Ot(t)&&(P.tagNameCheck instanceof RegExp&&J(P.tagNameCheck,t)||P.tagNameCheck instanceof Function&&P.tagNameCheck(t)))return!1;if(Fe&&!I[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Ie?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return dt(e),!0},Tt=function(e){if(B(A.beforeSanitizeElements,e,null),bt(e))return dt(e),!0;let n=z(b?b(e):e.nodeName);if(B(A.uponSanitizeElement,e,{tagName:n,allowedTags:j}),Ct(e,n))return dt(e),!0;if(ge[n]||!(F.tagCheck instanceof Function&&F.tagCheck(n))&&!j[n])return wt(e,n);if((y?y(e):e.nodeType)===$.element&&!ut(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&J(_a,e.innerHTML))return dt(e),!0;if(Se&&e.nodeType===$.text){let n=vt(e.textContent);e.textContent!==n&&(ki(t.removed,{element:e.cloneNode()}),e.textContent=n)}return B(A.afterSanitizeElements,e,null),!1},Et=function(e,t,r){if(_e[t]||Me&&(t===`id`||t===`name`)&&(r in n||r in nt))return!1;let i=M[t]||F.attributeCheck instanceof Function&&F.attributeCheck(t,e);if(!(ye&&J(le,t))&&!(ve&&J(ue,t))){if(!i){if(!(Ot(e)&&(P.tagNameCheck instanceof RegExp&&J(P.tagNameCheck,e)||P.tagNameCheck instanceof Function&&P.tagNameCheck(e))&&(P.attributeNameCheck instanceof RegExp&&J(P.attributeNameCheck,t)||P.attributeNameCheck instanceof Function&&P.attributeNameCheck(t,e))||t===`is`&&P.allowCustomizedBuiltInElements&&(P.tagNameCheck instanceof RegExp&&J(P.tagNameCheck,r)||P.tagNameCheck instanceof Function&&P.tagNameCheck(r))))return!1}else if(!Ve[t]&&!J(me,Fi(r,fe,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&Ii(r,`data:`)===0&&ze[e])&&!(be&&!J(de,Fi(r,fe,``)))&&r)return!1}return!0},Dt=X({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Ot=function(e){return!Dt[Mi(e)]&&J(pe,e)},kt=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return te(r);case`TrustedScriptURL`:return ne(r)}return r},At=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),bt(e)?dt(e):Oi(t.removed)}catch{pt(n,e)}},jt=function(e){B(A.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||bt(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:M,forceKeepAttr:void 0},r=t.length,i=z(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=z(o),u=c,d=o===`value`?u:Li(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,B(A.uponSanitizeAttribute,e,n),d=n.attrValue,Ne&&(l===`id`||l===`name`)&&Ii(d,Pe)!==0&&(pt(o,e),d=Pe+d),Ce&&J(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){pt(o,e);continue}if(l===`attributename`&&Pi(d,`href`)){pt(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){pt(o,e);continue}if(!xe&&J(va,d)){pt(o,e);continue}if(Se&&(d=vt(d)),!Et(i,l,d)){pt(o,e);continue}d=kt(i,l,s,d),d!==u&&At(e,o,s,d)}}B(A.afterSanitizeAttributes,e,null)},Mt=function(e){let t=null,n=_t(e);for(B(A.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(B(A.uponSanitizeShadowNode,t,null),Tt(t),jt(t),xt(t.content)&&Mt(t.content),(y?y(t):t.nodeType)===$.element){let e=_(t);xt(e)&&(Nt(e),Mt(e))}B(A.afterSanitizeShadowDOM,e,null)},Nt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Mt(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===$.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&z(e)===`template`){let e=n.content;xt(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);xt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Ke=!e,Ke&&(e=`<!-->`),typeof e!=`string`&&!St(e)&&(e=Ki(e),typeof e!=`string`))throw Ui(`dirty is not a string, aborting`);if(!t.isSupported)return e;Te?(j=Ee,M=De):it(n),(A.uponSanitizeElement.length>0||A.uponSanitizeAttribute.length>0)&&(j=Z(j)),A.uponSanitizeAttribute.length>0&&(M=Z(M)),t.removed=[];let c=Ie&&typeof e!=`string`&&St(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=z(t);if(!j[e]||ge[e])throw Ui(`root node is forbidden and cannot be sanitized in-place`)}if(bt(e))throw Ui(`root node is clobbered and cannot be sanitized in-place`);try{Nt(e)}catch(t){throw ft(e),t}}else if(St(e))i=gt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===$.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Nt(a);else{if(!ke&&!Se&&!we&&e.indexOf(`<`)===-1)return x&&je?te(e):e;if(i=gt(e),!i)return ke?null:je?S:``}i&&Oe&&dt(i.firstChild);let l=_t(c?e:i);try{for(;o=l.nextNode();)Tt(o),jt(o),xt(o.content)&&Mt(o.content)}catch(t){throw c&&ft(e),t}if(c)return Ei(t.removed,e=>{e.element&&ht(e.element)}),Se&&yt(e),e;if(ke){if(Se&&yt(i),Ae)for(s=k.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(M.shadowroot||M.shadowrootmode)&&(s=ae.call(r,s,!0)),s}let u=we?i.outerHTML:i.innerHTML;return we&&j[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&J(pa,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
11
+ `+u),Se&&(u=vt(u)),x&&je?te(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};it(e),Te=!0,Ee=j,De=M},t.clearConfig=function(){tt=null,Te=!1,Ee=null,De=null,x=C,S=``},t.isValidAttribute=function(e,t,n){tt||it({});let r=z(e),i=z(t);return Et(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&q(A,e)&&ki(A[e],t)},t.removeHook=function(e,t){if(q(A,e)){if(t!==void 0){let n=Di(A[e],t);return n===-1?void 0:Ai(A[e],n,1)[0]}return Oi(A[e])}},t.removeHooks=function(e){q(A,e)&&(A[e]=[])},t.removeAllHooks=function(){A=xa()},t}var wa=Ca();function Ta(e){let{steps:t,edges:n,clusters:r}=e;if(!t||t.length===0)return`graph TD
12
+ A[No steps found]`;let i=[`graph TD`];i.push(` %% Styles`),i.push(` classDef default fill:#1e293b,stroke:#94a3b8,stroke-width:3px,color:#f8fafc,rx:10,ry:10,font-size:24px;`),i.push(` classDef entry fill:#1e293b,stroke:#34d399,stroke-width:5px,color:#f8fafc,rx:10,ry:10,font-size:24px;`),i.push(` classDef step fill:#1e293b,stroke:#22d3ee,stroke-width:3px,color:#f8fafc,rx:10,ry:10,font-size:24px;`),i.push(` classDef terminal fill:#1e293b,stroke:#f472b6,stroke-width:5px,color:#f8fafc,rx:10,ry:10,font-size:24px;`),i.push(` classDef cluster fill:#0f172a,stroke:#334155,stroke-width:3px,color:#94a3b8,rx:4,ry:4,font-size:20px;`);let a=new Map,o=[];for(let e of t)if(e.cluster){let t=a.get(e.cluster)||[];t.push(e),a.set(e.cluster,t)}else o.push(e);let s=e=>e.id.replace(/[^a-zA-Z0-9_]/g,`_`),c=e=>e.replace(/["\[\]<>{}()]/g,``).substring(0,30),l=e=>e?.split(`/`).pop()||``,u=[...t].sort((e,t)=>e.stepNumber-t.stepNumber),d=u[0]?.id,f=u[u.length-1]?.id,p=e=>e.id===d?`entry`:e.id===f?`terminal`:`step`;if(e.processType===`cross_community`&&a.size>1){let e=0;for(let[t,n]of a){i.push(` subgraph ${c(t)}["${c(t)}"]:::cluster`);for(let e of n){let t=s(e),n=`${e.stepNumber}. ${c(e.name)}`,r=l(e.filePath),a=p(e);i.push(` ${t}["${n}<br/><small>${r}</small>"]:::${a}`)}i.push(` end`),e++}for(let e of o){let t=s(e),n=`${e.stepNumber}. ${c(e.name)}`,r=l(e.filePath),a=p(e);i.push(` ${t}["${n}<br/><small>${r}</small>"]:::${a}`)}}else for(let e of t){let t=s(e),n=`${e.stepNumber}. ${c(e.name)}`,r=l(e.filePath),a=p(e);i.push(` ${t}["${n}<br/><small>${r}</small>"]:::${a}`)}if(n&&n.length>0){let e=new Map(t.map(e=>[e.id,e]));for(let t of n){let n=e.get(t.from),r=e.get(t.to);n&&r&&i.push(` ${s(n)} --> ${s(r)}`)}}else{let e=[...t].sort((e,t)=>e.stepNumber-t.stepNumber);for(let t=0;t<e.length-1;t++)i.push(` ${s(e[t])} --> ${s(e[t+1])}`)}return i.join(`
13
+ `)}var Ea=e({ProcessFlowModal:()=>Da});ui.initialize({startOnLoad:!1,suppressErrorRendering:!0,maxTextSize:9e5,theme:`base`,themeVariables:{primaryColor:`#1e293b`,primaryTextColor:`#f1f5f9`,primaryBorderColor:`#22d3ee`,lineColor:`#94a3b8`,secondaryColor:`#1e293b`,tertiaryColor:`#0f172a`,mainBkg:`#1e293b`,nodeBorder:`#22d3ee`,clusterBkg:`#1e293b`,clusterBorder:`#475569`,titleColor:`#f1f5f9`,edgeLabelBackground:`#0f172a`},flowchart:{curve:`basis`,padding:50,nodeSpacing:120,rankSpacing:140,htmlLabels:!0}}),ui.parseError=e=>{console.debug(`Mermaid parse error (suppressed):`,e)};var Da=({process:e,onClose:t,onFocusInGraph:n,isFullScreen:r=!1})=>{let{t:i}=I([`graph`,`common`]),a=(0,N.useRef)(null),o=(0,N.useRef)(null),s=(0,N.useRef)(null),c=r?6.67:1,l=r?30:10,[u,d]=(0,N.useState)(c),[f,p]=(0,N.useState)({x:0,y:0}),[m,h]=(0,N.useState)(!1),[g,_]=(0,N.useState)({x:0,y:0});(0,N.useEffect)(()=>{d(c),p({x:0,y:0})},[r,c]),(0,N.useEffect)(()=>{let e=e=>{e.preventDefault();let t=e.deltaY*-.001;d(e=>Math.min(Math.max(.1,e+t),l))},t=s.current;if(t)return t.addEventListener(`wheel`,e,{passive:!1}),()=>t.removeEventListener(`wheel`,e)},[e,l]),(0,N.useEffect)(()=>{let e=e=>{e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||(e.key===`+`||e.key===`=`?d(e=>Math.min(e+.2,l)):(e.key===`-`||e.key===`_`)&&d(e=>Math.max(e-.2,.1)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l]);let v=(0,N.useCallback)(()=>{d(e=>Math.min(e+.25,l))},[l]),y=(0,N.useCallback)(()=>{d(e=>Math.max(e-.25,.1))},[]),b=(0,N.useCallback)(e=>{h(!0),_({x:e.clientX-f.x,y:e.clientY-f.y})},[f]),x=(0,N.useCallback)(e=>{m&&p({x:e.clientX-g.x,y:e.clientY-g.y})},[m,g]),S=(0,N.useCallback)(()=>{h(!1)},[]),C=(0,N.useCallback)(()=>{d(c),p({x:0,y:0})},[c]);(0,N.useEffect)(()=>{!e||!o.current||(async()=>{try{let t=e.rawMermaid?e.rawMermaid:Ta(e),n=`mermaid-${Date.now()}`;o.current.innerHTML=``;let{svg:r}=await ui.render(n,t);if(!o.current)return;o.current.innerHTML=wa.sanitize(r,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:[`foreignObject`]})}catch(t){console.error(`Mermaid render error:`,t);let n=t instanceof Error?t.message:String(t),r=n.includes(`Maximum`)||n.includes(`exceeded`);o.current.innerHTML=`
14
+ <div class="text-center p-8">
15
+ <div class="text-red-400 text-sm font-medium mb-2">
16
+ ${i(r?`graph:processFlow.diagramTooLarge`:`graph:processFlow.renderError`)}
17
+ </div>
18
+ <div class="text-slate-400 text-xs max-w-md">
19
+ ${i(r?`graph:processFlow.tooComplex`:`graph:processFlow.unableToRender`,{count:e.steps?.length||0})}
20
+ </div>
21
+ </div>
22
+ `}})()},[e,i]),(0,N.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let w=(0,N.useCallback)(e=>{e.target===a.current&&t()},[t]),T=(0,N.useCallback)(async()=>{if(!e)return;let t=Ta(e);await navigator.clipboard.writeText(t)},[e]),ee=(0,N.useCallback)(()=>{!e||!n||(n(e.steps.map(e=>e.id),e.id),t())},[e,n,t]);return e?(0,R.jsx)(`div`,{ref:a,className:`fixed inset-0 z-50 flex animate-fade-in items-center justify-center bg-black/20`,onClick:w,"data-testid":`process-modal`,children:(0,R.jsxs)(`div`,{className:`animate-scale-in relative flex flex-col overflow-hidden rounded-3xl border border-white/10 bg-slate-900/60 shadow-2xl shadow-cyan-500/10 backdrop-blur-2xl ${r?`h-[95vh] w-[98%] max-w-none`:`max-h-[90vh] w-[95%] max-w-5xl`}`,children:[(0,R.jsx)(`div`,{className:`pointer-events-none absolute inset-0 bg-gradient-to-br from-white/5 to-transparent`}),(0,R.jsx)(`div`,{className:`relative z-10 border-b border-white/10 px-6 py-5`,children:(0,R.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`graph:processFlow.title`,{label:e.label})})}),(0,R.jsx)(`div`,{ref:s,className:`relative z-10 flex flex-1 items-center justify-center overflow-hidden p-8 ${r?`min-h-[70vh]`:`min-h-[400px]`}`,onMouseDown:b,onMouseMove:x,onMouseUp:S,onMouseLeave:S,style:{cursor:m?`grabbing`:`grab`},children:(0,R.jsx)(`div`,{ref:o,className:`h-fit w-fit origin-center transition-transform [&_.edgePath_.path]:stroke-slate-400 [&_.edgePath_.path]:stroke-2 [&_.marker]:fill-slate-400`,style:{transform:`translate(${f.x}px, ${f.y}px) scale(${u})`}})}),(0,R.jsxs)(`div`,{className:`relative z-10 flex items-center justify-center gap-3 border-t border-white/10 bg-slate-900/50 px-6 py-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-1 rounded-lg border border-white/10 bg-white/5 p-1`,children:[(0,R.jsx)(`button`,{onClick:y,className:`rounded-md p-2 text-slate-300 transition-all hover:bg-white/10 hover:text-white`,title:i(`graph:processFlow.zoomOutTitle`),children:(0,R.jsx)(Ze,{className:`h-4 w-4`})}),(0,R.jsxs)(`span`,{className:`min-w-[3rem] px-2 text-center font-mono text-xs text-slate-400`,children:[Math.round(u*100),`%`]}),(0,R.jsx)(`button`,{onClick:v,className:`rounded-md p-2 text-slate-300 transition-all hover:bg-white/10 hover:text-white`,title:i(`graph:processFlow.zoomInTitle`),children:(0,R.jsx)(Qe,{className:`h-4 w-4`})})]}),(0,R.jsx)(`button`,{onClick:C,className:`flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2.5 text-sm font-medium text-slate-300 transition-all hover:bg-white/10 hover:text-white`,title:i(`graph:processFlow.resetTitle`),children:i(`graph:processFlow.resetView`)}),n&&(0,R.jsxs)(`button`,{onClick:ee,className:`flex items-center gap-2 rounded-lg bg-cyan-400 px-5 py-2.5 text-sm font-medium text-slate-900 shadow-lg shadow-cyan-500/20 transition-all hover:bg-cyan-300`,children:[(0,R.jsx)(Xe,{className:`h-4 w-4`}),i(`graph:processFlow.toggleFocus`)]}),(0,R.jsxs)(`button`,{onClick:T,className:`flex items-center gap-2 rounded-lg bg-purple-600 px-5 py-2.5 text-sm font-medium text-white shadow-lg shadow-purple-500/20 transition-all hover:bg-purple-500`,children:[(0,R.jsx)(Ye,{className:`h-4 w-4`}),i(`graph:processFlow.copyMermaid`)]}),(0,R.jsx)(`button`,{onClick:t,className:`rounded-lg border border-white/10 bg-white/5 px-5 py-2.5 text-sm font-medium text-slate-300 transition-all hover:bg-white/10 hover:text-white`,children:i(`common:actions.close`)})]})]})}):null};export{M as _,et as a,Qe as c,Ye as d,Je as f,De as g,Ae as h,ui as i,Ze as l,I as m,Ea as n,z as o,ze as p,wa as r,$e as s,Da as t,Xe as u};