Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
VisualDL
提交
211b2b59
V
VisualDL
项目概览
PaddlePaddle
/
VisualDL
大约 1 年 前同步成功
通知
88
Star
4655
Fork
642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
5
Wiki
分析
仓库
DevOps
项目成员
Pages
V
VisualDL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
5
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
211b2b59
编写于
9月 04, 2020
作者:
P
Peter Pan
提交者:
GitHub
9月 04, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: subgraph support for graph page (#787)
上级
88719ad8
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
159 addition
and
61 deletion
+159
-61
frontend/README.md
frontend/README.md
+0
-1
frontend/README_cn.md
frontend/README_cn.md
+0
-1
frontend/package.json
frontend/package.json
+1
-1
frontend/packages/cli/package.json
frontend/packages/cli/package.json
+1
-1
frontend/packages/core/package.json
frontend/packages/core/package.json
+2
-2
frontend/packages/core/public/locales/en/graph.json
frontend/packages/core/public/locales/en/graph.json
+2
-0
frontend/packages/core/public/locales/zh/graph.json
frontend/packages/core/public/locales/zh/graph.json
+2
-0
frontend/packages/core/src/components/GraphPage/Graph.tsx
frontend/packages/core/src/components/GraphPage/Graph.tsx
+11
-3
frontend/packages/core/src/components/Icon.tsx
frontend/packages/core/src/components/Icon.tsx
+12
-2
frontend/packages/core/src/pages/graph.tsx
frontend/packages/core/src/pages/graph.tsx
+28
-1
frontend/packages/core/src/resource/graph/types.ts
frontend/packages/core/src/resource/graph/types.ts
+5
-0
frontend/packages/demo/package.json
frontend/packages/demo/package.json
+1
-1
frontend/packages/mock/package.json
frontend/packages/mock/package.json
+1
-1
frontend/packages/netron/package.json
frontend/packages/netron/package.json
+2
-2
frontend/packages/netron/src/index.js
frontend/packages/netron/src/index.js
+2
-0
frontend/packages/netron/src/sidebar.js
frontend/packages/netron/src/sidebar.js
+11
-12
frontend/packages/netron/src/view.js
frontend/packages/netron/src/view.js
+8
-0
frontend/packages/server/package.json
frontend/packages/server/package.json
+1
-1
frontend/packages/server/tsconfig.json
frontend/packages/server/tsconfig.json
+1
-0
frontend/yarn.lock
frontend/yarn.lock
+68
-32
未找到文件。
frontend/README.md
浏览文件 @
211b2b59
...
@@ -108,7 +108,6 @@ VisualDL supports the latest version of [Google Chrome](https://www.google.com/c
...
@@ -108,7 +108,6 @@ VisualDL supports the latest version of [Google Chrome](https://www.google.com/c
This project is based on following projects:
This project is based on following projects:
-
[
Next.js
](
https://nextjs.org/
)
-
[
React
](
https://reactjs.org/
)
-
[
React
](
https://reactjs.org/
)
-
[
ECharts
](
https://echarts.apache.org/
)
-
[
ECharts
](
https://echarts.apache.org/
)
-
[
wasm-pack
](
https://rustwasm.github.io/wasm-pack/
)
-
[
wasm-pack
](
https://rustwasm.github.io/wasm-pack/
)
...
...
frontend/README_cn.md
浏览文件 @
211b2b59
...
@@ -108,7 +108,6 @@ VisualDL 支持最新版本的 [Google Chrome](https://www.google.com/chrome/)
...
@@ -108,7 +108,6 @@ VisualDL 支持最新版本的 [Google Chrome](https://www.google.com/chrome/)
本项目基于以下项目:
本项目基于以下项目:
-
[
Next.js
](
https://nextjs.org/
)
-
[
React
](
https://reactjs.org/
)
-
[
React
](
https://reactjs.org/
)
-
[
ECharts
](
https://echarts.apache.org/
)
-
[
ECharts
](
https://echarts.apache.org/
)
-
[
wasm-pack
](
https://rustwasm.github.io/wasm-pack/
)
-
[
wasm-pack
](
https://rustwasm.github.io/wasm-pack/
)
...
...
frontend/package.json
浏览文件 @
211b2b59
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
"eslint-plugin-react-hooks"
:
"4.1.0"
,
"eslint-plugin-react-hooks"
:
"4.1.0"
,
"husky"
:
"4.2.5"
,
"husky"
:
"4.2.5"
,
"lerna"
:
"3.22.1"
,
"lerna"
:
"3.22.1"
,
"lint-staged"
:
"10.
2.13
"
,
"lint-staged"
:
"10.
3.0
"
,
"prettier"
:
"2.1.1"
,
"prettier"
:
"2.1.1"
,
"rimraf"
:
"3.0.2"
,
"rimraf"
:
"3.0.2"
,
"typescript"
:
"4.0.2"
,
"typescript"
:
"4.0.2"
,
...
...
frontend/packages/cli/package.json
浏览文件 @
211b2b59
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
"yargs"
:
"15.4.1"
"yargs"
:
"15.4.1"
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"@types/node"
:
"14.6.
3
"
,
"@types/node"
:
"14.6.
4
"
,
"@types/yargs"
:
"15.0.5"
,
"@types/yargs"
:
"15.0.5"
,
"cross-env"
:
"7.0.2"
,
"cross-env"
:
"7.0.2"
,
"ts-node"
:
"9.0.0"
,
"ts-node"
:
"9.0.0"
,
...
...
frontend/packages/core/package.json
浏览文件 @
211b2b59
...
@@ -66,14 +66,14 @@
...
@@ -66,14 +66,14 @@
"tippy.js"
:
"6.2.6"
"tippy.js"
:
"6.2.6"
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"@babel/core"
:
"7.11.
5
"
,
"@babel/core"
:
"7.11.
6
"
,
"@babel/preset-react"
:
"7.10.4"
,
"@babel/preset-react"
:
"7.10.4"
,
"@snowpack/app-scripts-react"
:
"1.10.0"
,
"@snowpack/app-scripts-react"
:
"1.10.0"
,
"@snowpack/plugin-dotenv"
:
"2.0.1"
,
"@snowpack/plugin-dotenv"
:
"2.0.1"
,
"@snowpack/plugin-run-script"
:
"2.1.1"
,
"@snowpack/plugin-run-script"
:
"2.1.1"
,
"@svgr/core"
:
"5.4.0"
,
"@svgr/core"
:
"5.4.0"
,
"@testing-library/jest-dom"
:
"5.11.4"
,
"@testing-library/jest-dom"
:
"5.11.4"
,
"@testing-library/react"
:
"1
0.4.9
"
,
"@testing-library/react"
:
"1
1.0.2
"
,
"@types/d3-format"
:
"1.3.1"
,
"@types/d3-format"
:
"1.3.1"
,
"@types/echarts"
:
"4.6.5"
,
"@types/echarts"
:
"4.6.5"
,
"@types/file-saver"
:
"2.0.1"
,
"@types/file-saver"
:
"2.0.1"
,
...
...
frontend/packages/core/public/locales/en/graph.json
浏览文件 @
211b2b59
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
"producer"
:
"Producer"
,
"producer"
:
"Producer"
,
"runtime"
:
"Runtime"
,
"runtime"
:
"Runtime"
,
"source"
:
"Source"
,
"source"
:
"Source"
,
"subgraph"
:
"Subgraph"
,
"tags"
:
"Tags"
,
"tags"
:
"Tags"
,
"type"
:
"Type"
,
"type"
:
"Type"
,
"version"
:
"Version"
"version"
:
"Version"
...
@@ -45,6 +46,7 @@
...
@@ -45,6 +46,7 @@
"show-attributes"
:
"Show Attributes"
,
"show-attributes"
:
"Show Attributes"
,
"show-initializers"
:
"Show Initializers"
,
"show-initializers"
:
"Show Initializers"
,
"show-node-names"
:
"Show Node Names"
,
"show-node-names"
:
"Show Node Names"
,
"subgraph"
:
"Select Subgraph"
,
"supported-model"
:
"Supported models: "
,
"supported-model"
:
"Supported models: "
,
"supported-model-list"
:
"PaddlePaddle, ONNX, Keras, Core ML, Caffe, Caffe2, Darknet, MXNet, ncnn, TensorFlow Lite"
,
"supported-model-list"
:
"PaddlePaddle, ONNX, Keras, Core ML, Caffe, Caffe2, Darknet, MXNet, ncnn, TensorFlow Lite"
,
"upload-model"
:
"Upload Model"
,
"upload-model"
:
"Upload Model"
,
...
...
frontend/packages/core/public/locales/zh/graph.json
浏览文件 @
211b2b59
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
"producer"
:
"框架"
,
"producer"
:
"框架"
,
"runtime"
:
"运行时"
,
"runtime"
:
"运行时"
,
"source"
:
"源"
,
"source"
:
"源"
,
"subgraph"
:
"子图"
,
"tags"
:
"标签"
,
"tags"
:
"标签"
,
"type"
:
"类型"
,
"type"
:
"类型"
,
"version"
:
"版本"
"version"
:
"版本"
...
@@ -45,6 +46,7 @@
...
@@ -45,6 +46,7 @@
"show-attributes"
:
"显示参数"
,
"show-attributes"
:
"显示参数"
,
"show-initializers"
:
"显示初始化参数"
,
"show-initializers"
:
"显示初始化参数"
,
"show-node-names"
:
"显示节点名称"
,
"show-node-names"
:
"显示节点名称"
,
"subgraph"
:
"选择子图"
,
"supported-model"
:
"VisualDL支持:"
,
"supported-model"
:
"VisualDL支持:"
,
"supported-model-list"
:
"PaddlePaddle、ONNX、Keras、Core ML、Caffe、Caffe2、Darknet、MXNet、ncnn、TensorFlow Lite"
,
"supported-model-list"
:
"PaddlePaddle、ONNX、Keras、Core ML、Caffe、Caffe2、Darknet、MXNet、ncnn、TensorFlow Lite"
,
"upload-model"
:
"上传模型"
,
"upload-model"
:
"上传模型"
,
...
...
frontend/packages/core/src/components/GraphPage/Graph.tsx
浏览文件 @
211b2b59
import
type
{
Documentation
,
Properties
,
SearchItem
,
SearchResult
}
from
'
~/resource/graph/types
'
;
import
type
{
Documentation
,
OpenedResult
,
Properties
,
SearchItem
,
SearchResult
}
from
'
~/resource/graph/types
'
;
import
React
,
{
useCallback
,
useEffect
,
useImperativeHandle
,
useMemo
,
useRef
,
useState
}
from
'
react
'
;
import
React
,
{
useCallback
,
useEffect
,
useImperativeHandle
,
useMemo
,
useRef
,
useState
}
from
'
react
'
;
import
{
backgroundColor
,
borderColor
,
contentHeight
,
position
,
primaryColor
,
rem
,
size
}
from
'
~/utils/style
'
;
import
{
backgroundColor
,
borderColor
,
contentHeight
,
position
,
primaryColor
,
rem
,
size
}
from
'
~/utils/style
'
;
...
@@ -77,10 +77,11 @@ const Loading = styled.div`
...
@@ -77,10 +77,11 @@ const Loading = styled.div`
export
type
GraphRef
=
{
export
type
GraphRef
=
{
export
(
type
:
'
svg
'
|
'
png
'
):
void
;
export
(
type
:
'
svg
'
|
'
png
'
):
void
;
changeGraph
(
name
:
string
):
void
;
search
(
value
:
string
):
void
;
search
(
value
:
string
):
void
;
select
(
item
:
SearchItem
):
void
;
select
(
item
:
SearchItem
):
void
;
showModelProperties
():
void
;
showModelProperties
():
void
;
showNodeDocumentation
:
(
data
:
Properties
)
=>
void
;
showNodeDocumentation
(
data
:
Properties
):
void
;
};
};
type
GraphProps
=
{
type
GraphProps
=
{
...
@@ -91,6 +92,7 @@ type GraphProps = {
...
@@ -91,6 +92,7 @@ type GraphProps = {
showNames
:
boolean
;
showNames
:
boolean
;
horizontal
:
boolean
;
horizontal
:
boolean
;
onRendered
?:
()
=>
unknown
;
onRendered
?:
()
=>
unknown
;
onOpened
?:
(
data
:
OpenedResult
)
=>
unknown
;
onSearch
?:
(
data
:
SearchResult
)
=>
unknown
;
onSearch
?:
(
data
:
SearchResult
)
=>
unknown
;
onShowModelProperties
?:
(
data
:
Properties
)
=>
unknown
;
onShowModelProperties
?:
(
data
:
Properties
)
=>
unknown
;
onShowNodeProperties
?:
(
data
:
Properties
)
=>
unknown
;
onShowNodeProperties
?:
(
data
:
Properties
)
=>
unknown
;
...
@@ -107,6 +109,7 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
...
@@ -107,6 +109,7 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
showNames
,
showNames
,
horizontal
,
horizontal
,
onRendered
,
onRendered
,
onOpened
,
onSearch
,
onSearch
,
onShowModelProperties
,
onShowModelProperties
,
onShowNodeProperties
,
onShowNodeProperties
,
...
@@ -139,6 +142,8 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
...
@@ -139,6 +142,8 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
return
;
return
;
}
}
return
;
return
;
case
'
opened
'
:
return
onOpened
?.(
data
);
case
'
search
'
:
case
'
search
'
:
return
onSearch
?.(
data
);
return
onSearch
?.(
data
);
case
'
cancel
'
:
case
'
cancel
'
:
...
@@ -156,7 +161,7 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
...
@@ -156,7 +161,7 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
}
}
}
}
},
},
[
onRendered
,
onSearch
,
onShowModelProperties
,
onShowNodeProperties
,
onShowNodeDocumentation
]
[
onRendered
,
on
Opened
,
on
Search
,
onShowModelProperties
,
onShowNodeProperties
,
onShowNodeDocumentation
]
);
);
const
dispatch
=
useCallback
((
type
:
string
,
data
?:
unknown
)
=>
{
const
dispatch
=
useCallback
((
type
:
string
,
data
?:
unknown
)
=>
{
iframe
.
current
?.
contentWindow
?.
postMessage
(
iframe
.
current
?.
contentWindow
?.
postMessage
(
...
@@ -197,6 +202,9 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
...
@@ -197,6 +202,9 @@ const Graph = React.forwardRef<GraphRef, GraphProps>(
export
(
type
)
{
export
(
type
)
{
dispatch
(
'
export
'
,
type
);
dispatch
(
'
export
'
,
type
);
},
},
changeGraph
(
name
)
{
dispatch
(
'
change-graph
'
,
name
);
},
search
(
value
)
{
search
(
value
)
{
dispatch
(
'
search
'
,
value
);
dispatch
(
'
search
'
,
value
);
},
},
...
...
frontend/packages/core/src/components/Icon.tsx
浏览文件 @
211b2b59
import
React
,
{
FunctionComponent
,
Suspense
,
useMemo
}
from
'
react
'
;
import
React
,
{
FunctionComponent
,
Suspense
,
useMemo
}
from
'
react
'
;
import
type
{
WithStyled
}
from
'
~/utils/style
'
;
import
type
{
WithStyled
}
from
'
~/utils/style
'
;
import
styled
from
'
styled-components
'
;
const
PUBLIC_PATH
:
string
=
import
.
meta
.
env
.
SNOWPACK_PUBLIC_PATH
;
const
PUBLIC_PATH
:
string
=
import
.
meta
.
env
.
SNOWPACK_PUBLIC_PATH
;
const
Wrapper
=
styled
.
i
`
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
`
;
export
type
Icons
=
string
;
export
type
Icons
=
string
;
type
IconProps
=
{
type
IconProps
=
{
...
@@ -15,11 +25,11 @@ const Icon: FunctionComponent<IconProps & WithStyled> = ({type, onClick, classNa
...
@@ -15,11 +25,11 @@ const Icon: FunctionComponent<IconProps & WithStyled> = ({type, onClick, classNa
const
Svg
=
useMemo
(()
=>
React
.
lazy
(()
=>
import
(
`
${
PUBLIC_PATH
}
/icons/
${
type
}
.js`
)),
[
type
]);
const
Svg
=
useMemo
(()
=>
React
.
lazy
(()
=>
import
(
`
${
PUBLIC_PATH
}
/icons/
${
type
}
.js`
)),
[
type
]);
return
(
return
(
<
i
className
=
{
`vdl-icon icon-
${
type
}
${
className
??
''
}
`
}
onClick
=
{
()
=>
onClick
?.()
}
>
<
Wrapper
className
=
{
`vdl-icon icon-
${
type
}
${
className
??
''
}
`
}
onClick
=
{
()
=>
onClick
?.()
}
>
<
Suspense
fallback
=
""
>
<
Suspense
fallback
=
""
>
<
Svg
/>
<
Svg
/>
</
Suspense
>
</
Suspense
>
</
i
>
</
Wrapper
>
);
);
};
};
...
...
frontend/packages/core/src/pages/graph.tsx
浏览文件 @
211b2b59
import
Aside
,
{
AsideSection
}
from
'
~/components/Aside
'
;
import
Aside
,
{
AsideSection
}
from
'
~/components/Aside
'
;
import
{
BlobResponse
,
blobFetcher
}
from
'
~/utils/fetch
'
;
import
{
BlobResponse
,
blobFetcher
}
from
'
~/utils/fetch
'
;
import
type
{
Documentation
,
Properties
,
SearchItem
,
SearchResult
}
from
'
~/resource/graph/types
'
;
import
type
{
Documentation
,
OpenedResult
,
Properties
,
SearchItem
,
SearchResult
}
from
'
~/resource/graph/types
'
;
import
GraphComponent
,
{
GraphRef
}
from
'
~/components/GraphPage/Graph
'
;
import
GraphComponent
,
{
GraphRef
}
from
'
~/components/GraphPage/Graph
'
;
import
React
,
{
FunctionComponent
,
useCallback
,
useEffect
,
useMemo
,
useRef
,
useState
}
from
'
react
'
;
import
React
,
{
FunctionComponent
,
useCallback
,
useEffect
,
useMemo
,
useRef
,
useState
}
from
'
react
'
;
import
Select
,
{
SelectProps
}
from
'
~/components/Select
'
;
import
{
primaryColor
,
rem
,
size
}
from
'
~/utils/style
'
;
import
{
primaryColor
,
rem
,
size
}
from
'
~/utils/style
'
;
import
Button
from
'
~/components/Button
'
;
import
Button
from
'
~/components/Button
'
;
...
@@ -26,6 +27,10 @@ const FullWidthButton = styled(Button)`
...
@@ -26,6 +27,10 @@ const FullWidthButton = styled(Button)`
width: 100%;
width: 100%;
`
;
`
;
const
FullWidthSelect
=
styled
<
React
.
FunctionComponent
<
SelectProps
<
NonNullable
<
OpenedResult
[
'
selected
'
]
>>>>
(
Select
)
`
width: 100%;
`
;
const
ExportButtonWrapper
=
styled
.
div
`
const
ExportButtonWrapper
=
styled
.
div
`
display: flex;
display: flex;
justify-content: space-between;
justify-content: space-between;
...
@@ -88,6 +93,17 @@ const Graph: FunctionComponent = () => {
...
@@ -88,6 +93,17 @@ const Graph: FunctionComponent = () => {
}
}
},
[
data
]);
},
[
data
]);
const
[
modelGraphs
,
setModelGraphs
]
=
useState
<
OpenedResult
[
'
graphs
'
]
>
([]);
const
[
selectedGraph
,
setSelectedGraph
]
=
useState
<
NonNullable
<
OpenedResult
[
'
selected
'
]
>>
(
''
);
const
setOpenedModel
=
useCallback
((
data
:
OpenedResult
)
=>
{
setModelGraphs
(
data
.
graphs
);
setSelectedGraph
(
data
.
selected
||
''
);
},
[]);
const
changeGraph
=
useCallback
((
name
:
string
)
=>
{
setSelectedGraph
(
name
);
graph
.
current
?.
changeGraph
(
name
);
},
[]);
const
[
search
,
setSearch
]
=
useState
(
''
);
const
[
search
,
setSearch
]
=
useState
(
''
);
const
[
searching
,
setSearching
]
=
useState
(
false
);
const
[
searching
,
setSearching
]
=
useState
(
false
);
const
[
searchResult
,
setSearchResult
]
=
useState
<
SearchResult
>
({
text
:
''
,
result
:
[]});
const
[
searchResult
,
setSearchResult
]
=
useState
<
SearchResult
>
({
text
:
''
,
result
:
[]});
...
@@ -167,6 +183,13 @@ const Graph: FunctionComponent = () => {
...
@@ -167,6 +183,13 @@ const Graph: FunctionComponent = () => {
{
t
(
'
graph:model-properties
'
)
}
{
t
(
'
graph:model-properties
'
)
}
</
FullWidthButton
>
</
FullWidthButton
>
</
AsideSection
>
</
AsideSection
>
{
modelGraphs
.
length
>
1
&&
(
<
AsideSection
>
<
Field
label
=
{
t
(
'
graph:subgraph
'
)
}
>
<
FullWidthSelect
list
=
{
modelGraphs
}
value
=
{
selectedGraph
}
onChange
=
{
changeGraph
}
/>
</
Field
>
</
AsideSection
>
)
}
<
AsideSection
>
<
AsideSection
>
<
Field
label
=
{
t
(
'
graph:display-data
'
)
}
>
<
Field
label
=
{
t
(
'
graph:display-data
'
)
}
>
<
div
>
<
div
>
...
@@ -216,6 +239,9 @@ const Graph: FunctionComponent = () => {
...
@@ -216,6 +239,9 @@ const Graph: FunctionComponent = () => {
search
,
search
,
searching
,
searching
,
searchResult
,
searchResult
,
modelGraphs
,
selectedGraph
,
changeGraph
,
onSearch
,
onSearch
,
onSelect
,
onSelect
,
showAttributes
,
showAttributes
,
...
@@ -249,6 +275,7 @@ const Graph: FunctionComponent = () => {
...
@@ -249,6 +275,7 @@ const Graph: FunctionComponent = () => {
showNames
=
{
showNames
}
showNames
=
{
showNames
}
horizontal
=
{
horizontal
}
horizontal
=
{
horizontal
}
onRendered
=
{
()
=>
setRendered
(
true
)
}
onRendered
=
{
()
=>
setRendered
(
true
)
}
onOpened
=
{
setOpenedModel
}
onSearch
=
{
data
=>
setSearchResult
(
data
)
}
onSearch
=
{
data
=>
setSearchResult
(
data
)
}
onShowModelProperties
=
{
data
=>
setModelData
(
data
)
}
onShowModelProperties
=
{
data
=>
setModelData
(
data
)
}
onShowNodeProperties
=
{
data
=>
{
onShowNodeProperties
=
{
data
=>
{
...
...
frontend/packages/core/src/resource/graph/types.ts
浏览文件 @
211b2b59
...
@@ -33,6 +33,11 @@ export type SearchItem = {
...
@@ -33,6 +33,11 @@ export type SearchItem = {
id
:
string
;
id
:
string
;
};
};
export
type
OpenedResult
=
{
graphs
:
string
[];
selected
:
string
|
null
;
};
export
type
SearchResult
=
{
export
type
SearchResult
=
{
text
:
string
;
text
:
string
;
result
:
SearchItem
[];
result
:
SearchItem
[];
...
...
frontend/packages/demo/package.json
浏览文件 @
211b2b59
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
"devDependencies"
:
{
"devDependencies"
:
{
"@types/express"
:
"4.17.8"
,
"@types/express"
:
"4.17.8"
,
"@types/mkdirp"
:
"1.0.1"
,
"@types/mkdirp"
:
"1.0.1"
,
"@types/node"
:
"14.6.
3
"
,
"@types/node"
:
"14.6.
4
"
,
"@types/node-fetch"
:
"2.5.7"
,
"@types/node-fetch"
:
"2.5.7"
,
"@types/rimraf"
:
"3.0.0"
,
"@types/rimraf"
:
"3.0.0"
,
"cpy-cli"
:
"3.1.1"
,
"cpy-cli"
:
"3.1.1"
,
...
...
frontend/packages/mock/package.json
浏览文件 @
211b2b59
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
"devDependencies"
:
{
"devDependencies"
:
{
"@types/express"
:
"4.17.8"
,
"@types/express"
:
"4.17.8"
,
"@types/faker"
:
"4.1.12"
,
"@types/faker"
:
"4.1.12"
,
"@types/node"
:
"14.6.
3
"
,
"@types/node"
:
"14.6.
4
"
,
"cpy-cli"
:
"3.1.1"
,
"cpy-cli"
:
"3.1.1"
,
"rimraf"
:
"3.0.2"
,
"rimraf"
:
"3.0.2"
,
"ts-node"
:
"9.0.0"
,
"ts-node"
:
"9.0.0"
,
...
...
frontend/packages/netron/package.json
浏览文件 @
211b2b59
...
@@ -48,8 +48,8 @@
...
@@ -48,8 +48,8 @@
"postcss-loader"
:
"3.0.0"
,
"postcss-loader"
:
"3.0.0"
,
"rimraf"
:
"3.0.2"
,
"rimraf"
:
"3.0.2"
,
"sass"
:
"1.26.10"
,
"sass"
:
"1.26.10"
,
"sass-loader"
:
"10.0.
1
"
,
"sass-loader"
:
"10.0.
2
"
,
"terser"
:
"5.
2.1
"
,
"terser"
:
"5.
3.0
"
,
"webpack"
:
"4.44.1"
,
"webpack"
:
"4.44.1"
,
"webpack-cli"
:
"3.3.12"
"webpack-cli"
:
"3.3.12"
},
},
...
...
frontend/packages/netron/src/index.js
浏览文件 @
211b2b59
...
@@ -64,6 +64,8 @@ host.BrowserHost = class {
...
@@ -64,6 +64,8 @@ host.BrowserHost = class {
return
this
.
_view
.
toggleDirection
(
data
);
return
this
.
_view
.
toggleDirection
(
data
);
case
'
export
'
:
case
'
export
'
:
return
this
.
_view
.
export
(
`
${
document
.
title
}
.
${
data
}
`
);
return
this
.
_view
.
export
(
`
${
document
.
title
}
.
${
data
}
`
);
case
'
change-graph
'
:
return
this
.
_view
.
changeGraph
(
data
);
case
'
search
'
:
case
'
search
'
:
return
this
.
_view
.
find
(
data
);
return
this
.
_view
.
find
(
data
);
case
'
select
'
:
case
'
select
'
:
...
...
frontend/packages/netron/src/sidebar.js
浏览文件 @
211b2b59
...
@@ -531,18 +531,17 @@ sidebar.ModelSidebar = class {
...
@@ -531,18 +531,17 @@ sidebar.ModelSidebar = class {
}
}
}
}
// TODO: graph select
if
(
this
.
_model
.
_graphs
.
length
>
1
)
{
// if (this._model._graphs.length > 1) {
// let graphSelector = new sidebar.SelectView(
// let graphSelector = new sidebar.SelectView(
// this._host,
// this._host,
// this._model.graphs.map(g => g.name),
// this._model.graphs.map(g => g.name),
// graph.name
// graph.name
// );
// );
// graphSelector.on('change', (sender, data) => {
// graphSelector.on('change', (sender, data) => {
// this._raise('update-active-graph', data);
// this._raise('update-active-graph', data);
// });
// });
this
.
_addProperty
(
'
subgraph
'
,
new
sidebar
.
ValueTextView
(
this
.
_host
,
graph
.
name
));
// this._addProperty('subgraph', graphSelector);
}
// }
if
(
graph
)
{
if
(
graph
)
{
if
(
graph
.
version
)
{
if
(
graph
.
version
)
{
...
...
frontend/packages/netron/src/view.js
浏览文件 @
211b2b59
...
@@ -190,12 +190,20 @@ view.View = class {
...
@@ -190,12 +190,20 @@ view.View = class {
return
this
.
_modelFactoryService
.
open
(
context
).
then
(
model
=>
{
return
this
.
_modelFactoryService
.
open
(
context
).
then
(
model
=>
{
return
this
.
_timeout
(
20
).
then
(()
=>
{
return
this
.
_timeout
(
20
).
then
(()
=>
{
const
graph
=
model
.
graphs
.
length
>
0
?
model
.
graphs
[
0
]
:
null
;
const
graph
=
model
.
graphs
.
length
>
0
?
model
.
graphs
[
0
]
:
null
;
this
.
_host
.
message
(
'
opened
'
,
{
graphs
:
model
.
graphs
.
map
(
g
=>
g
.
name
||
''
),
selected
:
graph
&&
(
graph
.
name
||
''
)
});
return
this
.
_updateGraph
(
model
,
graph
);
return
this
.
_updateGraph
(
model
,
graph
);
});
});
});
});
});
});
}
}
changeGraph
(
name
)
{
this
.
_updateActiveGraph
(
name
);
}
_updateActiveGraph
(
name
)
{
_updateActiveGraph
(
name
)
{
if
(
this
.
_model
)
{
if
(
this
.
_model
)
{
const
model
=
this
.
_model
;
const
model
=
this
.
_model
;
...
...
frontend/packages/server/package.json
浏览文件 @
211b2b59
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
"devDependencies"
:
{
"devDependencies"
:
{
"@types/enhanced-resolve"
:
"3.0.6"
,
"@types/enhanced-resolve"
:
"3.0.6"
,
"@types/express"
:
"4.17.8"
,
"@types/express"
:
"4.17.8"
,
"@types/node"
:
"14.6.
3
"
,
"@types/node"
:
"14.6.
4
"
,
"@visualdl/mock"
:
"2.0.0"
,
"@visualdl/mock"
:
"2.0.0"
,
"cross-env"
:
"7.0.2"
,
"cross-env"
:
"7.0.2"
,
"nodemon"
:
"2.0.4"
,
"nodemon"
:
"2.0.4"
,
...
...
frontend/packages/server/tsconfig.json
浏览文件 @
211b2b59
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
"skipLibCheck"
:
true
,
"skipLibCheck"
:
true
,
"esModuleInterop"
:
true
,
"esModuleInterop"
:
true
,
"declaration"
:
true
,
"declaration"
:
true
,
"resolveJsonModule"
:
true
,
"outDir"
:
"dist"
"outDir"
:
"dist"
},
},
"files"
:
[
"files"
:
[
...
...
frontend/yarn.lock
浏览文件 @
211b2b59
...
@@ -18,13 +18,13 @@
...
@@ -18,13 +18,13 @@
invariant "^2.2.4"
invariant "^2.2.4"
semver "^5.5.0"
semver "^5.5.0"
"@babel/core@7.11.
5", "@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.7.5
":
"@babel/core@7.11.
6
":
version "7.11.
5
"
version "7.11.
6
"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.
5.tgz#6ad96e2f71899ea3f9b651f0a911e85205d1ff6d
"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.
6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651
"
integrity sha512-
fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q
==
integrity sha512-
Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg
==
dependencies:
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.11.
5
"
"@babel/generator" "^7.11.
6
"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helpers" "^7.10.4"
"@babel/helpers" "^7.10.4"
"@babel/parser" "^7.11.5"
"@babel/parser" "^7.11.5"
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
lodash "^4.17.19"
lodash "^4.17.19"
resolve "^1.3.2"
resolve "^1.3.2"
semver "^5.4.1"
semver "^5.4.1"
source-map "^0.
6.1
"
source-map "^0.
5.0
"
"@babel/core@7.9.0":
"@babel/core@7.9.0":
version "7.9.0"
version "7.9.0"
...
@@ -62,6 +62,28 @@
...
@@ -62,6 +62,28 @@
semver "^5.4.1"
semver "^5.4.1"
source-map "^0.5.0"
source-map "^0.5.0"
"@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.7.5":
version "7.11.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.5.tgz#6ad96e2f71899ea3f9b651f0a911e85205d1ff6d"
integrity sha512-fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q==
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.11.5"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helpers" "^7.10.4"
"@babel/parser" "^7.11.5"
"@babel/template" "^7.10.4"
"@babel/traverse" "^7.11.5"
"@babel/types" "^7.11.5"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
json5 "^2.1.2"
lodash "^4.17.19"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.6.1"
"@babel/generator@^7.11.5", "@babel/generator@^7.9.0":
"@babel/generator@^7.11.5", "@babel/generator@^7.9.0":
version "7.11.5"
version "7.11.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.5.tgz#a5582773425a468e4ba269d9a1f701fbca6a7a82"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.5.tgz#a5582773425a468e4ba269d9a1f701fbca6a7a82"
...
@@ -71,6 +93,15 @@
...
@@ -71,6 +93,15 @@
jsesc "^2.5.1"
jsesc "^2.5.1"
source-map "^0.6.1"
source-map "^0.6.1"
"@babel/generator@^7.11.6":
version "7.11.6"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620"
integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==
dependencies:
"@babel/types" "^7.11.5"
jsesc "^2.5.1"
source-map "^0.5.0"
"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4":
"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4":
version "7.10.4"
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
...
@@ -996,7 +1027,7 @@
...
@@ -996,7 +1027,7 @@
dependencies:
dependencies:
regenerator-runtime "^0.13.4"
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.
11.2", "@babel/runtime@^7.
3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.11.2"
version "7.11.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
...
@@ -2583,10 +2614,10 @@
...
@@ -2583,10 +2614,10 @@
dependencies:
dependencies:
defer-to-connect "^2.0.0"
defer-to-connect "^2.0.0"
"@testing-library/dom@^7.2
2.3
":
"@testing-library/dom@^7.2
3.0
":
version "7.24.
0
"
version "7.24.
1
"
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.
0.tgz#b50066100947e4d1bd0f2f6855c7ff3f2a8770e2
"
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.
1.tgz#0e8acd042070f2c1b183fbfe5c0d38b3194ad3c0
"
integrity sha512-
Q83bQctoBse3NbHrUHlLypSp+cIchmpLCtVTG2rgVL2RhzgNOjlYgqH/gmwg3ztHVPADSD3PwtoXRhgU6dfTxQ
==
integrity sha512-
TemHWY59gvzcScGiE5eooZpzYk9GaED0TuuK4WefbIc/DQg0L5wOpnj7MIEeAGF3B7Ekf1kvmVnQ97vwz4Lmhg
==
dependencies:
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/code-frame" "^7.10.4"
"@babel/runtime" "^7.10.3"
"@babel/runtime" "^7.10.3"
...
@@ -2610,13 +2641,13 @@
...
@@ -2610,13 +2641,13 @@
lodash "^4.17.15"
lodash "^4.17.15"
redent "^3.0.0"
redent "^3.0.0"
"@testing-library/react@1
0.4.9
":
"@testing-library/react@1
1.0.2
":
version "1
0.4.9
"
version "1
1.0.2
"
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-1
0.4.9.tgz#9faa29c6a1a217bf8bbb96a28bd29d7a847ca150
"
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-1
1.0.2.tgz#4588cc537085907bd1d98b531eb247dbbf57b1cc
"
integrity sha512-
pHZKkqUy0tmiD81afs8xfiuseXfU/N7rAX3iKjeZYje86t9VaB0LrxYVa+OOsvkrveX5jCK3IjajVn2MbePvqA
==
integrity sha512-
iOuNNHt4ZgMH5trSKC4kaWDcKzUOf7e7KQIcu7xvGCd68/w1EegbW89F9T5sZ4IjS0gAXdvOfZbG9ESZ7YjOug
==
dependencies:
dependencies:
"@babel/runtime" "^7.1
0.3
"
"@babel/runtime" "^7.1
1.2
"
"@testing-library/dom" "^7.2
2.3
"
"@testing-library/dom" "^7.2
3.0
"
"@tippyjs/react@4.1.0":
"@tippyjs/react@4.1.0":
version "4.1.0"
version "4.1.0"
...
@@ -2896,11 +2927,16 @@
...
@@ -2896,11 +2927,16 @@
"@types/node" "*"
"@types/node" "*"
form-data "^3.0.0"
form-data "^3.0.0"
"@types/node@*", "@types/node@
14.6.3", "@types/node@
>= 8":
"@types/node@*", "@types/node@>= 8":
version "14.6.3"
version "14.6.3"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.3.tgz#cc4f979548ca4d8e7b90bc0180052ab99ee64224"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.3.tgz#cc4f979548ca4d8e7b90bc0180052ab99ee64224"
integrity sha512-pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==
integrity sha512-pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==
"@types/node@14.6.4":
version "14.6.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a"
integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==
"@types/normalize-package-data@^2.4.0":
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
...
@@ -9075,10 +9111,10 @@ lines-and-columns@^1.1.6:
...
@@ -9075,10 +9111,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
lint-staged@10.
2.13
:
lint-staged@10.
3.0
:
version "10.
2.13
"
version "10.
3.0
"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.
2.13.tgz#b9c504683470edfc464b7d3fe3845a5a1efcd814
"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.
3.0.tgz#388c3d440590c45c339e7163f669ea69ae90b1e0
"
integrity sha512-
conwlukNV6aL9SiMWjFtDp5exeDnTMekdNPDZsKGnpfQuHcO0E3L3Bbf58lcR+M7vk6LpCilxDAVks/DDVBYlA
==
integrity sha512-
an3VgjHqmJk0TORB/sdQl0CTkRg4E5ybYCXTTCSJ5h9jFwZbcgKIx5oVma5e7wp/uKt17s1QYFmYqT9MGVosGw
==
dependencies:
dependencies:
chalk "^4.1.0"
chalk "^4.1.0"
cli-truncate "^2.1.0"
cli-truncate "^2.1.0"
...
@@ -9895,7 +9931,7 @@ netmask@^1.0.6:
...
@@ -9895,7 +9931,7 @@ netmask@^1.0.6:
netron@PeterPanZH/netron:
netron@PeterPanZH/netron:
version "4.4.2"
version "4.4.2"
resolved "https://codeload.github.com/PeterPanZH/netron/tar.gz/
9ed207c03a4d4137f6ee0a66655665d249a6cb2a
"
resolved "https://codeload.github.com/PeterPanZH/netron/tar.gz/
b2068aa97dd79c4d60b9a3a1a1d2e5aa8b06eae4
"
dependencies:
dependencies:
d3 "5.16.0"
d3 "5.16.0"
dagre "0.8.5"
dagre "0.8.5"
...
@@ -12180,15 +12216,15 @@ sane@^4.0.3:
...
@@ -12180,15 +12216,15 @@ sane@^4.0.3:
minimist "^1.1.1"
minimist "^1.1.1"
walker "~1.0.5"
walker "~1.0.5"
sass-loader@10.0.
1
:
sass-loader@10.0.
2
:
version "10.0.
1
"
version "10.0.
2
"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.
1.tgz#10c0364d8034f22fee25ddcc9eded20f99bbe3b4
"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.
2.tgz#c7b73010848b264792dd45372eea0b87cba4401e
"
integrity sha512-
b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ
==
integrity sha512-
wV6NDUVB8/iEYMalV/+139+vl2LaRFlZGEd5/xmdcdzQcgmis+npyco6NsDTVOlNA3y2NV9Gcz+vHyFMIT+ffg
==
dependencies:
dependencies:
klona "^2.0.3"
klona "^2.0.3"
loader-utils "^2.0.0"
loader-utils "^2.0.0"
neo-async "^2.6.2"
neo-async "^2.6.2"
schema-utils "^2.7.
0
"
schema-utils "^2.7.
1
"
semver "^7.3.2"
semver "^7.3.2"
sass@1.26.10:
sass@1.26.10:
...
@@ -13168,10 +13204,10 @@ terser-webpack-plugin@^1.4.3:
...
@@ -13168,10 +13204,10 @@ terser-webpack-plugin@^1.4.3:
webpack-sources "^1.4.0"
webpack-sources "^1.4.0"
worker-farm "^1.7.0"
worker-farm "^1.7.0"
terser@5.
2.1
:
terser@5.
3.0
:
version "5.
2.1
"
version "5.
3.0
"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.
2.1.tgz#40b971b8d28b4fe98c9e8c0d073ab48e7bb96cd8
"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.
3.0.tgz#c481f4afecdcc182d5e2bdd2ff2dc61555161e81
"
integrity sha512-
/AOtjRtAMNGO0fIF6m8HfcvXTw/2AKpsOzDn36tA5RfhRdeXyb4RvHxJ5Pah7iL6dFkLk+gOnCaNHGwJPl6TrQ
==
integrity sha512-
XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg
==
dependencies:
dependencies:
commander "^2.20.0"
commander "^2.20.0"
source-map "~0.6.1"
source-map "~0.6.1"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录