orbitchat 2.14.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -90
- package/bin/orbitchat.js +408 -429
- package/dist/assets/ChartRenderer-BEwTOgnq.js +80 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/MermaidRenderer-Cwj5RQ3g.js +260 -0
- package/dist/assets/MusicRenderer-jiCOczly.js +18 -0
- package/dist/assets/SVGRenderer-B7MdKpL3.js +6 -0
- package/dist/assets/_basePickBy-CYc6FJVo.js +1 -0
- package/dist/assets/_baseUniq-Db9U29CG.js +1 -0
- package/dist/assets/arc-BSnyvXPh.js +1 -0
- package/dist/assets/architectureDiagram-VXUJARFQ-ByDEpAtB.js +36 -0
- package/dist/assets/band-CquvqAHh.js +1 -0
- package/dist/assets/blockDiagram-VD42YOAC-DeU2cMg9.js +122 -0
- package/dist/assets/c4Diagram-YG6GDRKO-C9ykT6JL.js +10 -0
- package/dist/assets/channel-C4M311uf.js +1 -0
- package/dist/assets/chunk-4BX2VUAB-DSGrQP0T.js +1 -0
- package/dist/assets/chunk-55IACEB6-BqJf9Ja5.js +1 -0
- package/dist/assets/chunk-B4BG7PRW-CjLmShZ1.js +165 -0
- package/dist/assets/chunk-DI55MBZ5-DpYiJhBX.js +220 -0
- package/dist/assets/{chunk-FMBD7UC4-dPK7Boav-tO950uDG.js → chunk-FMBD7UC4-B_-ci5rY.js} +2 -2
- package/dist/assets/chunk-QN33PNHL-PupYKHzM.js +1 -0
- package/dist/assets/chunk-QZHKN3VN-Ddt7KdjH.js +1 -0
- package/dist/assets/chunk-TZMSLE5B-DFxHvBUh.js +1 -0
- package/dist/assets/classDiagram-2ON5EDUG-Brx1b2Nn.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-Brx1b2Nn.js +1 -0
- package/dist/assets/clone-C6___fhg.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-CoAwh2dl.js +1 -0
- package/dist/assets/cytoscape.esm-CyJtwmzi.js +331 -0
- package/dist/assets/dagre-6UL2VRFP-wqnQLI1r.js +4 -0
- package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/assets/diagram-PSM6KHXK-BThDYp3k.js +24 -0
- package/dist/assets/diagram-QEK2KX5R-QO0jbKYo.js +43 -0
- package/dist/assets/diagram-S2PKOQOG-DqXZQ_2w.js +24 -0
- package/dist/assets/erDiagram-Q2GNP2WA-BbHMUMHv.js +60 -0
- package/dist/assets/flowDiagram-NV44I4VS-BcZTJeWn.js +162 -0
- package/dist/assets/ganttDiagram-JELNMOA3-n27iVieA.js +267 -0
- package/dist/assets/gitGraphDiagram-V2S2FVAM-DaO03D0c.js +65 -0
- package/dist/assets/graph-CqgsEnyP.js +1 -0
- package/dist/assets/index-BLVU3y3C.js +624 -0
- package/dist/assets/index-DEMLXEhu.css +1 -0
- package/dist/assets/index-pVqH5W3l.js +134 -0
- package/dist/assets/infoDiagram-HS3SLOUP-DA9UPsCv.js +2 -0
- package/dist/assets/init-Dmth1JHB.js +1 -0
- package/dist/assets/journeyDiagram-XKPGCS4Q-DOnOrs8o.js +139 -0
- package/dist/assets/kanban-definition-3W4ZIXB7-CeCakzDJ.js +89 -0
- package/dist/assets/layout-D9Y_lOuO.js +1 -0
- package/dist/assets/linear-CKzVTQ0r.js +1 -0
- package/dist/assets/mindmap-definition-VGOIOE7T-DBP7KZgR.js +68 -0
- package/dist/assets/ordinal-DILIJJjt.js +1 -0
- package/dist/assets/pieDiagram-ADFJNKIX-DSpFXjVs.js +30 -0
- package/dist/assets/purify.es-A66Cw1IH.js +2 -0
- package/dist/assets/quadrantDiagram-AYHSOK5B-1w3noe3A.js +7 -0
- package/dist/assets/requirementDiagram-UZGBJVZJ-B9YzwP8J.js +64 -0
- package/dist/assets/sankeyDiagram-TZEHDZUN-FLiuEFVI.js +10 -0
- package/dist/assets/sequenceDiagram-WL72ISMW-BSJt3OHN.js +145 -0
- package/dist/assets/stateDiagram-FKZM4ZOC-Ch3MODOU.js +1 -0
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CT2uJHYZ.js +1 -0
- package/dist/assets/step-EjIQ8UIn.js +1 -0
- package/dist/assets/time-h5EapSZu.js +1 -0
- package/dist/assets/timeline-definition-IT6M3QCI-C_qTQlCc.js +61 -0
- package/dist/assets/treemap-GDKQZRPO-yzuGqs4o.js +160 -0
- package/dist/assets/xychartDiagram-PRI3JC2R-G6i_3Vla.js +7 -0
- package/dist/favicon.svg +3 -1
- package/dist/index.html +2 -2
- package/dist/logo.png +0 -0
- package/markdown-renderer/LICENSE +201 -0
- package/markdown-renderer/src/CodeBlock.tsx +332 -0
- package/markdown-renderer/src/MarkdownComponents.tsx +233 -0
- package/markdown-renderer/src/MarkdownStyles.css +668 -0
- package/markdown-renderer/src/css.d.ts +4 -0
- package/markdown-renderer/src/index.ts +32 -0
- package/markdown-renderer/src/preprocessing.ts +519 -0
- package/markdown-renderer/src/renderers/ChartRenderer.tsx +1434 -0
- package/markdown-renderer/src/renderers/MermaidRenderer.tsx +474 -0
- package/markdown-renderer/src/renderers/MusicRenderer.tsx +394 -0
- package/markdown-renderer/src/renderers/SVGRenderer.tsx +307 -0
- package/markdown-renderer/src/types.ts +174 -0
- package/orbitchat.sh +282 -0
- package/package.json +30 -4
- package/dist/assets/_baseUniq-BRKsqoH--CzpIYnbF.js +0 -1
- package/dist/assets/arc-pab_su9s-DhurQhL4.js +0 -1
- package/dist/assets/architectureDiagram-VXUJARFQ-DqQ8r_6g-eqA8fOch.js +0 -36
- package/dist/assets/blockDiagram-VD42YOAC-B-dKfcH3-DT3R176S.js +0 -122
- package/dist/assets/c4Diagram-YG6GDRKO-DMUPaBEl-q6bAZUce.js +0 -10
- package/dist/assets/channel-HKsfPa5q-DshlUHWu.js +0 -1
- package/dist/assets/chunk-4BX2VUAB-CX67kh_B-gkWPpLiy.js +0 -1
- package/dist/assets/chunk-55IACEB6-BocSyyvr-9ksZ29Ab.js +0 -1
- package/dist/assets/chunk-B4BG7PRW-CO8QAyfE-CNBeArXO.js +0 -165
- package/dist/assets/chunk-DI55MBZ5-Dw1L6Eos-BVbGVMNG.js +0 -220
- package/dist/assets/chunk-QN33PNHL-vP2PqfVG-Y3PYDsm9.js +0 -1
- package/dist/assets/chunk-QZHKN3VN-Bcidzu63-BAQ3PYro.js +0 -1
- package/dist/assets/chunk-TZMSLE5B-BtljMjlg-CwIvybWR.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-C7cYN9hv-CGN1Rq_o.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-C7cYN9hv-CGN1Rq_o.js +0 -1
- package/dist/assets/clone-DoPb9X13-C3rfr14F.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-BGzO4EsH-DtYXpCOp.js +0 -1
- package/dist/assets/cytoscape.esm-CjI2IsL8-Da6dFVsf.js +0 -331
- package/dist/assets/dagre-6UL2VRFP-TzNvXCds-xMthYtzg.js +0 -4
- package/dist/assets/diagram-PSM6KHXK-BqY4RpUg-CtQy_-7V.js +0 -24
- package/dist/assets/diagram-QEK2KX5R-CTjgBsne-DROkeGJL.js +0 -43
- package/dist/assets/diagram-S2PKOQOG-BqrhTIpA-Bv0e-7TM.js +0 -24
- package/dist/assets/erDiagram-Q2GNP2WA-B2hsi_Tl-BbvH-Jb1.js +0 -60
- package/dist/assets/flowDiagram-NV44I4VS-C03vtt_F-DT9Y-btb.js +0 -162
- package/dist/assets/ganttDiagram-JELNMOA3-B3hAg964-CnqUJtIB.js +0 -267
- package/dist/assets/gitGraphDiagram-NY62KEGX-ByhMH0yZ-CdQlDU7A.js +0 -65
- package/dist/assets/graph-BmNkcFEM-mCcAnvHY.js +0 -1
- package/dist/assets/index-BXexqYFc-D_cjFmh8.js +0 -134
- package/dist/assets/index-DBOy9259.css +0 -1
- package/dist/assets/index-zlswAhjt.js +0 -1010
- package/dist/assets/infoDiagram-WHAUD3N6-is6Ho4-T-BHS1wv7y.js +0 -2
- package/dist/assets/journeyDiagram-XKPGCS4Q-CRTOL26C-DkQ68DJ6.js +0 -139
- package/dist/assets/kanban-definition-3W4ZIXB7-CNnO_t6O-DWZm5JX4.js +0 -89
- package/dist/assets/layout-C0kZPebx-CygTh9Uo.js +0 -1
- package/dist/assets/min-7Gb0pNxh-BfuBtSqq.js +0 -1
- package/dist/assets/mindmap-definition-VGOIOE7T-CJZ2wTTa-B7rvUdG3.js +0 -68
- package/dist/assets/pieDiagram-ADFJNKIX-C9OSknjr-eiZAefZN.js +0 -30
- package/dist/assets/quadrantDiagram-AYHSOK5B-CW8yuAqv-DzBEpWQk.js +0 -7
- package/dist/assets/requirementDiagram-UZGBJVZJ-nGPhruO1-z5Z4Fwg9.js +0 -64
- package/dist/assets/sankeyDiagram-TZEHDZUN-CmL90u-m-Dk028WXo.js +0 -10
- package/dist/assets/sequenceDiagram-WL72ISMW-B02VRcnM-Cz8sPx_Q.js +0 -145
- package/dist/assets/stateDiagram-FKZM4ZOC-DjoyLUdz-BxsZBi1n.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-Bq76BTB7-BTybFIdr.js +0 -1
- package/dist/assets/timeline-definition-IT6M3QCI-CTn0Gm3T-CI07_-Ei.js +0 -61
- package/dist/assets/treemap-KMMF4GRG-BjgLKKyi-Dg9N7uMT.js +0 -128
- package/dist/assets/xychartDiagram-PRI3JC2R-Cgg6Uija-BDR2Lfu_.js +0 -7
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props for Mermaid diagram renderer
|
|
5
|
+
*/
|
|
6
|
+
export interface MermaidRendererProps {
|
|
7
|
+
code: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Props for SVG renderer
|
|
12
|
+
*/
|
|
13
|
+
export interface SVGRendererProps {
|
|
14
|
+
code: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Props for chart renderer
|
|
19
|
+
*/
|
|
20
|
+
export interface ChartRendererProps {
|
|
21
|
+
code: string;
|
|
22
|
+
language: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Props for music notation renderer
|
|
27
|
+
*/
|
|
28
|
+
export interface MusicRendererProps {
|
|
29
|
+
code: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type ChartValueFormat = 'number' | 'compact' | 'currency' | 'percent';
|
|
33
|
+
|
|
34
|
+
export interface ChartFormatterConfig {
|
|
35
|
+
format?: ChartValueFormat;
|
|
36
|
+
currency?: string;
|
|
37
|
+
decimals?: number;
|
|
38
|
+
minimumFractionDigits?: number;
|
|
39
|
+
maximumFractionDigits?: number;
|
|
40
|
+
prefix?: string;
|
|
41
|
+
suffix?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ChartSeriesConfig {
|
|
45
|
+
key: string;
|
|
46
|
+
name?: string;
|
|
47
|
+
type?: 'bar' | 'line' | 'area' | 'scatter';
|
|
48
|
+
color?: string;
|
|
49
|
+
yAxisId?: 'left' | 'right';
|
|
50
|
+
stackId?: string;
|
|
51
|
+
strokeWidth?: number;
|
|
52
|
+
dot?: boolean;
|
|
53
|
+
opacity?: number;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface ChartReferenceLineConfig {
|
|
57
|
+
x?: string | number;
|
|
58
|
+
y?: string | number;
|
|
59
|
+
label?: string;
|
|
60
|
+
color?: string;
|
|
61
|
+
strokeDasharray?: string;
|
|
62
|
+
position?: 'start' | 'middle' | 'end';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Chart configuration interface
|
|
67
|
+
*/
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
+
export type ChartDataItem = Record<string, any>;
|
|
70
|
+
|
|
71
|
+
export interface ChartConfig {
|
|
72
|
+
type: 'bar' | 'line' | 'pie' | 'area' | 'scatter' | 'composed';
|
|
73
|
+
title?: string;
|
|
74
|
+
description?: string;
|
|
75
|
+
data: ChartDataItem[];
|
|
76
|
+
dataKeys?: string[];
|
|
77
|
+
xKey?: string;
|
|
78
|
+
xAxisType?: 'category' | 'number';
|
|
79
|
+
colors?: string[];
|
|
80
|
+
width?: number;
|
|
81
|
+
height?: number;
|
|
82
|
+
stacked?: boolean;
|
|
83
|
+
showLegend?: boolean;
|
|
84
|
+
showGrid?: boolean;
|
|
85
|
+
xAxisLabel?: string;
|
|
86
|
+
yAxisLabel?: string;
|
|
87
|
+
yAxisRightLabel?: string;
|
|
88
|
+
formatter?: ChartFormatterConfig;
|
|
89
|
+
series?: ChartSeriesConfig[];
|
|
90
|
+
referenceLines?: ChartReferenceLineConfig[];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Props for the main MarkdownRenderer component
|
|
95
|
+
*/
|
|
96
|
+
export interface MarkdownRendererProps {
|
|
97
|
+
content: string;
|
|
98
|
+
className?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Optional flag to disable math rendering entirely if needed
|
|
101
|
+
*/
|
|
102
|
+
disableMath?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Enable graph rendering (default: true)
|
|
105
|
+
*/
|
|
106
|
+
enableGraphs?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Enable Mermaid diagram rendering (default: true)
|
|
109
|
+
*/
|
|
110
|
+
enableMermaid?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Enable SVG rendering (default: true)
|
|
113
|
+
*/
|
|
114
|
+
enableSVG?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Enable syntax highlighting for code blocks (default: true)
|
|
117
|
+
*/
|
|
118
|
+
enableSyntaxHighlighting?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Syntax highlighting theme: 'dark' or 'light' (default: 'dark')
|
|
121
|
+
*/
|
|
122
|
+
syntaxTheme?: 'dark' | 'light';
|
|
123
|
+
/**
|
|
124
|
+
* Enable chart rendering (default: true)
|
|
125
|
+
*/
|
|
126
|
+
enableCharts?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Enable music notation rendering (default: true)
|
|
129
|
+
*/
|
|
130
|
+
enableMusic?: boolean;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Props for CodeBlock component
|
|
135
|
+
*/
|
|
136
|
+
export interface CodeBlockProps {
|
|
137
|
+
inline?: boolean;
|
|
138
|
+
className?: string;
|
|
139
|
+
children?: ReactNode;
|
|
140
|
+
'data-block-code'?: string;
|
|
141
|
+
enableGraphs?: boolean;
|
|
142
|
+
enableMermaid?: boolean;
|
|
143
|
+
enableSVG?: boolean;
|
|
144
|
+
enableCharts?: boolean;
|
|
145
|
+
enableMusic?: boolean;
|
|
146
|
+
enableSyntaxHighlighting?: boolean;
|
|
147
|
+
syntaxTheme?: 'dark' | 'light';
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Set of block-level HTML tags that should not be wrapped in paragraph tags
|
|
152
|
+
*/
|
|
153
|
+
export const BLOCK_LEVEL_TAGS = new Set([
|
|
154
|
+
'div',
|
|
155
|
+
'pre',
|
|
156
|
+
'blockquote',
|
|
157
|
+
'ul',
|
|
158
|
+
'ol',
|
|
159
|
+
'table',
|
|
160
|
+
'thead',
|
|
161
|
+
'tbody',
|
|
162
|
+
'tr',
|
|
163
|
+
'td',
|
|
164
|
+
'th',
|
|
165
|
+
'h1',
|
|
166
|
+
'h2',
|
|
167
|
+
'h3',
|
|
168
|
+
'h4',
|
|
169
|
+
'h5',
|
|
170
|
+
'h6',
|
|
171
|
+
'section',
|
|
172
|
+
'article',
|
|
173
|
+
'figure',
|
|
174
|
+
]);
|
package/orbitchat.sh
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# OrbitChat Daemon Control Script
|
|
4
|
+
# ================================
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# ./orbitchat.sh --start [port] Start orbitchat in background
|
|
8
|
+
# ./orbitchat.sh --stop Stop orbitchat
|
|
9
|
+
# ./orbitchat.sh --restart [port] Restart orbitchat
|
|
10
|
+
# ./orbitchat.sh --force-restart [port] Force-kill port listeners and restart
|
|
11
|
+
# ./orbitchat.sh --status Check if orbitchat is running
|
|
12
|
+
# ./orbitchat.sh --help Show this help message
|
|
13
|
+
#
|
|
14
|
+
# All application settings are in orbitchat.yaml (next to this script).
|
|
15
|
+
# Only adapter secrets (API keys) are set here via VITE_ADAPTERS.
|
|
16
|
+
#
|
|
17
|
+
# Files:
|
|
18
|
+
# PID file: <script_dir>/orbitchat.pid
|
|
19
|
+
# Log file: <script_dir>/orbitchat.log
|
|
20
|
+
#
|
|
21
|
+
|
|
22
|
+
# Get the directory where this script is located (works on Mac and Linux)
|
|
23
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
24
|
+
|
|
25
|
+
PIDFILE="$SCRIPT_DIR/orbitchat.pid"
|
|
26
|
+
LOGFILE="$SCRIPT_DIR/orbitchat.log"
|
|
27
|
+
PORT="${ORBITCHAT_PORT:-5173}"
|
|
28
|
+
CONFIG_FILE="$SCRIPT_DIR/orbitchat.yaml"
|
|
29
|
+
ACTION=""
|
|
30
|
+
FORCE_RESTART=false
|
|
31
|
+
|
|
32
|
+
# When installed as an npm package, default config often lives in current directory.
|
|
33
|
+
if [ ! -f "$CONFIG_FILE" ] && [ -f "$(pwd)/orbitchat.yaml" ]; then
|
|
34
|
+
CONFIG_FILE="$(pwd)/orbitchat.yaml"
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
export NODE_OPTIONS="--no-deprecation"
|
|
38
|
+
|
|
39
|
+
# Adapter secrets (API keys) — the only env var needed.
|
|
40
|
+
# All other settings live in orbitchat.yaml.
|
|
41
|
+
|
|
42
|
+
export ORBIT_ADAPTERS='[
|
|
43
|
+
{ "name": "Simple Chat","apiKey":"default-key","apiUrl":"http://localhost:3000"},
|
|
44
|
+
{ "name": "Chat With Files","apiKey":"multimodal","apiUrl":"http://localhost:3000"}
|
|
45
|
+
]'
|
|
46
|
+
|
|
47
|
+
start_app() {
|
|
48
|
+
if [ ! -f "$CONFIG_FILE" ]; then
|
|
49
|
+
echo "Error: config file not found: $CONFIG_FILE"
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
if command -v lsof >/dev/null 2>&1; then
|
|
54
|
+
local existing_pids
|
|
55
|
+
existing_pids=$(lsof -tiTCP:"$PORT" -sTCP:LISTEN 2>/dev/null | tr '\n' ' ' | xargs)
|
|
56
|
+
if [ -n "$existing_pids" ]; then
|
|
57
|
+
if [ "$FORCE_RESTART" = true ]; then
|
|
58
|
+
echo "Port $PORT is in use by PID(s): $existing_pids. Stopping them (--force-restart)..."
|
|
59
|
+
kill $existing_pids 2>/dev/null || true
|
|
60
|
+
sleep 1
|
|
61
|
+
|
|
62
|
+
existing_pids=$(lsof -tiTCP:"$PORT" -sTCP:LISTEN 2>/dev/null | tr '\n' ' ' | xargs)
|
|
63
|
+
if [ -n "$existing_pids" ]; then
|
|
64
|
+
echo "Port $PORT still in use by PID(s): $existing_pids. Sending SIGKILL..."
|
|
65
|
+
kill -9 $existing_pids 2>/dev/null || true
|
|
66
|
+
sleep 1
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
existing_pids=$(lsof -tiTCP:"$PORT" -sTCP:LISTEN 2>/dev/null | tr '\n' ' ' | xargs)
|
|
70
|
+
if [ -n "$existing_pids" ]; then
|
|
71
|
+
echo "Error: failed to free port $PORT (still used by PID(s): $existing_pids)."
|
|
72
|
+
exit 1
|
|
73
|
+
fi
|
|
74
|
+
rm -f "$PIDFILE"
|
|
75
|
+
else
|
|
76
|
+
echo "Error: port $PORT is already in use by PID(s): $existing_pids."
|
|
77
|
+
echo "Stop the existing process first (or use --force-restart)."
|
|
78
|
+
exit 1
|
|
79
|
+
fi
|
|
80
|
+
fi
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
|
|
84
|
+
echo "orbitchat is already running (PID: $(cat "$PIDFILE"))"
|
|
85
|
+
exit 1
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
echo "Starting orbitchat on port $PORT with config $CONFIG_FILE..."
|
|
89
|
+
|
|
90
|
+
nohup orbitchat --port "$PORT" --host 0.0.0.0 --config "$CONFIG_FILE" \
|
|
91
|
+
> "$LOGFILE" 2>&1 &
|
|
92
|
+
|
|
93
|
+
local started_pid=$!
|
|
94
|
+
echo "$started_pid" > "$PIDFILE"
|
|
95
|
+
sleep 1
|
|
96
|
+
|
|
97
|
+
if ! kill -0 "$started_pid" 2>/dev/null; then
|
|
98
|
+
echo "Failed to start orbitchat (process exited early)."
|
|
99
|
+
echo "Last log lines:"
|
|
100
|
+
tail -n 40 "$LOGFILE" 2>/dev/null || true
|
|
101
|
+
rm -f "$PIDFILE"
|
|
102
|
+
exit 1
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
echo ""
|
|
106
|
+
echo "✓ orbitchat started (PID: $started_pid)"
|
|
107
|
+
echo ""
|
|
108
|
+
echo " Open in browser: http://localhost:$PORT"
|
|
109
|
+
echo " Logs: $LOGFILE"
|
|
110
|
+
echo ""
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
stop_app() {
|
|
114
|
+
if [ ! -f "$PIDFILE" ]; then
|
|
115
|
+
echo "orbitchat is not running (no PID file)"
|
|
116
|
+
exit 1
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
PID=$(cat "$PIDFILE")
|
|
120
|
+
if kill -0 "$PID" 2>/dev/null; then
|
|
121
|
+
echo "Stopping orbitchat (PID: $PID)..."
|
|
122
|
+
kill "$PID"
|
|
123
|
+
rm -f "$PIDFILE"
|
|
124
|
+
echo "orbitchat stopped"
|
|
125
|
+
else
|
|
126
|
+
echo "orbitchat is not running (stale PID file)"
|
|
127
|
+
rm -f "$PIDFILE"
|
|
128
|
+
fi
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
status_app() {
|
|
132
|
+
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
|
|
133
|
+
echo "orbitchat is running (PID: $(cat "$PIDFILE"))"
|
|
134
|
+
echo " URL: http://localhost:$PORT"
|
|
135
|
+
echo " Config: $CONFIG_FILE"
|
|
136
|
+
else
|
|
137
|
+
if command -v lsof >/dev/null 2>&1; then
|
|
138
|
+
local port_pid
|
|
139
|
+
port_pid=$(lsof -tiTCP:"$PORT" -sTCP:LISTEN 2>/dev/null | head -n 1)
|
|
140
|
+
if [ -n "$port_pid" ]; then
|
|
141
|
+
echo "orbitchat PID file is stale, but port $PORT is active (PID: $port_pid)."
|
|
142
|
+
echo " URL: http://localhost:$PORT"
|
|
143
|
+
echo " Config (requested): $CONFIG_FILE"
|
|
144
|
+
return
|
|
145
|
+
fi
|
|
146
|
+
fi
|
|
147
|
+
echo "orbitchat is not running"
|
|
148
|
+
fi
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
restart_app() {
|
|
152
|
+
if [ -f "$PIDFILE" ]; then
|
|
153
|
+
PID=$(cat "$PIDFILE")
|
|
154
|
+
if kill -0 "$PID" 2>/dev/null; then
|
|
155
|
+
echo "Stopping orbitchat (PID: $PID)..."
|
|
156
|
+
kill "$PID"
|
|
157
|
+
sleep 1
|
|
158
|
+
fi
|
|
159
|
+
rm -f "$PIDFILE"
|
|
160
|
+
fi
|
|
161
|
+
start_app
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
show_help() {
|
|
165
|
+
echo "OrbitChat Daemon Control Script"
|
|
166
|
+
echo "================================"
|
|
167
|
+
echo ""
|
|
168
|
+
echo "Usage: $0 [options] {--start [port]|--stop|--restart [port]|--force-restart [port]|--status|--help}"
|
|
169
|
+
echo ""
|
|
170
|
+
echo "Options:"
|
|
171
|
+
echo " --config [file] Use specific YAML configuration file (default: orbitchat.yaml)"
|
|
172
|
+
echo " --force-restart [port] Kill any process using the target port, then restart"
|
|
173
|
+
echo " --start [port] Start orbitchat in background (optionally specify port)"
|
|
174
|
+
echo " --stop Stop orbitchat"
|
|
175
|
+
echo " --restart [port] Restart orbitchat (optionally specify port)"
|
|
176
|
+
echo " --status Check if orbitchat is running"
|
|
177
|
+
echo " --help Show this help message"
|
|
178
|
+
echo ""
|
|
179
|
+
echo "Environment variables:"
|
|
180
|
+
echo " ORBITCHAT_PORT Port to run on (default: 5173)"
|
|
181
|
+
echo ""
|
|
182
|
+
echo "All application settings are in orbitchat.yaml by default."
|
|
183
|
+
echo "Adapter secrets (API keys) are set via VITE_ADAPTERS env var in this script."
|
|
184
|
+
echo ""
|
|
185
|
+
echo "Examples:"
|
|
186
|
+
echo " $0 --start # Start on default port 5173"
|
|
187
|
+
echo " $0 --start 8080 # Start on port 8080"
|
|
188
|
+
echo " $0 --config custom.yaml --start # Start with custom config"
|
|
189
|
+
echo " $0 --force-restart # Force free default port, then restart"
|
|
190
|
+
echo " $0 --force-restart 8080 # Force free port 8080, then restart"
|
|
191
|
+
echo " $0 --force-restart --start # Also works as a flag before --start"
|
|
192
|
+
echo " ORBITCHAT_PORT=8080 $0 --start # Start on port 8080 (env var)"
|
|
193
|
+
echo ""
|
|
194
|
+
echo "Files (stored in script directory):"
|
|
195
|
+
echo " PID file: $PIDFILE"
|
|
196
|
+
echo " Log file: $LOGFILE"
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# Parse arguments
|
|
200
|
+
while [[ $# -gt 0 ]]; do
|
|
201
|
+
case "$1" in
|
|
202
|
+
--start)
|
|
203
|
+
ACTION="start"
|
|
204
|
+
shift
|
|
205
|
+
if [[ -n "$1" && "$1" != --* ]]; then
|
|
206
|
+
PORT="$1"
|
|
207
|
+
shift
|
|
208
|
+
fi
|
|
209
|
+
;;
|
|
210
|
+
--stop)
|
|
211
|
+
ACTION="stop"
|
|
212
|
+
shift
|
|
213
|
+
;;
|
|
214
|
+
--restart)
|
|
215
|
+
ACTION="restart"
|
|
216
|
+
shift
|
|
217
|
+
if [[ -n "$1" && "$1" != --* ]]; then
|
|
218
|
+
PORT="$1"
|
|
219
|
+
shift
|
|
220
|
+
fi
|
|
221
|
+
;;
|
|
222
|
+
--force-restart)
|
|
223
|
+
FORCE_RESTART=true
|
|
224
|
+
if [[ -n "$2" && "$2" != --* ]]; then
|
|
225
|
+
PORT="$2"
|
|
226
|
+
shift 2
|
|
227
|
+
else
|
|
228
|
+
shift
|
|
229
|
+
fi
|
|
230
|
+
if [[ -z "$ACTION" ]]; then
|
|
231
|
+
ACTION="force-restart"
|
|
232
|
+
fi
|
|
233
|
+
;;
|
|
234
|
+
--status)
|
|
235
|
+
ACTION="status"
|
|
236
|
+
shift
|
|
237
|
+
;;
|
|
238
|
+
--config)
|
|
239
|
+
if [[ -n "$2" ]]; then
|
|
240
|
+
if [[ "$2" = /* ]]; then
|
|
241
|
+
CONFIG_FILE="$2"
|
|
242
|
+
else
|
|
243
|
+
CONFIG_FILE="$(cd "$(pwd)" && pwd)/$2"
|
|
244
|
+
fi
|
|
245
|
+
shift 2
|
|
246
|
+
else
|
|
247
|
+
echo "Error: --config requires a file path"
|
|
248
|
+
exit 1
|
|
249
|
+
fi
|
|
250
|
+
;;
|
|
251
|
+
--help)
|
|
252
|
+
show_help
|
|
253
|
+
exit 0
|
|
254
|
+
;;
|
|
255
|
+
*)
|
|
256
|
+
show_help
|
|
257
|
+
exit 1
|
|
258
|
+
;;
|
|
259
|
+
esac
|
|
260
|
+
done
|
|
261
|
+
|
|
262
|
+
case "$ACTION" in
|
|
263
|
+
start)
|
|
264
|
+
start_app
|
|
265
|
+
;;
|
|
266
|
+
stop)
|
|
267
|
+
stop_app
|
|
268
|
+
;;
|
|
269
|
+
restart)
|
|
270
|
+
restart_app
|
|
271
|
+
;;
|
|
272
|
+
force-restart)
|
|
273
|
+
restart_app
|
|
274
|
+
;;
|
|
275
|
+
status)
|
|
276
|
+
status_app
|
|
277
|
+
;;
|
|
278
|
+
*)
|
|
279
|
+
show_help
|
|
280
|
+
exit 1
|
|
281
|
+
;;
|
|
282
|
+
esac
|
package/package.json
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orbitchat",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.1.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"orbitchat": "./bin/orbitchat.js"
|
|
7
|
+
"orbitchat": "./bin/orbitchat.js",
|
|
8
|
+
"orbitchat-daemon": "./orbitchat.sh"
|
|
8
9
|
},
|
|
9
10
|
"files": [
|
|
10
11
|
"bin",
|
|
11
12
|
"dist",
|
|
13
|
+
"orbitchat.sh",
|
|
14
|
+
"markdown-renderer/src",
|
|
15
|
+
"!markdown-renderer/src/demo",
|
|
16
|
+
"!markdown-renderer/src/demo/**",
|
|
17
|
+
"!markdown-renderer/package.json",
|
|
18
|
+
"!markdown-renderer/README.md",
|
|
19
|
+
"markdown-renderer/LICENSE",
|
|
12
20
|
"README.md",
|
|
13
21
|
"package.json"
|
|
14
22
|
],
|
|
@@ -19,21 +27,37 @@
|
|
|
19
27
|
"build:local": "VITE_USE_LOCAL_API=true tsc && vite build",
|
|
20
28
|
"build:api": "cd ../node-api && npm run build && mkdir -p ../chat-app/src/api/local && cp dist/api.mjs ../chat-app/src/api/local/api.mjs && cp dist/api.mjs.map ../chat-app/src/api/local/api.mjs.map && cp dist/api.d.ts ../chat-app/src/api/local/api.d.ts",
|
|
21
29
|
"dev:with-api": "npm run build:api && npm run dev:local",
|
|
22
|
-
"lint": "
|
|
30
|
+
"lint": "npm run lint:app",
|
|
31
|
+
"lint:app": "eslint . --report-unused-disable-directives --max-warnings 0",
|
|
32
|
+
"lint:renderer": "eslint --config markdown-renderer/eslint.config.js \"markdown-renderer/src/**/*.{ts,tsx}\"",
|
|
33
|
+
"lint:all": "npm run lint:app && npm run lint:renderer",
|
|
23
34
|
"preview": "vite preview",
|
|
24
35
|
"preview:local": "VITE_USE_LOCAL_API=true vite preview",
|
|
25
36
|
"test": "node --test 'tests/**/*.test.js'",
|
|
26
37
|
"prepublishOnly": "npm run build"
|
|
27
38
|
},
|
|
28
39
|
"dependencies": {
|
|
29
|
-
"@
|
|
40
|
+
"@auth0/auth0-react": "^2.15.0",
|
|
41
|
+
"abcjs": "^6.5.2",
|
|
42
|
+
"ajv": "^8.17.1",
|
|
43
|
+
"dompurify": "^3.0.8",
|
|
30
44
|
"express": "^5.0.1",
|
|
45
|
+
"express-rate-limit": "^8.2.1",
|
|
31
46
|
"http-proxy-middleware": "^3.0.5",
|
|
32
47
|
"js-yaml": "^4.1.1",
|
|
48
|
+
"katex": "^0.16.27",
|
|
33
49
|
"lucide-react": "^0.469.0",
|
|
50
|
+
"mermaid": "^11.12.2",
|
|
34
51
|
"path": "^0.12.7",
|
|
35
52
|
"react": "^19.0.0",
|
|
36
53
|
"react-dom": "^19.0.0",
|
|
54
|
+
"react-markdown": "^10.1.0",
|
|
55
|
+
"react-syntax-highlighter": "^15.5.0",
|
|
56
|
+
"recharts": "^3.7.0",
|
|
57
|
+
"rehype-katex": "^7.0.1",
|
|
58
|
+
"remark-gfm": "^4.0.1",
|
|
59
|
+
"remark-math": "^6.0.0",
|
|
60
|
+
"unified": "^11.0.5",
|
|
37
61
|
"vite-plugin-dts": "^4.5.4",
|
|
38
62
|
"zustand": "^5.0.5"
|
|
39
63
|
},
|
|
@@ -44,6 +68,8 @@
|
|
|
44
68
|
"@types/node": "^24.0.1",
|
|
45
69
|
"@types/react": "^19.0.0",
|
|
46
70
|
"@types/react-dom": "^19.0.0",
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
72
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
47
73
|
"@vitejs/plugin-react": "^4.2.1",
|
|
48
74
|
"autoprefixer": "^10.4.19",
|
|
49
75
|
"eslint": "^9.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aS as Q,bH as cr,bI as ir,aK as h,aL as U,bJ as L,bK as lr,aO as sr,by as k,br as P,bL as vr,bM as br,aP as hr,bN as V,bn as N,bo as T,bO as gr,bw as _,aG as pr,bP as x,bQ as yr,aT as dr}from"./index-zlswAhjt.js";var jr="[object Symbol]";function B(r){return typeof r=="symbol"||k(r)&&vr(r)==jr}function _r(r,t){for(var e=-1,n=r==null?0:r.length,a=Array(n);++e<n;)a[e]=t(r[e],e,r);return a}var E=_?_.prototype:void 0,G=E?E.toString:void 0;function W(r){if(typeof r=="string")return r;if(h(r))return _r(r,W)+"";if(B(r))return G?G.call(r):"";var t=r+"";return t=="0"&&1/r==-1/0?"-0":t}function mr(){}function wr(r,t){for(var e=-1,n=r==null?0:r.length;++e<n&&t(r[e],e,r)!==!1;);return r}function Or(r,t,e,n){for(var a=r.length,u=e+-1;++u<a;)if(t(r[u],u,r))return u;return-1}function Sr(r){return r!==r}function Pr(r,t,e){for(var n=e-1,a=r.length;++n<a;)if(r[n]===t)return n;return-1}function Ar(r,t,e){return t===t?Pr(r,t,e):Or(r,Sr,e)}function Lr(r,t){var e=r==null?0:r.length;return!!e&&Ar(r,t,0)>-1}function C(r){return Q(r)?cr(r):ir(r)}var $r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kr=/^\w*$/;function z(r,t){if(h(r))return!1;var e=typeof r;return e=="number"||e=="symbol"||e=="boolean"||r==null||B(r)?!0:kr.test(r)||!$r.test(r)||t!=null&&r in Object(t)}var Br=500;function Cr(r){var t=yr(r,function(n){return e.size===Br&&e.clear(),n}),e=t.cache;return t}var zr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dr=/\\(\\)?/g,Fr=Cr(function(r){var t=[];return r.charCodeAt(0)===46&&t.push(""),r.replace(zr,function(e,n,a,u){t.push(a?u.replace(Dr,"$1"):n||e)}),t});function Kr(r){return r==null?"":W(r)}function X(r,t){return h(r)?r:z(r,t)?[r]:Fr(Kr(r))}function A(r){if(typeof r=="string"||B(r))return r;var t=r+"";return t=="0"&&1/r==-1/0?"-0":t}function rr(r,t){t=X(t,r);for(var e=0,n=t.length;r!=null&&e<n;)r=r[A(t[e++])];return e&&e==n?r:void 0}function Mr(r,t,e){var n=r==null?void 0:rr(r,t);return n===void 0?e:n}function tr(r,t){for(var e=-1,n=t.length,a=r.length;++e<n;)r[a+e]=t[e];return r}var I=_?_.isConcatSpreadable:void 0;function Nr(r){return h(r)||V(r)||!!(I&&r&&r[I])}function Gt(r,t,e,n,a){var u=-1,o=r.length;for(e||(e=Nr),a||(a=[]);++u<o;){var f=r[u];e(f)?tr(a,f):n||(a[a.length]=f)}return a}function Tr(r,t,e,n){var a=-1,u=r==null?0:r.length;for(n&&u&&(e=r[++a]);++a<u;)e=t(e,r[a],a,r);return e}function er(r,t){for(var e=-1,n=r==null?0:r.length,a=0,u=[];++e<n;){var o=r[e];t(o,e,r)&&(u[a++]=o)}return u}function xr(){return[]}var Er=Object.prototype,Gr=Er.propertyIsEnumerable,J=Object.getOwnPropertySymbols,Ir=J?function(r){return r==null?[]:(r=Object(r),er(J(r),function(t){return Gr.call(r,t)}))}:xr;function Jr(r,t,e){var n=t(r);return h(r)?n:tr(n,e(r))}function q(r){return Jr(r,C,Ir)}var qr="__lodash_hash_undefined__";function Rr(r){return this.__data__.set(r,qr),this}function Yr(r){return this.__data__.has(r)}function m(r){var t=-1,e=r==null?0:r.length;for(this.__data__=new lr;++t<e;)this.add(r[t])}m.prototype.add=m.prototype.push=Rr;m.prototype.has=Yr;function Zr(r,t){for(var e=-1,n=r==null?0:r.length;++e<n;)if(t(r[e],e,r))return!0;return!1}function nr(r,t){return r.has(t)}var Hr=1,Qr=2;function ur(r,t,e,n,a,u){var o=e&Hr,f=r.length,c=t.length;if(f!=c&&!(o&&c>f))return!1;var v=u.get(r),l=u.get(t);if(v&&l)return v==t&&l==r;var i=-1,s=!0,p=e&Qr?new m:void 0;for(u.set(r,t),u.set(t,r);++i<f;){var b=r[i],g=t[i];if(n)var y=o?n(g,b,i,t,r,u):n(b,g,i,r,t,u);if(y!==void 0){if(y)continue;s=!1;break}if(p){if(!Zr(t,function(d,j){if(!nr(p,j)&&(b===d||a(b,d,e,n,u)))return p.push(j)})){s=!1;break}}else if(!(b===g||a(b,g,e,n,u))){s=!1;break}}return u.delete(r),u.delete(t),s}function Ur(r){var t=-1,e=Array(r.size);return r.forEach(function(n,a){e[++t]=[a,n]}),e}function D(r){var t=-1,e=Array(r.size);return r.forEach(function(n){e[++t]=n}),e}var Vr=1,Wr=2,Xr="[object Boolean]",rt="[object Date]",tt="[object Error]",et="[object Map]",nt="[object Number]",ut="[object RegExp]",at="[object Set]",ot="[object String]",ft="[object Symbol]",ct="[object ArrayBuffer]",it="[object DataView]",R=_?_.prototype:void 0,$=R?R.valueOf:void 0;function lt(r,t,e,n,a,u,o){switch(e){case it:if(r.byteLength!=t.byteLength||r.byteOffset!=t.byteOffset)return!1;r=r.buffer,t=t.buffer;case ct:return!(r.byteLength!=t.byteLength||!u(new x(r),new x(t)));case Xr:case rt:case nt:return pr(+r,+t);case tt:return r.name==t.name&&r.message==t.message;case ut:case ot:return r==t+"";case et:var f=Ur;case at:var c=n&Vr;if(f||(f=D),r.size!=t.size&&!c)return!1;var v=o.get(r);if(v)return v==t;n|=Wr,o.set(r,t);var l=ur(f(r),f(t),n,a,u,o);return o.delete(r),l;case ft:if($)return $.call(r)==$.call(t)}return!1}var st=1,vt=Object.prototype,bt=vt.hasOwnProperty;function ht(r,t,e,n,a,u){var o=e&st,f=q(r),c=f.length,v=q(t),l=v.length;if(c!=l&&!o)return!1;for(var i=c;i--;){var s=f[i];if(!(o?s in t:bt.call(t,s)))return!1}var p=u.get(r),b=u.get(t);if(p&&b)return p==t&&b==r;var g=!0;u.set(r,t),u.set(t,r);for(var y=o;++i<c;){s=f[i];var d=r[s],j=t[s];if(n)var M=o?n(j,d,s,t,r,u):n(d,j,s,r,t,u);if(!(M===void 0?d===j||a(d,j,e,n,u):M)){g=!1;break}y||(y=s=="constructor")}if(g&&!y){var w=r.constructor,O=t.constructor;w!=O&&"constructor"in r&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof O=="function"&&O instanceof O)&&(g=!1)}return u.delete(r),u.delete(t),g}var gt=1,Y="[object Arguments]",Z="[object Array]",S="[object Object]",pt=Object.prototype,H=pt.hasOwnProperty;function yt(r,t,e,n,a,u){var o=h(r),f=h(t),c=o?Z:N(r),v=f?Z:N(t);c=c==Y?S:c,v=v==Y?S:v;var l=c==S,i=v==S,s=c==v;if(s&&T(r)){if(!T(t))return!1;o=!0,l=!1}if(s&&!l)return u||(u=new P),o||gr(r)?ur(r,t,e,n,a,u):lt(r,t,c,e,n,a,u);if(!(e>)){var p=l&&H.call(r,"__wrapped__"),b=i&&H.call(t,"__wrapped__");if(p||b){var g=p?r.value():r,y=b?t.value():t;return u||(u=new P),a(g,y,e,n,u)}}return s?(u||(u=new P),ht(r,t,e,n,a,u)):!1}function F(r,t,e,n,a){return r===t?!0:r==null||t==null||!k(r)&&!k(t)?r!==r&&t!==t:yt(r,t,e,n,F,a)}var dt=1,jt=2;function _t(r,t,e,n){var a=e.length,u=a;if(r==null)return!u;for(r=Object(r);a--;){var o=e[a];if(o[2]?o[1]!==r[o[0]]:!(o[0]in r))return!1}for(;++a<u;){o=e[a];var f=o[0],c=r[f],v=o[1];if(o[2]){if(c===void 0&&!(f in r))return!1}else{var l=new P,i;if(!(i===void 0?F(v,c,dt|jt,n,l):i))return!1}}return!0}function ar(r){return r===r&&!sr(r)}function mt(r){for(var t=C(r),e=t.length;e--;){var n=t[e],a=r[n];t[e]=[n,a,ar(a)]}return t}function or(r,t){return function(e){return e==null?!1:e[r]===t&&(t!==void 0||r in Object(e))}}function wt(r){var t=mt(r);return t.length==1&&t[0][2]?or(t[0][0],t[0][1]):function(e){return e===r||_t(e,r,t)}}function Ot(r,t){return r!=null&&t in Object(r)}function St(r,t,e){t=X(t,r);for(var n=-1,a=t.length,u=!1;++n<a;){var o=A(t[n]);if(!(u=r!=null&&e(r,o)))break;r=r[o]}return u||++n!=a?u:(a=r==null?0:r.length,!!a&&br(a)&&hr(o,a)&&(h(r)||V(r)))}function Pt(r,t){return r!=null&&St(r,t,Ot)}var At=1,Lt=2;function $t(r,t){return z(r)&&ar(t)?or(A(r),t):function(e){var n=Mr(e,r);return n===void 0&&n===t?Pt(e,r):F(t,n,At|Lt)}}function kt(r){return function(t){return t==null?void 0:t[r]}}function Bt(r){return function(t){return rr(t,r)}}function Ct(r){return z(r)?kt(A(r)):Bt(r)}function fr(r){return typeof r=="function"?r:r==null?U:typeof r=="object"?h(r)?$t(r[0],r[1]):wt(r):Ct(r)}function zt(r,t){return r&&dr(r,t,C)}function Dt(r,t){return function(e,n){if(e==null)return e;if(!Q(e))return r(e,n);for(var a=e.length,u=-1,o=Object(e);++u<a&&n(o[u],u,o)!==!1;);return e}}var K=Dt(zt);function Ft(r){return typeof r=="function"?r:U}function It(r,t){var e=h(r)?wr:K;return e(r,Ft(t))}function Kt(r,t){var e=[];return K(r,function(n,a,u){t(n,a,u)&&e.push(n)}),e}function Jt(r,t){var e=h(r)?er:Kt;return e(r,fr(t))}function Mt(r,t,e,n,a){return a(r,function(u,o,f){e=n?(n=!1,u):t(e,u,o,f)}),e}function qt(r,t,e){var n=h(r)?Tr:Mt,a=arguments.length<3;return n(r,fr(t),e,a,K)}var Nt=1/0,Tt=L&&1/D(new L([,-0]))[1]==Nt?function(r){return new L(r)}:mr,xt=200;function Rt(r,t,e){var n=-1,a=Lr,u=r.length,o=!0,f=[],c=f;if(u>=xt){var v=t?null:Tt(r);if(v)return D(v);o=!1,a=nr,c=new m}else c=t?[]:f;r:for(;++n<u;){var l=r[n],i=t?t(l):l;if(l=l!==0?l:0,o&&i===i){for(var s=c.length;s--;)if(c[s]===i)continue r;t&&c.push(i),f.push(l)}else a(c,i,e)||(c!==f&&c.push(i),f.push(l))}return f}export{zt as $,Gt as B,wr as E,Ft as F,Kr as G,A as I,Rt as J,xr as K,C as M,St as T,qt as Y,Jt as Z,fr as a,Pt as b,Or as c,Ir as d,q as e,Jr as f,K as g,X as j,rr as n,It as q,tr as r,_r as v,B as x};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a$ as sn,b0 as an,b1 as l,ar as on,b2 as j,b3 as F,b4 as E,b5 as un,b6 as cn,b7 as Y,b8 as e,ap as G,b9 as en,ba as rn,bb as yn}from"./index-zlswAhjt.js";function fn(i){return i.innerRadius}function ln(i){return i.outerRadius}function gn(i){return i.startAngle}function pn(i){return i.endAngle}function xn(i){return i&&i.padAngle}function mn(i,d,C,W,v,b,H,a){var I=C-i,r=W-d,n=H-v,p=a-b,u=p*I-n*r;if(!(u*u<l))return u=(n*(d-b)-p*(i-v))/u,[i+u*I,d+u*r]}function M(i,d,C,W,v,b,H){var a=i-C,I=d-W,r=(H?b:-b)/Y(a*a+I*I),n=r*I,p=-r*a,u=i+n,s=d+p,y=C+n,f=W+p,P=(u+y)/2,o=(s+f)/2,x=y-u,g=f-s,O=x*x+g*g,T=v-b,A=u*f-y*s,L=(g<0?-1:1)*Y(en(0,T*T*O-A*A)),q=(A*g-x*L)/O,D=(-A*x-g*L)/O,R=(A*g+x*L)/O,m=(-A*x+g*L)/O,h=q-P,t=D-o,c=R-P,_=m-o;return h*h+t*t>c*c+_*_&&(q=R,D=m),{cx:q,cy:D,x01:-n,y01:-p,x11:q*(v/T-1),y11:D*(v/T-1)}}function dn(){var i=fn,d=ln,C=G(0),W=null,v=gn,b=pn,H=xn,a=null,I=sn(r);function r(){var n,p,u=+i.apply(this,arguments),s=+d.apply(this,arguments),y=v.apply(this,arguments)-an,f=b.apply(this,arguments)-an,P=un(f-y),o=f>y;if(a||(a=n=I()),s<u&&(p=s,s=u,u=p),!(s>l))a.moveTo(0,0);else if(P>on-l)a.moveTo(s*j(y),s*F(y)),a.arc(0,0,s,y,f,!o),u>l&&(a.moveTo(u*j(f),u*F(f)),a.arc(0,0,u,f,y,o));else{var x=y,g=f,O=y,T=f,A=P,L=P,q=H.apply(this,arguments)/2,D=q>l&&(W?+W.apply(this,arguments):Y(u*u+s*s)),R=E(un(s-u)/2,+C.apply(this,arguments)),m=R,h=R,t,c;if(D>l){var _=rn(D/u*F(q)),$=rn(D/s*F(q));(A-=_*2)>l?(_*=o?1:-1,O+=_,T-=_):(A=0,O=T=(y+f)/2),(L-=$*2)>l?($*=o?1:-1,x+=$,g-=$):(L=0,x=g=(y+f)/2)}var z=s*j(x),S=s*F(x),k=u*j(T),N=u*F(T);if(R>l){var X=s*j(g),Z=s*F(g),Q=u*j(O),U=u*F(O),B;if(P<cn)if(B=mn(z,S,Q,U,X,Z,k,N)){var V=z-B[0],w=S-B[1],J=X-B[0],K=Z-B[1],nn=1/F(yn((V*J+w*K)/(Y(V*V+w*w)*Y(J*J+K*K)))/2),tn=Y(B[0]*B[0]+B[1]*B[1]);m=E(R,(u-tn)/(nn-1)),h=E(R,(s-tn)/(nn+1))}else m=h=0}L>l?h>l?(t=M(Q,U,z,S,s,h,o),c=M(X,Z,k,N,s,h,o),a.moveTo(t.cx+t.x01,t.cy+t.y01),h<R?a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,s,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),!o),a.arc(c.cx,c.cy,h,e(c.y11,c.x11),e(c.y01,c.x01),!o))):(a.moveTo(z,S),a.arc(0,0,s,x,g,!o)):a.moveTo(z,S),!(u>l)||!(A>l)?a.lineTo(k,N):m>l?(t=M(k,N,X,Z,u,-m,o),c=M(z,S,Q,U,u,-m,o),a.lineTo(t.cx+t.x01,t.cy+t.y01),m<R?a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,u,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),o),a.arc(c.cx,c.cy,m,e(c.y11,c.x11),e(c.y01,c.x01),!o))):a.arc(0,0,u,T,O,o)}if(a.closePath(),n)return a=null,n+""||null}return r.centroid=function(){var n=(+i.apply(this,arguments)+ +d.apply(this,arguments))/2,p=(+v.apply(this,arguments)+ +b.apply(this,arguments))/2-cn/2;return[j(p)*n,F(p)*n]},r.innerRadius=function(n){return arguments.length?(i=typeof n=="function"?n:G(+n),r):i},r.outerRadius=function(n){return arguments.length?(d=typeof n=="function"?n:G(+n),r):d},r.cornerRadius=function(n){return arguments.length?(C=typeof n=="function"?n:G(+n),r):C},r.padRadius=function(n){return arguments.length?(W=n==null?null:typeof n=="function"?n:G(+n),r):W},r.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:G(+n),r):v},r.endAngle=function(n){return arguments.length?(b=typeof n=="function"?n:G(+n),r):b},r.padAngle=function(n){return arguments.length?(H=typeof n=="function"?n:G(+n),r):H},r.context=function(n){return arguments.length?(a=n??null,r):a},r}export{dn as h};
|