From fceb5ff3e5643615e263fc6e45794d9649053f1b Mon Sep 17 00:00:00 2001 From: winloong <21272660+vinloong@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:28:51 +0800 Subject: [PATCH 1/7] add test --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..e69de29 From 22f3ca6e6921e4dc69f6d2e28552e8920bdcedd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=8C=E6=96=87=E9=BE=99?= Date: Fri, 22 Apr 2022 03:39:18 +0000 Subject: [PATCH 2/7] delete test file --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test.txt diff --git a/test.txt b/test.txt deleted file mode 100644 index e69de29..0000000 From df9625aa53c6e78a45a539e1317cca8d4e166d57 Mon Sep 17 00:00:00 2001 From: yuan_yi <1650192445@qq.com> Date: Fri, 22 Apr 2022 16:01:36 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 + code/VideoAccess-VCMP/web/.babelrc | 17 + code/VideoAccess-VCMP/web/.vscode/launch.json | 18 + .../web/.vscode/settings.json | 4 + code/VideoAccess-VCMP/web/Dockerfile | 12 + .../web/client/assets/images/avatar/1.png | Bin 0 -> 21982 bytes .../web/client/assets/images/avatar/10.png | Bin 0 -> 21889 bytes .../web/client/assets/images/avatar/11.png | Bin 0 -> 21035 bytes .../web/client/assets/images/avatar/12.png | Bin 0 -> 21378 bytes .../web/client/assets/images/avatar/2.png | Bin 0 -> 21837 bytes .../web/client/assets/images/avatar/3.png | Bin 0 -> 22333 bytes .../web/client/assets/images/avatar/4.png | Bin 0 -> 20810 bytes .../web/client/assets/images/avatar/5.png | Bin 0 -> 21970 bytes .../web/client/assets/images/avatar/6.png | Bin 0 -> 20654 bytes .../web/client/assets/images/avatar/7.png | Bin 0 -> 22364 bytes .../web/client/assets/images/avatar/8.png | Bin 0 -> 22686 bytes .../web/client/assets/images/avatar/9.png | Bin 0 -> 21599 bytes .../client/assets/images/avatar/avatar.jpg | Bin 0 -> 207228 bytes code/VideoAccess-VCMP/web/client/index.ejs | 14 + code/VideoAccess-VCMP/web/client/index.html | 44 + code/VideoAccess-VCMP/web/client/index.js | 20 + code/VideoAccess-VCMP/web/client/src/app.jsx | 23 + .../web/client/src/components/index.js | 5 + .../VideoAccess-VCMP/web/client/src/index.jsx | 8 + .../web/client/src/index.less | 38 + .../web/client/src/layout/actions/global.js | 44 + .../src/layout/components/footer/index.jsx | 15 + .../src/layout/components/header/index.jsx | 43 + .../src/layout/components/sider/index.jsx | 59 + .../web/client/src/layout/containers/index.js | 6 + .../src/layout/containers/layout/index.jsx | 135 + .../src/layout/containers/no-match/index.jsx | 18 + .../web/client/src/layout/index.jsx | 177 ++ .../src/layout/reducers/ajaxResponse.js | 28 + .../web/client/src/layout/reducers/global.js | 36 + .../web/client/src/layout/reducers/index.js | 15 + .../web/client/src/layout/store/index.js | 13 + .../web/client/src/layout/store/store.dev.js | 30 + .../web/client/src/layout/store/store.prod.js | 20 + .../client/src/sections/auth/actions/auth.js | 79 + .../client/src/sections/auth/actions/index.js | 10 + .../src/sections/auth/containers/index.js | 4 + .../src/sections/auth/containers/login.jsx | 62 + .../web/client/src/sections/auth/index.js | 12 + .../client/src/sections/auth/reducers/auth.js | 40 + .../src/sections/auth/reducers/index.js | 6 + .../web/client/src/sections/auth/routes.js | 12 + .../src/sections/example/actions/example.js | 15 + .../src/sections/example/actions/index.js | 7 + .../sections/example/containers/example.jsx | 45 + .../src/sections/example/containers/index.js | 5 + .../web/client/src/sections/example/index.js | 15 + .../client/src/sections/example/nav-item.jsx | 15 + .../src/sections/example/reducers/index.js | 5 + .../web/client/src/sections/example/routes.js | 18 + .../client/src/sections/example/style.less | 7 + .../web/client/src/utils/authCode.js | 5 + .../web/client/src/utils/func.js | 13 + .../web/client/src/utils/index.js | 11 + .../web/client/src/utils/webapi.js | 14 + code/VideoAccess-VCMP/web/config.js | 91 + code/VideoAccess-VCMP/web/jsconfig.json | 15 + .../VideoAccess-VCMP/web/middlewares/proxy.js | 16 + .../web/middlewares/vite-dev.js | 25 + .../web/middlewares/webpack-dev.js | 42 + code/VideoAccess-VCMP/web/package.json | 73 + code/VideoAccess-VCMP/web/readme.md | 214 ++ .../web/routes/attachment/index.js | 92 + code/VideoAccess-VCMP/web/routes/index.js | 20 + code/VideoAccess-VCMP/web/server.js | 8 + .../web/typings/node/node.d.ts | 2599 +++++++++++++++++ .../web/typings/react/react.d.ts | 2517 ++++++++++++++++ code/VideoAccess-VCMP/web/vite.config.js | 30 + code/VideoAccess-VCMP/web/webpack.config.js | 67 + .../web/webpack.config.prod.js | 76 + 75 files changed, 7130 insertions(+) create mode 100644 code/VideoAccess-VCMP/web/.babelrc create mode 100644 code/VideoAccess-VCMP/web/.vscode/launch.json create mode 100644 code/VideoAccess-VCMP/web/.vscode/settings.json create mode 100644 code/VideoAccess-VCMP/web/Dockerfile create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/1.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/10.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/11.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/12.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/2.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/3.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/4.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/5.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/6.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/7.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/8.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/9.png create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/avatar/avatar.jpg create mode 100644 code/VideoAccess-VCMP/web/client/index.ejs create mode 100644 code/VideoAccess-VCMP/web/client/index.html create mode 100644 code/VideoAccess-VCMP/web/client/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/app.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/components/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/index.less create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/actions/global.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/components/footer/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/components/header/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/components/sider/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/containers/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/containers/layout/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/containers/no-match/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/index.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/reducers/ajaxResponse.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/reducers/global.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/reducers/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/store/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/store/store.dev.js create mode 100644 code/VideoAccess-VCMP/web/client/src/layout/store/store.prod.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/actions/auth.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/actions/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/containers/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/containers/login.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/auth.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/routes.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/actions/example.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/actions/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/containers/example.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/containers/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/nav-item.jsx create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/reducers/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/routes.js create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/example/style.less create mode 100644 code/VideoAccess-VCMP/web/client/src/utils/authCode.js create mode 100644 code/VideoAccess-VCMP/web/client/src/utils/func.js create mode 100644 code/VideoAccess-VCMP/web/client/src/utils/index.js create mode 100644 code/VideoAccess-VCMP/web/client/src/utils/webapi.js create mode 100644 code/VideoAccess-VCMP/web/config.js create mode 100644 code/VideoAccess-VCMP/web/jsconfig.json create mode 100644 code/VideoAccess-VCMP/web/middlewares/proxy.js create mode 100644 code/VideoAccess-VCMP/web/middlewares/vite-dev.js create mode 100644 code/VideoAccess-VCMP/web/middlewares/webpack-dev.js create mode 100644 code/VideoAccess-VCMP/web/package.json create mode 100644 code/VideoAccess-VCMP/web/readme.md create mode 100644 code/VideoAccess-VCMP/web/routes/attachment/index.js create mode 100644 code/VideoAccess-VCMP/web/routes/index.js create mode 100644 code/VideoAccess-VCMP/web/server.js create mode 100644 code/VideoAccess-VCMP/web/typings/node/node.d.ts create mode 100644 code/VideoAccess-VCMP/web/typings/react/react.d.ts create mode 100644 code/VideoAccess-VCMP/web/vite.config.js create mode 100644 code/VideoAccess-VCMP/web/webpack.config.js create mode 100644 code/VideoAccess-VCMP/web/webpack.config.prod.js diff --git a/.gitignore b/.gitignore index 338003d..833feee 100644 --- a/.gitignore +++ b/.gitignore @@ -135,3 +135,6 @@ dist .yarn/install-state.gz .pnp.* +*yarn.lock +*package-lock.json +*log/ diff --git a/code/VideoAccess-VCMP/web/.babelrc b/code/VideoAccess-VCMP/web/.babelrc new file mode 100644 index 0000000..6c96eb8 --- /dev/null +++ b/code/VideoAccess-VCMP/web/.babelrc @@ -0,0 +1,17 @@ +{ + "presets": [ + "@babel/preset-react", + "@babel/preset-env" + ], + "plugins": [ + "@babel/plugin-proposal-class-properties", + "@babel/plugin-proposal-object-rest-spread", + // ["import", { + // // "libraryName": "antd", + // "libraryDirectory": "es" + // }] + ], + "env": { + "development": {} + } +} diff --git a/code/VideoAccess-VCMP/web/.vscode/launch.json b/code/VideoAccess-VCMP/web/.vscode/launch.json new file mode 100644 index 0000000..d48243f --- /dev/null +++ b/code/VideoAccess-VCMP/web/.vscode/launch.json @@ -0,0 +1,18 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Server", + "type": "node", + "request": "launch", + "program": "${workspaceRoot}/server.js", + "args": [ + "-u http://127.0.0.1:4000" + ], + "outputCapture": "std", + "env": { + "NODE_ENV": "development" + } + } + ] +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/.vscode/settings.json b/code/VideoAccess-VCMP/web/.vscode/settings.json new file mode 100644 index 0000000..f5f67f5 --- /dev/null +++ b/code/VideoAccess-VCMP/web/.vscode/settings.json @@ -0,0 +1,4 @@ +// 将设置放入此文件中以覆盖默认值和用户设置。 +{ + "editor.fontSize": 16, +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/Dockerfile b/code/VideoAccess-VCMP/web/Dockerfile new file mode 100644 index 0000000..02c9375 --- /dev/null +++ b/code/VideoAccess-VCMP/web/Dockerfile @@ -0,0 +1,12 @@ + +FROM repository.anxinyun.cn/base-images/nodejs12:20.10.12.2 + +COPY . /var/app + +WORKDIR /var/app + +EXPOSE 8080 + +CMD ["-u", "http://localhost:8088"] + +ENTRYPOINT [ "node", "server.js" ] \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/1.png b/code/VideoAccess-VCMP/web/client/assets/images/avatar/1.png new file mode 100644 index 0000000000000000000000000000000000000000..52dbdb84912a5f32ee03addf1896ed4c17d893df GIT binary patch literal 21982 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

XakS9U9sAZz-=B{r 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 literal 0 HcmV?d00001 diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/11.png b/code/VideoAccess-VCMP/web/client/assets/images/avatar/11.png new file mode 100644 index 0000000000000000000000000000000000000000..f569e09b72662e79f309ab856261bb364dedeb43 GIT binary patch literal 21035 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 literal 0 HcmV?d00001 diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/2.png b/code/VideoAccess-VCMP/web/client/assets/images/avatar/2.png new file mode 100644 index 0000000000000000000000000000000000000000..708e41d805e74bceaebb45402dbfda32d2d0f4fd GIT binary patch literal 21837 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 literal 0 HcmV?d00001 diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/3.png b/code/VideoAccess-VCMP/web/client/assets/images/avatar/3.png new file mode 100644 index 0000000000000000000000000000000000000000..933b3f10aef422721f8ab34704f5d9c001db515b GIT binary patch literal 22333 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 Ef(H5&@Bjb+ literal 0 HcmV?d00001 diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/6.png b/code/VideoAccess-VCMP/web/client/assets/images/avatar/6.png new file mode 100644 index 0000000000000000000000000000000000000000..157f56aa27946b5cf20e4d2941839d8ff889a42d GIT binary patch literal 20654 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 literal 0 HcmV?d00001 diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/8.png b/code/VideoAccess-VCMP/web/client/assets/images/avatar/8.png new file mode 100644 index 0000000000000000000000000000000000000000..3a01c876d7e9299114d26697e107157d2d764a29 GIT binary patch literal 22686 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 AzW@LL literal 0 HcmV?d00001 diff --git a/code/VideoAccess-VCMP/web/client/assets/images/avatar/avatar.jpg b/code/VideoAccess-VCMP/web/client/assets/images/avatar/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd6739f109ba44e368c0874bb5e9201bd42d1e1e GIT binary patch literal 207228 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

  • byfS{vBa@4bYNq?Ve?S^sqTSsW*p!`oE`LLjAm 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

    yYK^8)gC9cRFBbD&>!D}C;%S(by?;eadiLd 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 qs}A%(q~5 + + + + + + + + + +

    + + + \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/index.html b/code/VideoAccess-VCMP/web/client/index.html new file mode 100644 index 0000000..d7a7b3a --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/index.html @@ -0,0 +1,44 @@ + + + + + + + + + + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/index.js b/code/VideoAccess-VCMP/web/client/index.js new file mode 100644 index 0000000..734451c --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/index.js @@ -0,0 +1,20 @@ +/** + * User: liuxinyi/liu.xinyi@free-sun.com.cn + * Date: 2016/2/22 + * Time: 15:29 + * + */ +'use strict'; + +const views = require('koa-view'); +const path = require('path'); + +module.exports = { + entry: function (app, router, opt) { + app.use(views(__dirname)); + + router.get('(.*)', async function (ctx) { + await ctx.render(path.join(__dirname, './index')); + }); + } +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/app.jsx b/code/VideoAccess-VCMP/web/client/src/app.jsx new file mode 100644 index 0000000..a4fcd60 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/app.jsx @@ -0,0 +1,23 @@ +'use strict'; + +import React, { useEffect } from 'react'; +import Layout from './layout'; +import Auth from './sections/auth'; +import Example from './sections/example'; + +const App = props => { + const { projectName } = props + + useEffect(() => { + document.title = projectName; + }, []) + + return ( + + ) +} + +export default App; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/components/index.js b/code/VideoAccess-VCMP/web/client/src/components/index.js new file mode 100644 index 0000000..326a725 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/components/index.js @@ -0,0 +1,5 @@ +'use strict'; + +export { + +}; diff --git a/code/VideoAccess-VCMP/web/client/src/index.jsx b/code/VideoAccess-VCMP/web/client/src/index.jsx new file mode 100644 index 0000000..9a2559a --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/index.jsx @@ -0,0 +1,8 @@ +'use strict'; + +import React from 'react'; +import { render } from 'react-dom'; +import App from './app'; +import './index.less'; + +render((), document.getElementById('App')); \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/index.less b/code/VideoAccess-VCMP/web/client/src/index.less new file mode 100644 index 0000000..a4b488c --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/index.less @@ -0,0 +1,38 @@ +// webpack (vite 用 alias 兼容了) +@import '~@douyinfe/semi-ui/dist/css/semi.min.css'; +@import '~perfect-scrollbar/css/perfect-scrollbar.css'; +@import '~nprogress/nprogress.css'; + + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body { + margin: 0; + height: 100%; + width: 100%; + + a:link { + text-decoration: none; + color: unset + } + + a:visited { + text-decoration: none; + color: unset + } + + a:hover { + text-decoration: none; + color: unset + } + + a:active { + text-decoration: none; + color: unset + } +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/actions/global.js b/code/VideoAccess-VCMP/web/client/src/layout/actions/global.js new file mode 100644 index 0000000..0548a95 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/actions/global.js @@ -0,0 +1,44 @@ +'use strict'; +import { RouteRequest } from '@peace/utils'; +import { RouteTable } from '$utils' + +export const INIT_LAYOUT = 'INIT_LAYOUT'; +export function initLayout (title, copyright, sections, actions) { + return { + type: INIT_LAYOUT, + payload: { + title, + copyright, + sections, + actions + } + }; +} + +export const RESIZE = 'RESIZE'; +export function resize (clientHeight, clientWidth) { + const headerHeight = 60 + const footerHeight = 0 + return { + type: RESIZE, + payload: { + clientHeight: clientHeight - headerHeight - footerHeight, + clientWidth: clientWidth + } + } +} + +export const INIT_API_ROOT = 'INIT_API_ROOT'; +export function initApiRoot () { + return dispatch => { + RouteRequest.get(RouteTable.apiRoot).then(res => { + localStorage.setItem('apiRoot', res.root); + dispatch({ + type: INIT_API_ROOT, + payload: { + apiRoot: res.root + } + }) + }); + } +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/components/footer/index.jsx b/code/VideoAccess-VCMP/web/client/src/layout/components/footer/index.jsx new file mode 100644 index 0000000..307b319 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/components/footer/index.jsx @@ -0,0 +1,15 @@ +'use strict'; +import React from 'react'; +import moment from 'moment' + +export default class Footer extends React.Component { + render () { + // const { } = this.props; + + return ( +
    + Copyright © {moment().year()} All Rights Reserved 版权所有· 江西飞尚科技有限公司 +
    + ); + } +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/components/header/index.jsx b/code/VideoAccess-VCMP/web/client/src/layout/components/header/index.jsx new file mode 100644 index 0000000..9abadb1 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/components/header/index.jsx @@ -0,0 +1,43 @@ +'use strict'; +import React from 'react'; +import { connect } from 'react-redux'; +import { Nav } from '@douyinfe/semi-ui'; + +const Header = props => { + const { dispatch, history, user, actions } = props + + return ( +
    +
    +
    + 飞尚物联 +
    +
    + }> + + + +
    + + ) +}; + +function mapStateToProps (state) { + const { global, auth } = state; + return { + actions: global.actions, + user: auth.user + }; +} + +export default connect(mapStateToProps)(Header); \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/components/sider/index.jsx b/code/VideoAccess-VCMP/web/client/src/layout/components/sider/index.jsx new file mode 100644 index 0000000..fd1170a --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/components/sider/index.jsx @@ -0,0 +1,59 @@ +import React, { useEffect, useState } from 'react'; +import PerfectScrollbar from 'perfect-scrollbar'; +import { connect } from 'react-redux'; +import { Nav } from '@douyinfe/semi-ui'; +import { push } from 'react-router-redux'; + +let scrollbar = null +const Sider = props => { + const { collapsed, clientHeight, dispatch } = props + const [items, setItems] = useState([]) + const [selectedKeys, setSelectedKeys] = useState([]) + const [openKeys, setOpenKeys] = useState([]) + + useEffect(() => { + const { sections, dispatch, user } = props; + let nextItems = [] + for (let c of sections) { + if (typeof c.getNavItem == 'function') { + let item = c.getNavItem(user, dispatch); + if (item) { + nextItems.push.apply(nextItems, item) + } + } + } + setItems(nextItems) + + scrollbar = new PerfectScrollbar('#page-slider', { suppressScrollX: true }); + }, []) + + useEffect(() => { + if (scrollbar) { + scrollbar.update(); + } + }) + + return ( +
    +
    + ) +} + +function mapStateToProps (state) { + const { global } = state; + return { + clientHeight: global.clientHeight, + }; +} + +export default connect(mapStateToProps)(Sider); \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/containers/index.js b/code/VideoAccess-VCMP/web/client/src/layout/containers/index.js new file mode 100644 index 0000000..345ec16 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/containers/index.js @@ -0,0 +1,6 @@ +'use strict'; +import Layout from './layout'; +import NoMatch from './no-match'; + +export { Layout }; +export { NoMatch }; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/containers/layout/index.jsx b/code/VideoAccess-VCMP/web/client/src/layout/containers/layout/index.jsx new file mode 100644 index 0000000..6b74fab --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/containers/layout/index.jsx @@ -0,0 +1,135 @@ +'use strict'; + +import React, { useState, useEffect } from 'react'; +import { connect } from 'react-redux'; +import { Layout, Toast } from '@douyinfe/semi-ui'; +import Sider from '../../components/sider'; +import Header from '../../components/header'; +import Footer from '../../components/footer'; +import { resize } from '../../actions/global'; +import * as NProgress from 'nprogress'; +import PerfectScrollbar from 'perfect-scrollbar'; + +NProgress.configure({ + template: ` +
    +
    +
    +
    +
    +
    + ` +}); + +let scrollbar + +const LayoutContainer = props => { + const { + dispatch, msg, user, copyright, children, sections, clientWidth, clientHeight, + location, match, routes, history + } = props + const [collapsed, setCollapsed] = useState(false) + + NProgress.start(); + + const resize_ = () => { + dispatch(resize( + document.body.clientHeight, + document.body.clientWidth - (collapsed ? 120 : 240) + )); + } + + useEffect(() => { + scrollbar = new PerfectScrollbar('#page-content', { suppressScrollX: true }); + + window.addEventListener('resize', resize_); + return () => { + window.removeEventListener('resize', resize_); + } + }, []) + + useEffect(() => { + NProgress.done(); + if (!user || !user.authorized) { + history.push('/signin'); + } + if (msg) { + if (msg.done) { + Toast.success(msg.done); + } + if (msg.error) { + Toast.error(msg.error); + } + } + const dom = document.getElementById('page-content'); + if (dom) { + scrollbar.update(); + dom.scrollTop = 0; + } + }) + + return ( + + +
    { + setCollapsed(!collapsed); + }} + collapsed={collapsed} + history={history} + /> + + + + + + +
    +
    +
    + {children} +
    + +
    + +
    +
    +
    +
    + + ) +} + +function mapStateToProps (state) { + const { global, auth, ajaxResponse } = state; + return { + title: global.title, + copyright: global.copyright, + sections: global.sections, + actions: global.actions, + clientWidth: global.clientWidth, + clientHeight: global.clientHeight, + msg: ajaxResponse.msg, + user: auth.user + }; +} + +export default connect(mapStateToProps)(LayoutContainer); \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/containers/no-match/index.jsx b/code/VideoAccess-VCMP/web/client/src/layout/containers/no-match/index.jsx new file mode 100644 index 0000000..c0437a5 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/containers/no-match/index.jsx @@ -0,0 +1,18 @@ +'use strict'; + +import React from 'react'; +import moment from 'moment' + +const NoMatch = props => { + return ( +
    +

    404

    +

    PAGE NOT FOUND

    +

    很遗憾,您暂时无法访问该页面。

    +

    请检查您访问的链接地址是否正确。

    +

    Copyright © {moment().year()} 飞尚

    +
    + ) +} + +export default NoMatch; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/index.jsx b/code/VideoAccess-VCMP/web/client/src/layout/index.jsx new file mode 100644 index 0000000..8fd67a2 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/index.jsx @@ -0,0 +1,177 @@ +'use strict'; +import React, { useEffect, useState } from 'react'; +import moment from 'moment'; +import configStore from './store'; +import { Provider } from 'react-redux'; +import { createBrowserHistory } from 'history'; +import { ConnectedRouter } from 'connected-react-router' +import { Layout, NoMatch } from './containers'; +import { Switch, Route } from "react-router-dom"; +import { ConfigProvider } from '@douyinfe/semi-ui'; +import * as layoutActions from './actions/global'; +import zhCN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN'; +import { basicReducer } from '@peace/utils'; +import 'moment/locale/zh-cn'; + +moment.locale('zh-cn'); + +const { initLayout, initApiRoot, resize } = layoutActions; + +const Root = props => { + const { sections, title, copyright } = props; + const [history, setHistory] = useState(null) + const [store, setStore] = useState(null) + const [outerRoutes, setOuterRoutes] = useState([]) + const [combineRoutes, setCombineRoutes] = useState([]) + const [innnerRoutes, setInnerRoutes] = useState([]) + + const flatRoutes = (routes) => { + const combineRoutes = []; + + function flat (routes, parentRoute) { + routes.forEach((route, i) => { + let obj = { + path: route.path, + breadcrumb: route.breadcrumb, + component: route.component || null, + authCode: route.authCode || '', + key: route.key + } + if (!route.path.startsWith("/")) { + console.error('路由配置需以 "/" 开始:' + route.path); + } + if (route.path.length > 1 && route.path[route.path.length] == '/') { + console.error('除根路由路由配置不可以以 "/" 结束:' + route.path); + } + if (parentRoute && parentRoute != '/') { + obj.path = parentRoute + route.path; + } + if (route.exact) { + obj.exact = true + } + if (route.hasOwnProperty('childRoutes')) { + combineRoutes.push(obj); + flat(route.childRoutes, obj.path) + } else { + combineRoutes.push(obj) + } + }) + } + + flat(routes); + return combineRoutes; + } + + const initReducer = (reducers, reducerName, action) => { + let reducerParams = {} + const { actionType, initReducer, reducer } = action()() + if (initReducer || reducer) { + if (reducer) { + if (reducer.name) { + reducerName = reducer.name + } + if (reducer.params) { + reducerParams = reducer.params + } + } else { + reducerName = `${reducerName}Rslt` + } + reducers[reducerName] = function (state, action) { + return basicReducer(state, action, Object.assign({ actionType: actionType }, reducerParams)); + } + } + } + + useEffect(() => { + let innerRoutes = [] + let outerRoutes = [] + let reducers = {} + let actions = { + layout: layoutActions + } + + for (let s of sections) { + if (!s.key) console.warn('请给你的section添加一个key值,section name:' + s.name); + for (let r of s.routes) { + if (r.type == 'inner' || r.type == 'home') { + innerRoutes.push(r.route) + } else if (r.type == 'outer') { + outerRoutes.push(r.route) + } + } + if (s.reducers) { + reducers = { ...reducers, ...s.reducers } + } + if (s.actions) { + actions = { ...actions, [s.key]: s.actions } + if (s.key != 'auth') { + for (let ak in s.actions) { + let actions = s.actions[ak] + if (actions && typeof actions == 'object') { + for (let actionName in actions) { + initReducer(reducers, actionName, actions[actionName]) + } + } else if (typeof actions == 'function') { + initReducer(reducers, ak, actions) + } + } + } + } + } + + let history = createBrowserHistory(); + let store = configStore(reducers, history); + store.dispatch(initLayout(title, copyright, sections, actions)); + store.dispatch(resize(document.body.clientHeight, document.body.clientWidth)); + store.dispatch(actions.auth.initAuth()); + store.dispatch(initApiRoot()) + + const combineRoutes = flatRoutes(innerRoutes); + + setInnerRoutes(combineRoutes) + setHistory(history) + setStore(store) + setOuterRoutes(outerRoutes.map(route => ( + + ))) + setCombineRoutes(combineRoutes.map(route => ( + + ))) + }, []) + + return ( + store ? + + + + + {outerRoutes} + + {combineRoutes} + + + + + + + : '' + ) +} + +export default Root; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/reducers/ajaxResponse.js b/code/VideoAccess-VCMP/web/client/src/layout/reducers/ajaxResponse.js new file mode 100644 index 0000000..ee934d8 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/reducers/ajaxResponse.js @@ -0,0 +1,28 @@ +/** + * Created by liu.xinyi + * on 2016/4/1. + */ +'use strict'; +const initState = { + msg: null +}; + +import Immutable from 'immutable'; + +/** + * 全局ajax响应处理: + * 判断action中是否有done字段,如果有,则修改store中的msg.done + * 判断action中是否有error字段,如果有,则修改store中msg.error + * 在layout中根据msg的值,呈现提示信息。 +*/ +export default function ajaxResponse(state = initState, action) { + if (action.done) { + return Immutable.fromJS(state).set('msg', {done: action.done}).toJS(); + } + + if (action.error) { + return Immutable.fromJS(state).set('msg', {error: action.error}).toJS(); + } + + return {msg: null}; +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/reducers/global.js b/code/VideoAccess-VCMP/web/client/src/layout/reducers/global.js new file mode 100644 index 0000000..8159de4 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/reducers/global.js @@ -0,0 +1,36 @@ +'use strict'; +import Immutable from 'immutable'; +import { INIT_LAYOUT, RESIZE } from '../actions/global'; + +function global (state = { + title: '', + copyright: '', + sections: [], + actions: {}, + plugins: {}, + clientHeight: 768, + clientWidth: 1024 +}, action) { + const payload = action.payload; + switch (action.type) { + case RESIZE: + return Immutable.fromJS(state).merge({ + clientHeight: payload.clientHeight, + clientWidth: payload.clientWidth + }).toJS(); + case INIT_LAYOUT: + return { + title: payload.title, + copyright: payload.copyright, + sections: payload.sections, + actions: payload.actions, + plugins: payload.plugins, + clientHeight: state.clientHeight, + detailsComponent: null + }; + default: + return state; + } +} + +export default global; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/reducers/index.js b/code/VideoAccess-VCMP/web/client/src/layout/reducers/index.js new file mode 100644 index 0000000..975cbd5 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/reducers/index.js @@ -0,0 +1,15 @@ +/** + * User: liuxinyi/liu.xinyi@free-sun.com.cn + * Date: 2016/1/13 + * Time: 17:52 + * + */ +'use strict'; + +import global from './global'; +import ajaxResponse from './ajaxResponse'; + +export default { + global, + ajaxResponse +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/store/index.js b/code/VideoAccess-VCMP/web/client/src/layout/store/index.js new file mode 100644 index 0000000..b723906 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/store/index.js @@ -0,0 +1,13 @@ +'use strict'; + +import storeProd from './store.prod' +import storeDev from './store.dev' + +let store = null; +if (process.env.NODE_ENV == 'production') { + store = storeProd; +} else { + store = storeDev; +} + +export default store; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/store/store.dev.js b/code/VideoAccess-VCMP/web/client/src/layout/store/store.dev.js new file mode 100644 index 0000000..57beb1e --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/store/store.dev.js @@ -0,0 +1,30 @@ +/** + * Created by liu.xinyi + * on 2016/4/8. + */ +'use strict'; +import { createStore, combineReducers, applyMiddleware, compose } from 'redux'; +import reduxThunk from 'redux-thunk'; +import { connectRouter, routerMiddleware } from 'connected-react-router'; +import innerReducers from '../reducers'; + +function configStore(reducers, history) { + const reducer = Object.assign({}, innerReducers, reducers, { + router: connectRouter(history) + }); + + const composeEnhancers = + typeof window === 'object' && + window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? + window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ + // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize... + }) : compose; + + const enhancers = composeEnhancers( + applyMiddleware(routerMiddleware(history), reduxThunk) + ); + + return createStore(combineReducers(reducer), {}, enhancers); +} + +export default configStore; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/layout/store/store.prod.js b/code/VideoAccess-VCMP/web/client/src/layout/store/store.prod.js new file mode 100644 index 0000000..e29f026 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/layout/store/store.prod.js @@ -0,0 +1,20 @@ +/** + * Created by liu.xinyi + * on 2016/4/8. + */ +'use strict'; + +import { createStore, combineReducers, applyMiddleware } from 'redux'; +import reduxThunk from 'redux-thunk'; +import { connectRouter, routerMiddleware } from 'connected-react-router'; +import innerReducers from '../reducers'; + +function configStore(reducers, history){ + const reducer = Object.assign({}, innerReducers, reducers, { + router: connectRouter(history) + }); + + return createStore(combineReducers(reducer), {}, applyMiddleware(routerMiddleware(history), reduxThunk)); +} + +export default configStore; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/actions/auth.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/actions/auth.js new file mode 100644 index 0000000..a70b5aa --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/actions/auth.js @@ -0,0 +1,79 @@ +'use strict'; + +import { ApiTable } from '$utils' +import { Request } from '@peace/utils' + +export const INIT_AUTH = 'INIT_AUTH'; +export function initAuth () { + const user = JSON.parse(sessionStorage.getItem('user')) || {}; + return { + type: INIT_AUTH, + payload: { + user: user + } + }; +} + +export const REQUEST_LOGIN = 'REQUEST_LOGIN'; +export const LOGIN_SUCCESS = 'LOGIN_SUCCESS'; +export const LOGIN_ERROR = 'LOGIN_ERROR'; +export function login (username, password) { + return dispatch => { + dispatch({ type: REQUEST_LOGIN }); + + if (!username || !password) { + dispatch({ + type: LOGIN_ERROR, + payload: { error: '请输入账号名和密码' } + }); + return Promise.resolve(); + } + + return dispatch({ + type: LOGIN_SUCCESS, + payload: { + user: { + authorized: true, + displayName: 'TEST' + } + }, + }); + + const url = ApiTable.login; + return Request.post(url, { username, password, p: '456' }) + .then(user => { + sessionStorage.setItem('user', JSON.stringify(user)); + dispatch({ + type: LOGIN_SUCCESS, + payload: { user: user }, + }); + }, error => { + let { body } = error.response; + dispatch({ + type: LOGIN_ERROR, + payload: { + error: body && body.message ? body.message : '登录失败' + } + }) + }); + } +} + +export const LOGOUT = 'LOGOUT'; +export function logout (user) { + const token = user.token; + const url = ApiTable.logout; + sessionStorage.removeItem('user'); + Request.put(url, { + token: token + }); + return { + type: LOGOUT + }; +} + +export default { + initAuth, + login, + logout +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/actions/index.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/actions/index.js new file mode 100644 index 0000000..d44996e --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/actions/index.js @@ -0,0 +1,10 @@ +/** + * Created by liu.xinyi + * on 2016/4/1. + */ +'use strict'; +import auth from './auth'; + +export default { + ...auth +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/containers/index.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/containers/index.js new file mode 100644 index 0000000..9229b94 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/containers/index.js @@ -0,0 +1,4 @@ +'use strict'; +import Login from './login'; + +export { Login }; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/containers/login.jsx b/code/VideoAccess-VCMP/web/client/src/sections/auth/containers/login.jsx new file mode 100644 index 0000000..21aefea --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/containers/login.jsx @@ -0,0 +1,62 @@ +'use strict'; +import React, { useEffect, useRef } from 'react'; +import { connect } from 'react-redux'; +import { push } from 'react-router-redux'; +import { Form, Button, Toast } from '@douyinfe/semi-ui'; +import { login } from '../actions/auth'; + +const Login = props => { + const { dispatch, user, error, isRequesting } = props + const form = useRef(); + + useEffect(() => { + if (error) { + Toast.error(error); + form.current.setValue('password', '') + } + }, [error]) + + useEffect(() => { + if (user && user.authorized) { + dispatch(push('/example/e1')); + } + }, [user]) + + return ( +
    +
    +

    飞尚物联

    +
    { + dispatch(login(values.username, values.password)) + }} + getFormApi={formApi => form.current = formApi} + > + + + + +
    +
    + ); +} + +function mapStateToProps (state) { + const { auth } = state; + return { + user: auth.user, + error: auth.error, + isRequesting: auth.isRequesting + } +} + +export default connect(mapStateToProps)(Login); \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/index.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/index.js new file mode 100644 index 0000000..f8e40fb --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/index.js @@ -0,0 +1,12 @@ +'use strict'; + +import routes from './routes'; +import reducers from './reducers'; +import actions from './actions'; + +export default { + key: 'auth', + reducers: reducers, + routes: routes, + actions: actions +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/auth.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/auth.js new file mode 100644 index 0000000..edeebff --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/auth.js @@ -0,0 +1,40 @@ +'use strict'; +import * as actionTypes from '../actions/auth'; +import Immutable from 'immutable'; + +const initState = { + user: {}, + isRequesting: false, + error: null +}; + +function auth(state = initState, action) { + const payload = action.payload; + switch (action.type){ + case actionTypes.INIT_AUTH: + return Immutable.fromJS(state).set('user', payload.user).toJS(); + case actionTypes.REQUEST_LOGIN: + return Immutable.fromJS(state).merge({ + isRequesting: true, + error: null + }).toJS(); + case actionTypes.LOGIN_SUCCESS: + return Immutable.fromJS(state).merge({ + isRequesting: false, + user: payload.user + }).toJS(); + case actionTypes.LOGIN_ERROR: + return Immutable.fromJS(state).merge({ + isRequesting: false, + error: payload.error + }).toJS(); + case actionTypes.LOGOUT: + return Immutable.fromJS(state).merge({ + user: null + }).toJS(); + default: + return state; + } +} + +export default auth; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/index.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/index.js new file mode 100644 index 0000000..ba81f11 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/reducers/index.js @@ -0,0 +1,6 @@ +'use strict'; +import auth from './auth' + +export default { + auth +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/auth/routes.js b/code/VideoAccess-VCMP/web/client/src/sections/auth/routes.js new file mode 100644 index 0000000..d9a14ac --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/auth/routes.js @@ -0,0 +1,12 @@ +'use strict'; + +import { Login } from './containers'; + +export default [{ + type: 'outer', + route: { + key:'signin', + path: "/signin", + component: Login + } +}]; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/actions/example.js b/code/VideoAccess-VCMP/web/client/src/sections/example/actions/example.js new file mode 100644 index 0000000..b9b2ffb --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/actions/example.js @@ -0,0 +1,15 @@ +'use strict'; + +import { basicAction } from '@peace/utils' +import { ApiTable } from '$utils' + +export function getMembers(orgId) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + actionType: 'GET_MEMBERS', + url: `${ApiTable.getEnterprisesMembers.replace('{enterpriseId}', orgId)}`, + msg: { error: '获取用户列表失败' }, + reducer: { name: 'members' } + }); +} diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/actions/index.js b/code/VideoAccess-VCMP/web/client/src/sections/example/actions/index.js new file mode 100644 index 0000000..090c73f --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/actions/index.js @@ -0,0 +1,7 @@ +'use strict'; + +import * as example from './example' + +export default { + ...example +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/containers/example.jsx b/code/VideoAccess-VCMP/web/client/src/sections/example/containers/example.jsx new file mode 100644 index 0000000..b8e78fd --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/containers/example.jsx @@ -0,0 +1,45 @@ +import React, { useEffect } from 'react'; +import { connect } from 'react-redux'; +import { Spin, Card } from '@douyinfe/semi-ui'; + +const { Meta } = Card; + +const Example = (props) => { + const { dispatch, actions, user, loading } = props + + useEffect(() => { + // ACTION 示例 + dispatch(actions.example.getMembers(user.orgId)) + }, []) + + return ( + +
    +

    STYLE EXAMPLE

    +
    + + } + > + + +
    + ) +} + +function mapStateToProps (state) { + const { auth, global, members } = state; + return { + loading: members.isRequesting, + user: auth.user, + actions: global.actions, + members: members.data + }; +} + +export default connect(mapStateToProps)(Example); diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/containers/index.js b/code/VideoAccess-VCMP/web/client/src/sections/example/containers/index.js new file mode 100644 index 0000000..19e6695 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/containers/index.js @@ -0,0 +1,5 @@ +'use strict'; + +import Example from './example'; + +export { Example }; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/index.js b/code/VideoAccess-VCMP/web/client/src/sections/example/index.js new file mode 100644 index 0000000..92c4b45 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/index.js @@ -0,0 +1,15 @@ +'use strict'; + +import reducers from './reducers'; +import routes from './routes'; +import actions from './actions'; +import { getNavItem } from './nav-item'; + +export default { + key: 'example', + name: '书写示例', + reducers: reducers, + routes: routes, + actions: actions, + getNavItem: getNavItem +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/nav-item.jsx b/code/VideoAccess-VCMP/web/client/src/sections/example/nav-item.jsx new file mode 100644 index 0000000..cfcbbdc --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/nav-item.jsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { IconCode } from '@douyinfe/semi-icons'; + +export function getNavItem (user, dispatch) { + return ( + [ + { + itemKey: 'example', text: '举个栗子', icon: , + items: [ + { itemKey: 'e1', to: '/example/e1', text: '举个棒子' }, + ] + }, + ] + ); +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/reducers/index.js b/code/VideoAccess-VCMP/web/client/src/sections/example/reducers/index.js new file mode 100644 index 0000000..7ed1088 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/reducers/index.js @@ -0,0 +1,5 @@ +'use strict'; + +export default { + +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/routes.js b/code/VideoAccess-VCMP/web/client/src/sections/example/routes.js new file mode 100644 index 0000000..591e4ce --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/routes.js @@ -0,0 +1,18 @@ +'use strict'; +import { Example, } from './containers'; + +export default [{ + type: 'inner', + route: { + path: '/example', + key: 'example', + breadcrumb: '栗子', + // 不设置 component 则面包屑禁止跳转 + childRoutes: [{ + path: '/e1', + key: 'e1', + component: Example, + breadcrumb: '棒子', + }] + } +}]; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/sections/example/style.less b/code/VideoAccess-VCMP/web/client/src/sections/example/style.less new file mode 100644 index 0000000..75ecdb6 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/sections/example/style.less @@ -0,0 +1,7 @@ +#example { + box-shadow: 3px 3px 2px black; +} + +#example:hover { + color: yellowgreen; +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/utils/authCode.js b/code/VideoAccess-VCMP/web/client/src/utils/authCode.js new file mode 100644 index 0000000..971ccb5 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/utils/authCode.js @@ -0,0 +1,5 @@ +'use strict'; + +export const AuthorizationCode = { + +}; diff --git a/code/VideoAccess-VCMP/web/client/src/utils/func.js b/code/VideoAccess-VCMP/web/client/src/utils/func.js new file mode 100644 index 0000000..e473145 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/utils/func.js @@ -0,0 +1,13 @@ +'use strict'; + + export default class Func { + static isAuthorized(authcode) { + if (JSON.parse(sessionStorage.getItem('user'))) { + const { resources } = JSON.parse(sessionStorage.getItem('user')); + return resources.includes(authcode); + }else{ + return false; + } + } + } + \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/utils/index.js b/code/VideoAccess-VCMP/web/client/src/utils/index.js new file mode 100644 index 0000000..ebded4b --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/utils/index.js @@ -0,0 +1,11 @@ +'use strict'; +import Func from './func'; +import { AuthorizationCode } from './authCode'; +import { ApiTable, RouteTable } from './webapi' + +export { + Func, + ApiTable, + RouteTable, + AuthorizationCode, +} \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/client/src/utils/webapi.js b/code/VideoAccess-VCMP/web/client/src/utils/webapi.js new file mode 100644 index 0000000..5e33127 --- /dev/null +++ b/code/VideoAccess-VCMP/web/client/src/utils/webapi.js @@ -0,0 +1,14 @@ +'use strict'; + +export const ApiTable = { + login: 'login', + logout: 'logout', + + getEnterprisesMembers: 'enterprises/{enterpriseId}/members', +}; + +export const RouteTable = { + apiRoot: '/api/root', + fileUpload: '/_upload/new', + cleanUpUploadTrash: '/_upload/cleanup', +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/config.js b/code/VideoAccess-VCMP/web/config.js new file mode 100644 index 0000000..56b2ffa --- /dev/null +++ b/code/VideoAccess-VCMP/web/config.js @@ -0,0 +1,91 @@ +'use strict'; +/*jslint node:true*/ +const path = require('path'); +/*这种以CommonJS的同步形式去引入其它模块的方式代码更加简洁:获取组件*/ +const os = require('os'); +const moment = require('moment'); +const args = require('args'); +const dev = process.env.NODE_ENV == 'development' || process.env.NODE_ENV == 'developmentVite'; +const vite = process.env.NODE_ENV == 'developmentVite'; + +dev && console.log('\x1B[33m%s\x1b[0m', '请遵循并及时更新 readme.md,维护良好的开发环境,媛猿有责'); +// // 启动参数 +args.option(['p', 'port'], '启动端口'); +args.option(['u', 'api-url'], 'webapi的URL'); + +const flags = args.parse(process.argv); + +const API_URL = process.env.API_URL || flags.apiUrl; + +if (!API_URL) { + console.log('缺少启动参数,异常退出'); + args.showHelp(); + process.exit(-1); +} + +const product = { + port: flags.port || 8080, + staticDirs: [path.join(__dirname, './client')], + mws: [{ + entry: require('./middlewares/proxy').entry, + opts: { + host: API_URL, + match: /^\/_api\//, + } + }, { + entry: require('./routes').entry, + opts: { + apiUrl: API_URL, + staticRoot: './client', + } + }, { + entry: require('./client').entry,// 静态信息 + opts: {} + }], + logger: { + level: 'debug', + json: false, + filename: path.join(__dirname, 'log', 'runtime.txt'), + colorize: true, + maxsize: 1024 * 1024 * 5, + rotationFormat: false, + zippedArchive: true, + maxFiles: 10, + prettyPrint: true, + label: '', + timestamp: () => moment().format('YYYY-MM-DD HH:mm:ss.SSS'), + eol: os.EOL, + tailable: true, + depth: null, + showLevel: true, + maxRetries: 1 + } +}; + +let config; +if (dev) { + config = { + port: product.port, + staticDirs: product.staticDirs, + mws: product.mws + .concat([ + vite ? + { + entry: require('./middlewares/vite-dev').entry, + opts: {} + } + : + { + entry: require('./middlewares/webpack-dev').entry, + opts: {} + } + ]) + , + logger: product.logger + } + config.logger.filename = path.join(__dirname, 'log', 'development.txt'); +} else { + config = product; +} + +module.exports = config;//区分开发和发布 \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/jsconfig.json b/code/VideoAccess-VCMP/web/jsconfig.json new file mode 100644 index 0000000..99271a0 --- /dev/null +++ b/code/VideoAccess-VCMP/web/jsconfig.json @@ -0,0 +1,15 @@ +{ + + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "allowSyntheticDefaultImports": true + }, + "exclude": [ + "node_modules", + "bower_components", + "jspm_packages", + "tmp", + "temp" + ] +} diff --git a/code/VideoAccess-VCMP/web/middlewares/proxy.js b/code/VideoAccess-VCMP/web/middlewares/proxy.js new file mode 100644 index 0000000..c9a2623 --- /dev/null +++ b/code/VideoAccess-VCMP/web/middlewares/proxy.js @@ -0,0 +1,16 @@ +'use strict'; + +const proxy = require('koa-proxy'); +const convert = require('koa-convert'); + +module.exports = { + entry: function (app, router, opts) { + app.use(convert(proxy({ + host: opts.host, + match: opts.match, + map: function (path) { + return path.replace(opts.match, ''); + } + }))); + } +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/middlewares/vite-dev.js b/code/VideoAccess-VCMP/web/middlewares/vite-dev.js new file mode 100644 index 0000000..e05406f --- /dev/null +++ b/code/VideoAccess-VCMP/web/middlewares/vite-dev.js @@ -0,0 +1,25 @@ +'use strict'; + +const express = require('express') +const { createServer: createViteServer } = require('vite') + +module.exports = { + entry: async function (app, router, opts) { + const server = express() + + // 以中间件模式创建 Vite 服务器 + // 竟然会自动读 /vite.config.js 的配置 + const vite = await createViteServer({}) + // 将 vite 的 connect 实例作中间件使用 + server.use(vite.middlewares) + + server.use('*', async (req, res) => { + // 如果 `middlewareMode` 是 `'ssr'`,应在此为 `index.html` 提供服务. + // 如果 `middlewareMode` 是 `'html'`,则此处无需手动服务 `index.html` + // 因为 Vite 自会接管 + }) + + server.listen(5002) + console.info('vite server.listen 5002'); + } +}; diff --git a/code/VideoAccess-VCMP/web/middlewares/webpack-dev.js b/code/VideoAccess-VCMP/web/middlewares/webpack-dev.js new file mode 100644 index 0000000..7e7326c --- /dev/null +++ b/code/VideoAccess-VCMP/web/middlewares/webpack-dev.js @@ -0,0 +1,42 @@ +'use strict'; +const express = require('express') +const webpack = require('webpack'); +const devConfig = require('../webpack.config'); +const middleware = require('webpack-dev-middleware'); +const proxy = require('koa-better-http-proxy'); +const url = require('url'); + +const compiler = webpack(devConfig); + +module.exports = { + entry: function (app, router, opts) { + app.use(proxy('http://localhost:5001', { + filter: function (ctx) { + return /\/build/.test(url.parse(ctx.url).path); + }, + proxyReqPathResolver: function (ctx) { + return 'client' + url.parse(ctx.url).path; + } + })); + + app.use(proxy('http://localhost:5001', { + filter: function (ctx) { + return /\/$/.test(url.parse(ctx.url).path); + }, + proxyReqPathResolver: function (ctx) { + return 'client/build/index.html'; + } + })); + + const server = express(); + server.use(middleware(compiler)); + // server.use(require("webpack-hot-middleware")(compiler)); + server.listen('5001', function (err) { + if (err) { + console.error(err); + } else { + console.info(`webpack-dev listen 5001`); + } + }) + } +}; diff --git a/code/VideoAccess-VCMP/web/package.json b/code/VideoAccess-VCMP/web/package.json new file mode 100644 index 0000000..df4205b --- /dev/null +++ b/code/VideoAccess-VCMP/web/package.json @@ -0,0 +1,73 @@ +{ + "name": "fs-anxincloud-4.0", + "version": "1.0.0", + "description": "anxincloud-4.0", + "main": "server.js", + "scripts": { + "test": "mocha", + "start-vite": "cross-env NODE_ENV=developmentVite npm run start-params", + "start": "cross-env NODE_ENV=development npm run start-params", + "start-params": "node server -p 5000 -u http://127.0.0.1:4000", + "deploy": "export NODE_ENV=production&& npm run build && node server", + "build-dev": "export NODE_ENV=development&&webpack --config webpack.config.js", + "build": "export NODE_ENV=production&&webpack --config webpack.config.prod.js" + }, + "keywords": [ + "app" + ], + "author": "", + "license": "ISC", + "devDependencies": { + "@babel/core": "^7.14.6", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", + "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/polyfill": "^7.12.1", + "@babel/preset-env": "^7.14.7", + "@babel/preset-react": "^7.14.5", + "babel-loader": "^8.2.2", + "babel-plugin-import": "^1.13.3", + "connected-react-router": "^6.8.0", + "css-loader": "^3.5.0", + "express": "^4.17.1", + "file-loader": "^6.0.0", + "html-webpack-plugin": "^4.5.0", + "immutable": "^4.0.0-rc.12", + "less": "^3.12.2", + "less-loader": "^7.0.2", + "nprogress": "^0.2.0", + "react": "^17.0.0", + "react-dom": "^17.0.0", + "react-redux": "^7.2.1", + "react-router-dom": "^5.2.0", + "react-router-redux": "^4.0.8", + "redux": "^4.0.5", + "redux-thunk": "^2.3.0", + "style-loader": "^2.0.0", + "webpack": "^5.3.2", + "webpack-bundle-analyzer": "^4.1.0", + "webpack-cli": "^4.2.0", + "webpack-dev-middleware": "^4.0.2", + "webpack-hot-middleware": "^2.25.0" + }, + "dependencies": { + "@douyinfe/semi-ui": "^2.8.0", + "@fs/attachment": "^1.0.0", + "@peace/components": "0.0.35", + "@peace/utils": "0.0.37", + "@vitejs/plugin-react": "^1.3.1", + "@vitejs/plugin-react-refresh": "^1.3.6", + "args": "^5.0.1", + "cross-env": "^7.0.3", + "fs-web-server-scaffold": "^1.0.6", + "koa-better-http-proxy": "^0.2.5", + "koa-proxy": "^1.0.0-alpha.3", + "koa-view": "^2.1.4", + "moment": "^2.22.0", + "npm": "^7.20.6", + "perfect-scrollbar": "^1.5.5", + "superagent": "^6.1.0", + "vite": "^2.9.5", + "webpack-dev-server": "^3.11.2" + } +} diff --git a/code/VideoAccess-VCMP/web/readme.md b/code/VideoAccess-VCMP/web/readme.md new file mode 100644 index 0000000..69f86da --- /dev/null +++ b/code/VideoAccess-VCMP/web/readme.md @@ -0,0 +1,214 @@ +创建时间:2021/08/19 + +## 1. 文档维护: + +- 文档相关内容若有更改,请及时更新文档,以备后来者查询; + +## 2. 项目开发: + +- 请遵循此文档约定的目录结构与约定 + +```js + |-- .babelrc + |-- config.js + |-- Dockerfile + |-- jsconfig.json + |-- package.json + |-- readme.md + |-- server.js + |-- webpack.config.js + |-- webpack.config.prod.js + |-- .vscode + | |-- launch.json + | |-- settings.json + |-- client + | |-- index.ejs + | |-- index.html // 当前 html 文件 + | |-- index.js + | |-- assets // 资源文件 + | | |-- images + | | |-- avatar + | |-- src // 项目代码 + | |-- app.js // 由此开始并加载模块 + | |-- index.js + | |-- components // 公用组件 + | | |-- index.js // 由此导出组件 + | | |-- Upload + | | |-- index.js + | |-- layout // 项目布局以及初始化等操作 + | | |-- index.js + | | |-- actions + | | | |-- global.js + | | |-- components + | | | |-- footer + | | | | |-- index.js + | | | |-- header + | | | | |-- index.js + | | | |-- sider + | | | |-- index.js + | | |-- containers + | | | |-- index.js + | | | |-- layout + | | | | |-- index.js + | | | | |-- index.less + | | | |-- no-match + | | | |-- index.js + | | |-- reducers + | | | |-- ajaxResponse.js + | | | |-- global.js // 全局数据,主要包含屏幕可视宽高、所有的 action 等 + | | | |-- index.js + | | |-- store + | | |-- index.js + | | |-- store.dev.js + | | |-- store.prod.js + | |-- sections // 各功能模块 + | | |-- auth // 比较特别的 Auth 模块,目前 action、reducer 依然采用原始写法;包含登录、忘记密码等项目基本功能页面 + | | | |-- index.js + | | | |-- routes.js + | | | |-- actions + | | | | |-- auth.js + | | | | |-- index.js + | | | |-- components + | | | |-- containers + | | | | |-- index.js + | | | | |-- login.js + | | | |-- reducers + | | | | |-- auth.js + | | | | |-- index.js + | | | |-- __tests__ + | | |-- example // 示例模块,一般的功能模块应遵循此结构 + | | |-- index.js // 由此导出该模块信息,应包括一个 key 值,actions 等 + | | |-- nav-item.js // 用于生成菜单项,此文件内可以进行权限判断 + | | |-- routes.js // 路由文件 + | | |-- style.less // 样式文件,若样式并不是非常多,每个模块一个样式文件即可 + | | |-- actions + | | | |-- example.js // 具体的 action 操作 + | | | |-- index.js // 由此导出该项目的 action + | | |-- components // 组件 + | | |-- containers // 容器,此文件夹内应只包括该模块第一层级的页面 + | | | |-- example.js + | | | |-- index.js + | | |-- reducers // 若采用封装后的 action 写法,则 reducer 可不写 + | | |-- index.js + | |-- utils // + | |-- authCode.js + | |-- func.js // 常用函数 + | |-- index.js + | |-- webapi.js // api 路由 + |-- log + |-- middlewares + | |-- proxy.js + | |-- webpack-dev.js + |-- routes + | |-- index.js + | |-- attachment + |-- typings + |-- node + | |-- node.d.ts + |-- react + |-- react.d.ts +``` + +- 封装后一般 action 写法: + + `@peace/utils 的 actionHelp 中有详细注释` + + ``` js + 'use strict'; + + import { basicAction } from '@peace/utils' + import { ApiTable } from '$utils' + + export function getMembers(orgId) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + actionType: 'GET_MEMBERS', + url: `${ApiTable.getEnterprisesMembers.replace('{enterpriseId}', orgId)}`, + msg: { error: '获取用户列表失败' }, + reducer: { name: 'members' } + }); + } + ``` + +1. 若 type=post,则可以使用 data 属性发送对象格式数据; + +2. reducer.name 会作为该 action 对应的 reducer 的名字,从 state 里可以解构此变量,获得该 action 异步或其他操作获得的数据; + +3. msg 可以发送 `{ option:'获取用户列表' }` ,则 actionHelp 会自动将其处理为失败和成功两种情况; + + 若单独写 success 或 error 的 key,则只在成功或失败的时候进行提示; + +4. 后续可以优化:type=get 时候, + + 使用 query 属性将数据传递,在 @peace/utils 的 actionHelp 中将其添加到路由后面;eg. `{ enterpriseId: orgId }` + + 使用 replace 属性传递对象数据,对象数据中将被替换的值为key,替换的值为 value,然后再 actionHelp 中更改路由;eg. `{ "{enterpriseId}": orgId}` + +5. 最终取得的 reducer 中的数据格式一般为: + ``` js + { + data: xxx, // 接口返回的数据格式 + isRequesting: false, // 请求状态 + success: true, // 以此判断请求是否成功,不用再以 payload.type 判断 + } + ``` + +- actions 的引用 + + 从 reducer 的 state.global.actions 里引用具体 action + + ```js + const Example = (props) => { + const { dispatch, actions, user, loading } = props + + useEffect(() => { + dispatch(actions.example.getMembers(user.orgId)) + }, []) + + return ( + + example + + ) + } + + function mapStateToProps(state) { + const { auth, global, members } = state; + return { + loading: members.isRequesting, + user: auth.user, + actions: global.actions, + members: members.data + }; + } + + export default connect(mapStateToProps)(Example); + ``` + +- 一般路由配置 + ```js + 'use strict'; + import { Example, } from './containers'; + + export default [{ + type: 'inner', // 是否在layout 内,如果为outer,则看不到 header、footer、sider等布局,比如登陆页面 + route: { + path: '/example', + key: 'example', + breadcrumb: '栗子', + // 不设置 component 则面包屑禁止跳转 + childRoutes: [{ + path: '/e1', // 自路由不必复写父路由内容,会自动拼接; 则此处组件的实际路由为 /example/e1 + key: 'e1', + component: Example, + breadcrumb: '棒子', + }] + } + }]; + ``` +- cross-env 的使用限制 + + cross-env 可以统一不同操作系统下环境变量的导出方式,不用再在 windows 下写 set;linux 下写 export; 可以统一以 cross-env NODE_ENV=DEV 代替; + + 但是这样的话就不能在同一条运行的命令中使用 && 切割,因为会把命令切割为两个环境,则最终拿不到我们设置的变量; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/routes/attachment/index.js b/code/VideoAccess-VCMP/web/routes/attachment/index.js new file mode 100644 index 0000000..65061e0 --- /dev/null +++ b/code/VideoAccess-VCMP/web/routes/attachment/index.js @@ -0,0 +1,92 @@ +'use strict'; +const request = require('superagent'); +const parse = require('async-busboy'); +const path = require('path') +const fs = require('fs'); + +const ext = { + project: [".txt", ".dwg", ".doc", ".docx", ".xls", ".xlsx", ".pdf", ".png", ".jpg", ".svg"], + report: [".doc", ".docx", ".xls", ".xlsx", ".pdf"], + data: [".txt", ".xls", ".xlsx"], + image: [".png", ".jpg", ".svg"], + three: [".js"], + video: [".mp4"], + bpmn: [".bpmn", ".bpmn20.xml", ".zip", ".bar"], + app: [".apk"] +} + +module.exports = { + entry: function (app, router, opts) { + + const getApiRoot = async function (ctx) { + const { apiUrl } = opts; + + ctx.status = 200; + ctx.body = { root: apiUrl }; + }; + + let upload = async function (ctx, next) { + try { + const { files } = await parse(ctx.req); + const file = files[0]; + const extname = path.extname(file.filename).toLowerCase(); + const fileType = ctx.query.type || "image"; + const fileFolder = ctx.query.fileFolder || 'common'; + if (ext[fileType].indexOf(extname) < 0) { + ctx.status = 400; + ctx.body = JSON.stringify({ name: 'UploadFailed', message: '文件格式无效' }); + return; + } + const date = new Date().toLocaleDateString(); + const time = new Date().getTime(); + let fileName = time + '_' + file.filename; + let saveFile = path.join(__dirname, '../../', `/client/assets/files/${fileFolder}`, fileName); + const pathUrl = `./client/assets/files/${fileFolder}`; + + const res1 = fs.existsSync(`./client/assets/files/${fileFolder}`); + !res1 && fs.mkdirSync(`./client/assets/files/${fileFolder}`); + const res = fs.existsSync(pathUrl); + !res && fs.mkdirSync(pathUrl); + let stream = fs.createWriteStream(saveFile); + fs.createReadStream(file.path).pipe(stream); + stream.on('error', function (err) { + app.fs.logger.log('error', '[Upload Heatmap]', err); + }); + ctx.status = 200; + ctx.body = { filename: path.join(`/assets/files/${fileFolder}`, fileName), name: 'UploadSuccess', message: '上传成功' }; + } catch (err) { + ctx.status = 500; + ctx.fs.logger.error(err); + ctx.body = { err: 'upload error.' }; + } + } + + let remove = async function (ctx, next) { + try { + const fkeys = ctx.request.body; + let removeUrl = path.join(__dirname, '../../', './client', fkeys.url); + const res = fs.existsSync(removeUrl); + if (!res) { + ctx.status = 400; + ctx.body = JSON.stringify({ name: 'DeleteFailed', message: '文件地址不存在' }); + return; + } + fs.unlink(removeUrl, function (error) { + if (error) { + console.log(error); + } + }) + ctx.status = 200; + ctx.body = { name: 'DeleteSuccess.', message: '删除成功' }; + } catch (err) { + ctx.status = 500; + ctx.fs.logger.error(err); + ctx.body = { err: 'upload cleanup error.' }; + } + } + + router.get('/api/root', getApiRoot); + router.post('/_upload/new', upload); + router.delete('/_upload/cleanup', remove); + } +}; diff --git a/code/VideoAccess-VCMP/web/routes/index.js b/code/VideoAccess-VCMP/web/routes/index.js new file mode 100644 index 0000000..e81bfaa --- /dev/null +++ b/code/VideoAccess-VCMP/web/routes/index.js @@ -0,0 +1,20 @@ +/** + * Created by liu.xinyi + * on 2016/7/7. + */ +'use strict'; +const path = require('path'); +const fs = require('fs'); + +module.exports = { + entry: function (app, router, opts) { + fs.readdirSync(__dirname).forEach(function (dir) { + if(fs.lstatSync(path.join(__dirname, dir)).isDirectory()){ + fs.readdirSync(path.join(__dirname, dir)).forEach(function (api) { + require(`./${dir}/${api}`).entry(app, router, opts); + app.fs.logger.log('info', '[Router]', 'Inject api:', dir + '/' + path.basename(api, '.js')); + }); + } + }); + } +}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/server.js b/code/VideoAccess-VCMP/web/server.js new file mode 100644 index 0000000..9e2474a --- /dev/null +++ b/code/VideoAccess-VCMP/web/server.js @@ -0,0 +1,8 @@ +'use strict'; +/*jslint node:true*/ +//from koa + +const scaffold = require('fs-web-server-scaffold'); +const config = require('./config.js'); + +module.exports = scaffold(config); \ No newline at end of file diff --git a/code/VideoAccess-VCMP/web/typings/node/node.d.ts b/code/VideoAccess-VCMP/web/typings/node/node.d.ts new file mode 100644 index 0000000..bad534c --- /dev/null +++ b/code/VideoAccess-VCMP/web/typings/node/node.d.ts @@ -0,0 +1,2599 @@ +// Type definitions for Node.js v6.x +// Project: http://nodejs.org/ +// Definitions by: Microsoft TypeScript , DefinitelyTyped +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/************************************************ +* * +* Node.js v6.x API * +* * +************************************************/ + +interface Error { + stack?: string; +} + +interface ErrorConstructor { + captureStackTrace(targetObject: Object, constructorOpt?: Function): void; + stackTraceLimit: number; +} + +// compat for TypeScript 1.8 +// if you use with --target es3 or --target es5 and use below definitions, +// use the lib.es6.d.ts that is bundled with TypeScript 1.8. +interface MapConstructor { } +interface WeakMapConstructor { } +interface SetConstructor { } +interface WeakSetConstructor { } + +/************************************************ +* * +* GLOBAL * +* * +************************************************/ +declare var process: NodeJS.Process; +declare var global: NodeJS.Global; + +declare var __filename: string; +declare var __dirname: string; + +declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; +declare function clearTimeout(timeoutId: NodeJS.Timer): void; +declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; +declare function clearInterval(intervalId: NodeJS.Timer): void; +declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any; +declare function clearImmediate(immediateId: any): void; + +interface NodeRequireFunction { + (id: string): any; +} + +interface NodeRequire extends NodeRequireFunction { + resolve(id: string): string; + cache: any; + extensions: any; + main: any; +} + +declare var require: NodeRequire; + +interface NodeModule { + exports: any; + require: NodeRequireFunction; + id: string; + filename: string; + loaded: boolean; + parent: any; + children: any[]; +} + +declare var module: NodeModule; + +// Same as module.exports +declare var exports: any; +declare var SlowBuffer: { + new (str: string, encoding?: string): Buffer; + new (size: number): Buffer; + new (size: Uint8Array): Buffer; + new (array: any[]): Buffer; + prototype: Buffer; + isBuffer(obj: any): boolean; + byteLength(string: string, encoding?: string): number; + concat(list: Buffer[], totalLength?: number): Buffer; +}; + + +// Buffer class +type BufferEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "binary" | "hex"; +interface Buffer extends NodeBuffer { } + +/** + * Raw data is stored in instances of the Buffer class. + * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized. + * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + */ +declare var Buffer: { + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + new (str: string, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + new (size: number): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + new (array: Uint8Array): Buffer; + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + new (arrayBuffer: ArrayBuffer): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + new (array: any[]): Buffer; + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + new (buffer: Buffer): Buffer; + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + allocUnsafeSlow(size: number): Buffer; +}; + +/************************************************ +* * +* GLOBAL INTERFACES * +* * +************************************************/ +declare namespace NodeJS { + export interface ErrnoException extends Error { + errno?: number; + code?: string; + path?: string; + syscall?: string; + stack?: string; + } + + export interface EventEmitter { + addListener(event: string, listener: Function): this; + on(event: string, listener: Function): this; + once(event: string, listener: Function): this; + removeListener(event: string, listener: Function): this; + removeAllListeners(event?: string): this; + setMaxListeners(n: number): this; + getMaxListeners(): number; + listeners(event: string): Function[]; + emit(event: string, ...args: any[]): boolean; + listenerCount(type: string): number; + } + + export interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): string | Buffer; + setEncoding(encoding: string): void; + pause(): void; + resume(): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; + unshift(chunk: string): void; + unshift(chunk: Buffer): void; + wrap(oldStream: ReadableStream): ReadableStream; + } + + export interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Buffer | string, cb?: Function): boolean; + write(str: string, encoding?: string, cb?: Function): boolean; + end(): void; + end(buffer: Buffer, cb?: Function): void; + end(str: string, cb?: Function): void; + end(str: string, encoding?: string, cb?: Function): void; + } + + export interface ReadWriteStream extends ReadableStream, WritableStream { } + + export interface Events extends EventEmitter { } + + export interface Domain extends Events { + run(fn: Function): void; + add(emitter: Events): void; + remove(emitter: Events): void; + bind(cb: (err: Error, data: any) => any): any; + intercept(cb: (data: any) => any): any; + dispose(): void; + + addListener(event: string, listener: Function): this; + on(event: string, listener: Function): this; + once(event: string, listener: Function): this; + removeListener(event: string, listener: Function): this; + removeAllListeners(event?: string): this; + } + + export interface MemoryUsage { + rss: number; + heapTotal: number; + heapUsed: number; + } + + export interface Process extends EventEmitter { + stdout: WritableStream; + stderr: WritableStream; + stdin: ReadableStream; + argv: string[]; + execArgv: string[]; + execPath: string; + abort(): void; + chdir(directory: string): void; + cwd(): string; + env: any; + exit(code?: number): void; + getgid(): number; + setgid(id: number): void; + setgid(id: string): void; + getuid(): number; + setuid(id: number): void; + setuid(id: string): void; + version: string; + versions: { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + modules: string; + openssl: string; + }; + config: { + target_defaults: { + cflags: any[]; + default_configuration: string; + defines: string[]; + include_dirs: string[]; + libraries: string[]; + }; + variables: { + clang: number; + host_arch: string; + node_install_npm: boolean; + node_install_waf: boolean; + node_prefix: string; + node_shared_openssl: boolean; + node_shared_v8: boolean; + node_shared_zlib: boolean; + node_use_dtrace: boolean; + node_use_etw: boolean; + node_use_openssl: boolean; + target_arch: string; + v8_no_strict_aliasing: number; + v8_use_snapshot: boolean; + visibility: string; + }; + }; + kill(pid: number, signal?: string | number): void; + pid: number; + title: string; + arch: string; + platform: string; + memoryUsage(): MemoryUsage; + nextTick(callback: Function): void; + umask(mask?: number): number; + uptime(): number; + hrtime(time?: number[]): number[]; + domain: Domain; + + // Worker + send?(message: any, sendHandle?: any): void; + disconnect(): void; + connected: boolean; + } + + export interface Global { + Array: typeof Array; + ArrayBuffer: typeof ArrayBuffer; + Boolean: typeof Boolean; + Buffer: typeof Buffer; + DataView: typeof DataView; + Date: typeof Date; + Error: typeof Error; + EvalError: typeof EvalError; + Float32Array: typeof Float32Array; + Float64Array: typeof Float64Array; + Function: typeof Function; + GLOBAL: Global; + Infinity: typeof Infinity; + Int16Array: typeof Int16Array; + Int32Array: typeof Int32Array; + Int8Array: typeof Int8Array; + Intl: typeof Intl; + JSON: typeof JSON; + Map: MapConstructor; + Math: typeof Math; + NaN: typeof NaN; + Number: typeof Number; + Object: typeof Object; + Promise: Function; + RangeError: typeof RangeError; + ReferenceError: typeof ReferenceError; + RegExp: typeof RegExp; + Set: SetConstructor; + String: typeof String; + Symbol: Function; + SyntaxError: typeof SyntaxError; + TypeError: typeof TypeError; + URIError: typeof URIError; + Uint16Array: typeof Uint16Array; + Uint32Array: typeof Uint32Array; + Uint8Array: typeof Uint8Array; + Uint8ClampedArray: Function; + WeakMap: WeakMapConstructor; + WeakSet: WeakSetConstructor; + clearImmediate: (immediateId: any) => void; + clearInterval: (intervalId: NodeJS.Timer) => void; + clearTimeout: (timeoutId: NodeJS.Timer) => void; + console: typeof console; + decodeURI: typeof decodeURI; + decodeURIComponent: typeof decodeURIComponent; + encodeURI: typeof encodeURI; + encodeURIComponent: typeof encodeURIComponent; + escape: (str: string) => string; + eval: typeof eval; + global: Global; + isFinite: typeof isFinite; + isNaN: typeof isNaN; + parseFloat: typeof parseFloat; + parseInt: typeof parseInt; + process: Process; + root: Global; + setImmediate: (callback: (...args: any[]) => void, ...args: any[]) => any; + setInterval: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer; + setTimeout: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer; + undefined: typeof undefined; + unescape: (str: string) => string; + gc: () => void; + v8debug?: any; + } + + export interface Timer { + ref(): void; + unref(): void; + } +} + +/** + * @deprecated + */ +interface NodeBuffer extends Uint8Array { + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): any; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + // TODO: encoding param + indexOf(value: string | number | Buffer, byteOffset?: number): number; + // TODO: entries + // TODO: includes + // TODO: keys + // TODO: values +} + +/************************************************ +* * +* MODULES * +* * +************************************************/ +declare module "buffer" { + export var INSPECT_MAX_BYTES: number; + var BuffType: typeof Buffer; + var SlowBuffType: typeof SlowBuffer; + export { BuffType as Buffer, SlowBuffType as SlowBuffer }; +} + +declare module "querystring" { + export interface StringifyOptions { + encodeURIComponent?: Function; + } + + export interface ParseOptions { + maxKeys?: number; + decodeURIComponent?: Function; + } + + export function stringify(obj: T, sep?: string, eq?: string, options?: StringifyOptions): string; + export function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): any; + export function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): T; + export function escape(str: string): string; + export function unescape(str: string): string; +} + +declare module "events" { + export class EventEmitter implements NodeJS.EventEmitter { + static EventEmitter: EventEmitter; + static listenerCount(emitter: EventEmitter, event: string): number; // deprecated + static defaultMaxListeners: number; + + addListener(event: string, listener: Function): this; + on(event: string, listener: Function): this; + once(event: string, listener: Function): this; + prependListener(event: string, listener: Function): this; + prependOnceListener(event: string, listener: Function): this; + removeListener(event: string, listener: Function): this; + removeAllListeners(event?: string): this; + setMaxListeners(n: number): this; + getMaxListeners(): number; + listeners(event: string): Function[]; + emit(event: string, ...args: any[]): boolean; + eventNames(): string[]; + listenerCount(type: string): number; + } +} + +declare module "http" { + import * as events from "events"; + import * as net from "net"; + import * as stream from "stream"; + + export interface RequestOptions { + protocol?: string; + host?: string; + hostname?: string; + family?: number; + port?: number; + localAddress?: string; + socketPath?: string; + method?: string; + path?: string; + headers?: { [key: string]: any }; + auth?: string; + agent?: Agent | boolean; + } + + export interface Server extends events.EventEmitter, net.Server { + setTimeout(msecs: number, callback: Function): void; + maxHeadersCount: number; + timeout: number; + } + /** + * @deprecated Use IncomingMessage + */ + export interface ServerRequest extends IncomingMessage { + connection: net.Socket; + } + export interface ServerResponse extends events.EventEmitter, stream.Writable { + // Extended base methods + write(buffer: Buffer): boolean; + write(buffer: Buffer, cb?: Function): boolean; + write(str: string, cb?: Function): boolean; + write(str: string, encoding?: string, cb?: Function): boolean; + write(str: string, encoding?: string, fd?: string): boolean; + + writeContinue(): void; + writeHead(statusCode: number, reasonPhrase?: string, headers?: any): void; + writeHead(statusCode: number, headers?: any): void; + statusCode: number; + statusMessage: string; + headersSent: boolean; + setHeader(name: string, value: string | string[]): void; + setTimeout(msecs: number, callback: Function): ServerResponse; + sendDate: boolean; + getHeader(name: string): string; + removeHeader(name: string): void; + write(chunk: any, encoding?: string): any; + addTrailers(headers: any): void; + + // Extended base methods + end(): void; + end(buffer: Buffer, cb?: Function): void; + end(str: string, cb?: Function): void; + end(str: string, encoding?: string, cb?: Function): void; + end(data?: any, encoding?: string): void; + } + export interface ClientRequest extends events.EventEmitter, stream.Writable { + // Extended base methods + write(buffer: Buffer): boolean; + write(buffer: Buffer, cb?: Function): boolean; + write(str: string, cb?: Function): boolean; + write(str: string, encoding?: string, cb?: Function): boolean; + write(str: string, encoding?: string, fd?: string): boolean; + + write(chunk: any, encoding?: string): void; + abort(): void; + setTimeout(timeout: number, callback?: Function): void; + setNoDelay(noDelay?: boolean): void; + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + + setHeader(name: string, value: string | string[]): void; + getHeader(name: string): string; + removeHeader(name: string): void; + addTrailers(headers: any): void; + + // Extended base methods + end(): void; + end(buffer: Buffer, cb?: Function): void; + end(str: string, cb?: Function): void; + end(str: string, encoding?: string, cb?: Function): void; + end(data?: any, encoding?: string): void; + } + export interface IncomingMessage extends events.EventEmitter, stream.Readable { + httpVersion: string; + headers: any; + rawHeaders: string[]; + trailers: any; + rawTrailers: any; + setTimeout(msecs: number, callback: Function): NodeJS.Timer; + /** + * Only valid for request obtained from http.Server. + */ + method?: string; + /** + * Only valid for request obtained from http.Server. + */ + url?: string; + /** + * Only valid for response obtained from http.ClientRequest. + */ + statusCode?: number; + /** + * Only valid for response obtained from http.ClientRequest. + */ + statusMessage?: string; + socket: net.Socket; + } + /** + * @deprecated Use IncomingMessage + */ + export interface ClientResponse extends IncomingMessage { } + + export interface AgentOptions { + /** + * Keep sockets around in a pool to be used by other requests in the future. Default = false + */ + keepAlive?: boolean; + /** + * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. + * Only relevant if keepAlive is set to true. + */ + keepAliveMsecs?: number; + /** + * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity + */ + maxSockets?: number; + /** + * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. + */ + maxFreeSockets?: number; + } + + export class Agent { + maxSockets: number; + sockets: any; + requests: any; + + constructor(opts?: AgentOptions); + + /** + * Destroy any sockets that are currently in use by the agent. + * It is usually not necessary to do this. However, if you are using an agent with KeepAlive enabled, + * then it is best to explicitly shut down the agent when you know that it will no longer be used. Otherwise, + * sockets may hang open for quite a long time before the server terminates them. + */ + destroy(): void; + } + + export var METHODS: string[]; + + export var STATUS_CODES: { + [errorCode: number]: string; + [errorCode: string]: string; + }; + export function createServer(requestListener?: (request: IncomingMessage, response: ServerResponse) => void): Server; + export function createClient(port?: number, host?: string): any; + export function request(options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + export function get(options: any, callback?: (res: IncomingMessage) => void): ClientRequest; + export var globalAgent: Agent; +} + +declare module "cluster" { + import * as child from "child_process"; + import * as events from "events"; + + export interface ClusterSettings { + exec?: string; + args?: string[]; + silent?: boolean; + } + + export interface Address { + address: string; + port: number; + addressType: string; + } + + export class Worker extends events.EventEmitter { + id: string; + process: child.ChildProcess; + suicide: boolean; + send(message: any, sendHandle?: any): void; + kill(signal?: string): void; + destroy(signal?: string): void; + disconnect(): void; + isConnected(): boolean; + isDead(): boolean; + } + + export var settings: ClusterSettings; + export var isMaster: boolean; + export var isWorker: boolean; + export function setupMaster(settings?: ClusterSettings): void; + export function fork(env?: any): Worker; + export function disconnect(callback?: Function): void; + export var worker: Worker; + export var workers: { + [index: string]: Worker + }; + + // Event emitter + export function addListener(event: string, listener: Function): void; + export function on(event: "disconnect", listener: (worker: Worker) => void): void; + export function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): void; + export function on(event: "fork", listener: (worker: Worker) => void): void; + export function on(event: "listening", listener: (worker: Worker, address: any) => void): void; + export function on(event: "message", listener: (worker: Worker, message: any) => void): void; + export function on(event: "online", listener: (worker: Worker) => void): void; + export function on(event: "setup", listener: (settings: any) => void): void; + export function on(event: string, listener: Function): any; + export function once(event: string, listener: Function): void; + export function removeListener(event: string, listener: Function): void; + export function removeAllListeners(event?: string): void; + export function setMaxListeners(n: number): void; + export function listeners(event: string): Function[]; + export function emit(event: string, ...args: any[]): boolean; +} + +declare module "zlib" { + import * as stream from "stream"; + export interface ZlibOptions { chunkSize?: number; windowBits?: number; level?: number; memLevel?: number; strategy?: number; dictionary?: any; } + + export interface Gzip extends stream.Transform { } + export interface Gunzip extends stream.Transform { } + export interface Deflate extends stream.Transform { } + export interface Inflate extends stream.Transform { } + export interface DeflateRaw extends stream.Transform { } + export interface InflateRaw extends stream.Transform { } + export interface Unzip extends stream.Transform { } + + export function createGzip(options?: ZlibOptions): Gzip; + export function createGunzip(options?: ZlibOptions): Gunzip; + export function createDeflate(options?: ZlibOptions): Deflate; + export function createInflate(options?: ZlibOptions): Inflate; + export function createDeflateRaw(options?: ZlibOptions): DeflateRaw; + export function createInflateRaw(options?: ZlibOptions): InflateRaw; + export function createUnzip(options?: ZlibOptions): Unzip; + + export function deflate(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function deflateSync(buf: Buffer, options?: ZlibOptions): any; + export function deflateRaw(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function deflateRawSync(buf: Buffer, options?: ZlibOptions): any; + export function gzip(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function gzipSync(buf: Buffer, options?: ZlibOptions): any; + export function gunzip(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function gunzipSync(buf: Buffer, options?: ZlibOptions): any; + export function inflate(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function inflateSync(buf: Buffer, options?: ZlibOptions): any; + export function inflateRaw(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function inflateRawSync(buf: Buffer, options?: ZlibOptions): any; + export function unzip(buf: Buffer, callback: (error: Error, result: any) => void): void; + export function unzipSync(buf: Buffer, options?: ZlibOptions): any; + + // Constants + export var Z_NO_FLUSH: number; + export var Z_PARTIAL_FLUSH: number; + export var Z_SYNC_FLUSH: number; + export var Z_FULL_FLUSH: number; + export var Z_FINISH: number; + export var Z_BLOCK: number; + export var Z_TREES: number; + export var Z_OK: number; + export var Z_STREAM_END: number; + export var Z_NEED_DICT: number; + export var Z_ERRNO: number; + export var Z_STREAM_ERROR: number; + export var Z_DATA_ERROR: number; + export var Z_MEM_ERROR: number; + export var Z_BUF_ERROR: number; + export var Z_VERSION_ERROR: number; + export var Z_NO_COMPRESSION: number; + export var Z_BEST_SPEED: number; + export var Z_BEST_COMPRESSION: number; + export var Z_DEFAULT_COMPRESSION: number; + export var Z_FILTERED: number; + export var Z_HUFFMAN_ONLY: number; + export var Z_RLE: number; + export var Z_FIXED: number; + export var Z_DEFAULT_STRATEGY: number; + export var Z_BINARY: number; + export var Z_TEXT: number; + export var Z_ASCII: number; + export var Z_UNKNOWN: number; + export var Z_DEFLATED: number; + export var Z_NULL: number; +} + +declare module "os" { + export interface CpuInfo { + model: string; + speed: number; + times: { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; + }; + } + + export interface NetworkInterfaceInfo { + address: string; + netmask: string; + family: string; + mac: string; + internal: boolean; + } + + export function tmpdir(): string; + export function homedir(): string; + export function endianness(): "BE" | "LE"; + export function hostname(): string; + export function type(): string; + export function platform(): string; + export function arch(): string; + export function release(): string; + export function uptime(): number; + export function loadavg(): number[]; + export function totalmem(): number; + export function freemem(): number; + export function cpus(): CpuInfo[]; + export function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] }; + export var EOL: string; +} + +declare module "https" { + import * as tls from "tls"; + import * as events from "events"; + import * as http from "http"; + + export interface ServerOptions { + pfx?: any; + key?: any; + passphrase?: string; + cert?: any; + ca?: any; + crl?: any; + ciphers?: string; + honorCipherOrder?: boolean; + requestCert?: boolean; + rejectUnauthorized?: boolean; + NPNProtocols?: any; + SNICallback?: (servername: string) => any; + } + + export interface RequestOptions extends http.RequestOptions { + pfx?: any; + key?: any; + passphrase?: string; + cert?: any; + ca?: any; + ciphers?: string; + rejectUnauthorized?: boolean; + secureProtocol?: string; + } + + export interface Agent extends http.Agent { } + + export interface AgentOptions extends http.AgentOptions { + maxCachedSessions?: number; + } + + export var Agent: { + new (options?: AgentOptions): Agent; + }; + export interface Server extends tls.Server { } + export function createServer(options: ServerOptions, requestListener?: Function): Server; + export function request(options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + export function get(options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + export var globalAgent: Agent; +} + +declare module "punycode" { + export function decode(string: string): string; + export function encode(string: string): string; + export function toUnicode(domain: string): string; + export function toASCII(domain: string): string; + export var ucs2: ucs2; + interface ucs2 { + decode(string: string): number[]; + encode(codePoints: number[]): string; + } + export var version: any; +} + +declare module "repl" { + import * as stream from "stream"; + import * as events from "events"; + + export interface ReplOptions { + prompt?: string; + input?: NodeJS.ReadableStream; + output?: NodeJS.WritableStream; + terminal?: boolean; + eval?: Function; + useColors?: boolean; + useGlobal?: boolean; + ignoreUndefined?: boolean; + writer?: Function; + } + export function start(options: ReplOptions): events.EventEmitter; +} + +declare module "readline" { + import * as events from "events"; + import * as stream from "stream"; + + export interface Key { + sequence?: string; + name?: string; + ctrl?: boolean; + meta?: boolean; + shift?: boolean; + } + + export interface ReadLine extends events.EventEmitter { + setPrompt(prompt: string): void; + prompt(preserveCursor?: boolean): void; + question(query: string, callback: (answer: string) => void): void; + pause(): ReadLine; + resume(): ReadLine; + close(): void; + write(data: string | Buffer, key?: Key): void; + } + + export interface Completer { + (line: string): CompleterResult; + (line: string, callback: (err: any, result: CompleterResult) => void): any; + } + + export interface CompleterResult { + completions: string[]; + line: string; + } + + export interface ReadLineOptions { + input: NodeJS.ReadableStream; + output?: NodeJS.WritableStream; + completer?: Completer; + terminal?: boolean; + historySize?: number; + } + + export function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer, terminal?: boolean): ReadLine; + export function createInterface(options: ReadLineOptions): ReadLine; + + export function cursorTo(stream: NodeJS.WritableStream, x: number, y: number): void; + export function moveCursor(stream: NodeJS.WritableStream, dx: number | string, dy: number | string): void; + export function clearLine(stream: NodeJS.WritableStream, dir: number): void; + export function clearScreenDown(stream: NodeJS.WritableStream): void; +} + +declare module "vm" { + export interface Context { } + export interface ScriptOptions { + filename?: string; + lineOffset?: number; + columnOffset?: number; + displayErrors?: boolean; + timeout?: number; + cachedData?: Buffer; + produceCachedData?: boolean; + } + export interface RunningScriptOptions { + filename?: string; + lineOffset?: number; + columnOffset?: number; + displayErrors?: boolean; + timeout?: number; + } + export class Script { + constructor(code: string, options?: ScriptOptions); + runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any; + runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any; + runInThisContext(options?: RunningScriptOptions): any; + } + export function createContext(sandbox?: Context): Context; + export function isContext(sandbox: Context): boolean; + export function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions): any; + export function runInDebugContext(code: string): any; + export function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions): any; + export function runInThisContext(code: string, options?: RunningScriptOptions): any; +} + +declare module "child_process" { + import * as events from "events"; + import * as stream from "stream"; + + export interface ChildProcess extends events.EventEmitter { + stdin: stream.Writable; + stdout: stream.Readable; + stderr: stream.Readable; + stdio: [stream.Writable, stream.Readable, stream.Readable]; + pid: number; + kill(signal?: string): void; + send(message: any, sendHandle?: any): void; + connected: boolean; + disconnect(): void; + unref(): void; + ref(): void; + } + + export interface SpawnOptions { + cwd?: string; + env?: any; + stdio?: any; + detached?: boolean; + uid?: number; + gid?: number; + shell?: boolean | string; + } + export function spawn(command: string, args?: string[], options?: SpawnOptions): ChildProcess; + + export interface ExecOptions { + cwd?: string; + env?: any; + shell?: string; + timeout?: number; + maxBuffer?: number; + killSignal?: string; + uid?: number; + gid?: number; + } + export interface ExecOptionsWithStringEncoding extends ExecOptions { + encoding: BufferEncoding; + } + export interface ExecOptionsWithBufferEncoding extends ExecOptions { + encoding: string; // specify `null`. + } + export function exec(command: string, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + export function exec(command: string, options: ExecOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + // usage. child_process.exec("tsc", {encoding: null as string}, (err, stdout, stderr) => {}); + export function exec(command: string, options: ExecOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + export function exec(command: string, options: ExecOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + + export interface ExecFileOptions { + cwd?: string; + env?: any; + timeout?: number; + maxBuffer?: number; + killSignal?: string; + uid?: number; + gid?: number; + } + export interface ExecFileOptionsWithStringEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + export interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions { + encoding: string; // specify `null`. + } + export function execFile(file: string, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + export function execFile(file: string, options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + // usage. child_process.execFile("file.sh", {encoding: null as string}, (err, stdout, stderr) => {}); + export function execFile(file: string, options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + export function execFile(file: string, options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + export function execFile(file: string, args?: string[], callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + // usage. child_process.execFile("file.sh", ["foo"], {encoding: null as string}, (err, stdout, stderr) => {}); + export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + export function execFile(file: string, args?: string[], options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess; + + export interface ForkOptions { + cwd?: string; + env?: any; + execPath?: string; + execArgv?: string[]; + silent?: boolean; + uid?: number; + gid?: number; + } + export function fork(modulePath: string, args?: string[], options?: ForkOptions): ChildProcess; + + export interface SpawnSyncOptions { + cwd?: string; + input?: string | Buffer; + stdio?: any; + env?: any; + uid?: number; + gid?: number; + timeout?: number; + killSignal?: string; + maxBuffer?: number; + encoding?: string; + shell?: boolean | string; + } + export interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions { + encoding: BufferEncoding; + } + export interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions { + encoding: string; // specify `null`. + } + export interface SpawnSyncReturns { + pid: number; + output: string[]; + stdout: T; + stderr: T; + status: number; + signal: string; + error: Error; + } + export function spawnSync(command: string): SpawnSyncReturns; + export function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + export function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + export function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns; + export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptions): SpawnSyncReturns; + + export interface ExecSyncOptions { + cwd?: string; + input?: string | Buffer; + stdio?: any; + env?: any; + shell?: string; + uid?: number; + gid?: number; + timeout?: number; + killSignal?: string; + maxBuffer?: number; + encoding?: string; + } + export interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions { + encoding: BufferEncoding; + } + export interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions { + encoding: string; // specify `null`. + } + export function execSync(command: string): Buffer; + export function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string; + export function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer; + export function execSync(command: string, options?: ExecSyncOptions): Buffer; + + export interface ExecFileSyncOptions { + cwd?: string; + input?: string | Buffer; + stdio?: any; + env?: any; + uid?: number; + gid?: number; + timeout?: number; + killSignal?: string; + maxBuffer?: number; + encoding?: string; + } + export interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions { + encoding: BufferEncoding; + } + export interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions { + encoding: string; // specify `null`. + } + export function execFileSync(command: string): Buffer; + export function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string; + export function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; + export function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer; + export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithStringEncoding): string; + export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; + export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptions): Buffer; +} + +declare module "url" { + export interface Url { + href?: string; + protocol?: string; + auth?: string; + hostname?: string; + port?: string; + host?: string; + pathname?: string; + search?: string; + query?: string | any; + slashes?: boolean; + hash?: string; + path?: string; + } + + export function parse(urlStr: string, parseQueryString?: boolean, slashesDenoteHost?: boolean): Url; + export function format(url: Url): string; + export function resolve(from: string, to: string): string; +} + +declare module "dns" { + export function lookup(domain: string, family: number, callback: (err: Error, address: string, family: number) => void): string; + export function lookup(domain: string, callback: (err: Error, address: string, family: number) => void): string; + export function resolve(domain: string, rrtype: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolve(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolve4(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolve6(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolveMx(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolveTxt(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolveSrv(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolveNs(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function resolveCname(domain: string, callback: (err: Error, addresses: string[]) => void): string[]; + export function reverse(ip: string, callback: (err: Error, domains: string[]) => void): string[]; +} + +declare module "net" { + import * as stream from "stream"; + + export interface Socket extends stream.Duplex { + // Extended base methods + write(buffer: Buffer): boolean; + write(buffer: Buffer, cb?: Function): boolean; + write(str: string, cb?: Function): boolean; + write(str: string, encoding?: string, cb?: Function): boolean; + write(str: string, encoding?: string, fd?: string): boolean; + + connect(port: number, host?: string, connectionListener?: Function): void; + connect(path: string, connectionListener?: Function): void; + bufferSize: number; + setEncoding(encoding?: string): void; + write(data: any, encoding?: string, callback?: Function): void; + destroy(): void; + pause(): void; + resume(): void; + setTimeout(timeout: number, callback?: Function): void; + setNoDelay(noDelay?: boolean): void; + setKeepAlive(enable?: boolean, initialDelay?: number): void; + address(): { port: number; family: string; address: string; }; + unref(): void; + ref(): void; + + remoteAddress: string; + remoteFamily: string; + remotePort: number; + localAddress: string; + localPort: number; + bytesRead: number; + bytesWritten: number; + + // Extended base methods + end(): void; + end(buffer: Buffer, cb?: Function): void; + end(str: string, cb?: Function): void; + end(str: string, encoding?: string, cb?: Function): void; + end(data?: any, encoding?: string): void; + } + + export var Socket: { + new (options?: { fd?: string; type?: string; allowHalfOpen?: boolean; }): Socket; + }; + + export interface ListenOptions { + port?: number; + host?: string; + backlog?: number; + path?: string; + exclusive?: boolean; + } + + export interface Server extends Socket { + listen(port: number, hostname?: string, backlog?: number, listeningListener?: Function): Server; + listen(port: number, hostname?: string, listeningListener?: Function): Server; + listen(port: number, backlog?: number, listeningListener?: Function): Server; + listen(port: number, listeningListener?: Function): Server; + listen(path: string, backlog?: number, listeningListener?: Function): Server; + listen(path: string, listeningListener?: Function): Server; + listen(handle: any, backlog?: number, listeningListener?: Function): Server; + listen(handle: any, listeningListener?: Function): Server; + listen(options: ListenOptions, listeningListener?: Function): Server; + close(callback?: Function): Server; + address(): { port: number; family: string; address: string; }; + getConnections(cb: (error: Error, count: number) => void): void; + ref(): Server; + unref(): Server; + maxConnections: number; + connections: number; + } + export function createServer(connectionListener?: (socket: Socket) => void): Server; + export function createServer(options?: { allowHalfOpen?: boolean; }, connectionListener?: (socket: Socket) => void): Server; + export function connect(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket; + export function connect(port: number, host?: string, connectionListener?: Function): Socket; + export function connect(path: string, connectionListener?: Function): Socket; + export function createConnection(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket; + export function createConnection(port: number, host?: string, connectionListener?: Function): Socket; + export function createConnection(path: string, connectionListener?: Function): Socket; + export function isIP(input: string): number; + export function isIPv4(input: string): boolean; + export function isIPv6(input: string): boolean; +} + +declare module "dgram" { + import * as events from "events"; + + interface RemoteInfo { + address: string; + port: number; + size: number; + } + + interface AddressInfo { + address: string; + family: string; + port: number; + } + + export function createSocket(type: string, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + + interface Socket extends events.EventEmitter { + send(buf: Buffer, offset: number, length: number, port: number, address: string, callback?: (error: Error, bytes: number) => void): void; + bind(port: number, address?: string, callback?: () => void): void; + close(): void; + address(): AddressInfo; + setBroadcast(flag: boolean): void; + setMulticastTTL(ttl: number): void; + setMulticastLoopback(flag: boolean): void; + addMembership(multicastAddress: string, multicastInterface?: string): void; + dropMembership(multicastAddress: string, multicastInterface?: string): void; + } +} + +declare module "fs" { + import * as stream from "stream"; + import * as events from "events"; + + interface Stats { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + dev: number; + ino: number; + mode: number; + nlink: number; + uid: number; + gid: number; + rdev: number; + size: number; + blksize: number; + blocks: number; + atime: Date; + mtime: Date; + ctime: Date; + birthtime: Date; + } + + interface FSWatcher extends events.EventEmitter { + close(): void; + } + + export interface ReadStream extends stream.Readable { + close(): void; + destroy(): void; + } + export interface WriteStream extends stream.Writable { + close(): void; + bytesWritten: number; + } + + /** + * Asynchronous rename. + * @param oldPath + * @param newPath + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function rename(oldPath: string, newPath: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + /** + * Synchronous rename + * @param oldPath + * @param newPath + */ + export function renameSync(oldPath: string, newPath: string): void; + export function truncate(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function truncate(path: string | Buffer, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function truncateSync(path: string | Buffer, len?: number): void; + export function ftruncate(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function ftruncate(fd: number, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function ftruncateSync(fd: number, len?: number): void; + export function chown(path: string | Buffer, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function chownSync(path: string | Buffer, uid: number, gid: number): void; + export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function fchownSync(fd: number, uid: number, gid: number): void; + export function lchown(path: string | Buffer, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function lchownSync(path: string | Buffer, uid: number, gid: number): void; + export function chmod(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function chmod(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function chmodSync(path: string | Buffer, mode: number): void; + export function chmodSync(path: string | Buffer, mode: string): void; + export function fchmod(fd: number, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function fchmod(fd: number, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function fchmodSync(fd: number, mode: number): void; + export function fchmodSync(fd: number, mode: string): void; + export function lchmod(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function lchmod(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function lchmodSync(path: string | Buffer, mode: number): void; + export function lchmodSync(path: string | Buffer, mode: string): void; + export function stat(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void; + export function lstat(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void; + export function fstat(fd: number, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void; + export function statSync(path: string | Buffer): Stats; + export function lstatSync(path: string | Buffer): Stats; + export function fstatSync(fd: number): Stats; + export function link(srcpath: string | Buffer, dstpath: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function linkSync(srcpath: string | Buffer, dstpath: string | Buffer): void; + export function symlink(srcpath: string | Buffer, dstpath: string | Buffer, type?: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function symlinkSync(srcpath: string | Buffer, dstpath: string | Buffer, type?: string): void; + export function readlink(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void; + export function readlinkSync(path: string | Buffer): string; + export function realpath(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void; + export function realpath(path: string | Buffer, cache: { [path: string]: string }, callback: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void; + export function realpathSync(path: string | Buffer, cache?: { [path: string]: string }): string; + /* + * Asynchronous unlink - deletes the file specified in {path} + * + * @param path + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function unlink(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void; + /* + * Synchronous unlink - deletes the file specified in {path} + * + * @param path + */ + export function unlinkSync(path: string | Buffer): void; + /* + * Asynchronous rmdir - removes the directory specified in {path} + * + * @param path + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function rmdir(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void; + /* + * Synchronous rmdir - removes the directory specified in {path} + * + * @param path + */ + export function rmdirSync(path: string | Buffer): void; + /* + * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function mkdir(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void; + /* + * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param mode + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function mkdir(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + /* + * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param mode + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function mkdir(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + /* + * Synchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param mode + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function mkdirSync(path: string | Buffer, mode?: number): void; + /* + * Synchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param mode + * @param callback No arguments other than a possible exception are given to the completion callback. + */ + export function mkdirSync(path: string | Buffer, mode?: string): void; + /* + * Asynchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * + * @param prefix + * @param callback The created folder path is passed as a string to the callback's second parameter. + */ + export function mkdtemp(prefix: string, callback?: (err: NodeJS.ErrnoException, folder: string) => void): void; + /* + * Synchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * + * @param prefix + * @returns Returns the created folder path. + */ + export function mkdtempSync(prefix: string): string; + export function readdir(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void; + export function readdirSync(path: string | Buffer): string[]; + export function close(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function closeSync(fd: number): void; + export function open(path: string | Buffer, flags: string | number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void; + export function open(path: string | Buffer, flags: string | number, mode: number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void; + export function openSync(path: string | Buffer, flags: string | number, mode?: number): number; + export function utimes(path: string | Buffer, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function utimes(path: string | Buffer, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function utimesSync(path: string | Buffer, atime: number, mtime: number): void; + export function utimesSync(path: string | Buffer, atime: Date, mtime: Date): void; + export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function futimes(fd: number, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function futimesSync(fd: number, atime: number, mtime: number): void; + export function futimesSync(fd: number, atime: Date, mtime: Date): void; + export function fsync(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function fsyncSync(fd: number): void; + export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void; + export function write(fd: number, buffer: Buffer, offset: number, length: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void; + export function write(fd: number, data: any, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void; + export function write(fd: number, data: any, offset: number, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void; + export function write(fd: number, data: any, offset: number, encoding: string, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void; + export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position?: number): number; + export function writeSync(fd: number, data: any, position?: number, enconding?: string): number; + export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void; + export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; + /* + * Asynchronous readFile - Asynchronously reads the entire contents of a file. + * + * @param fileName + * @param encoding + * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file. + */ + export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void; + /* + * Asynchronous readFile - Asynchronously reads the entire contents of a file. + * + * @param fileName + * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFile returns a string; otherwise it returns a Buffer. + * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file. + */ + export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void; + /* + * Asynchronous readFile - Asynchronously reads the entire contents of a file. + * + * @param fileName + * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFile returns a string; otherwise it returns a Buffer. + * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file. + */ + export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void; + /* + * Asynchronous readFile - Asynchronously reads the entire contents of a file. + * + * @param fileName + * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file. + */ + export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void; + /* + * Synchronous readFile - Synchronously reads the entire contents of a file. + * + * @param fileName + * @param encoding + */ + export function readFileSync(filename: string, encoding: string): string; + /* + * Synchronous readFile - Synchronously reads the entire contents of a file. + * + * @param fileName + * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFileSync returns a string; otherwise it returns a Buffer. + */ + export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string; + /* + * Synchronous readFile - Synchronously reads the entire contents of a file. + * + * @param fileName + * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFileSync returns a string; otherwise it returns a Buffer. + */ + export function readFileSync(filename: string, options?: { flag?: string; }): Buffer; + export function writeFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void; + export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void; + export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void; + export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function appendFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void; + export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void; + export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void; + export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void; + export function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void; + export function unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void; + export function watch(filename: string, listener?: (event: string, filename: string) => any): FSWatcher; + export function watch(filename: string, encoding: string, listener?: (event: string, filename: string | Buffer) => any): FSWatcher; + export function watch(filename: string, options: { persistent?: boolean; recursive?: boolean; encoding?: string }, listener?: (event: string, filename: string | Buffer) => any): FSWatcher; + export function exists(path: string | Buffer, callback?: (exists: boolean) => void): void; + export function existsSync(path: string | Buffer): boolean; + /** Constant for fs.access(). File is visible to the calling process. */ + export var F_OK: number; + /** Constant for fs.access(). File can be read by the calling process. */ + export var R_OK: number; + /** Constant for fs.access(). File can be written by the calling process. */ + export var W_OK: number; + /** Constant for fs.access(). File can be executed by the calling process. */ + export var X_OK: number; + /** Tests a user's permissions for the file specified by path. */ + export function access(path: string | Buffer, callback: (err: NodeJS.ErrnoException) => void): void; + export function access(path: string | Buffer, mode: number, callback: (err: NodeJS.ErrnoException) => void): void; + /** Synchronous version of fs.access. This throws if any accessibility checks fail, and does nothing otherwise. */ + export function accessSync(path: string | Buffer, mode?: number): void; + export function createReadStream(path: string | Buffer, options?: { + flags?: string; + encoding?: string; + fd?: number; + mode?: number; + autoClose?: boolean; + start?: number; + end?: number; + }): ReadStream; + export function createWriteStream(path: string | Buffer, options?: { + flags?: string; + encoding?: string; + fd?: number; + mode?: number; + }): WriteStream; +} + +declare module "path" { + + /** + * A parsed path object generated by path.parse() or consumed by path.format(). + */ + export interface ParsedPath { + /** + * The root of the path such as '/' or 'c:\' + */ + root: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base: string; + /** + * The file extension (if any) such as '.html' + */ + ext: string; + /** + * The file name without extension (if any) such as 'index' + */ + name: string; + } + + /** + * Normalize a string path, reducing '..' and '.' parts. + * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. + * + * @param p string path to normalize. + */ + export function normalize(p: string): string; + /** + * Join all arguments together and normalize the resulting path. + * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown. + * + * @param paths string paths to join. + */ + export function join(...paths: any[]): string; + /** + * Join all arguments together and normalize the resulting path. + * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown. + * + * @param paths string paths to join. + */ + export function join(...paths: string[]): string; + /** + * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. + * + * Starting from leftmost {from} paramter, resolves {to} to an absolute path. + * + * If {to} isn't already absolute, {from} arguments are prepended in right to left order, until an absolute path is found. If after using all {from} paths still no absolute path is found, the current working directory is used as well. The resulting path is normalized, and trailing slashes are removed unless the path gets resolved to the root directory. + * + * @param pathSegments string paths to join. Non-string arguments are ignored. + */ + export function resolve(...pathSegments: any[]): string; + /** + * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. + * + * @param path path to test. + */ + export function isAbsolute(path: string): boolean; + /** + * Solve the relative path from {from} to {to}. + * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. + * + * @param from + * @param to + */ + export function relative(from: string, to: string): string; + /** + * Return the directory name of a path. Similar to the Unix dirname command. + * + * @param p the path to evaluate. + */ + export function dirname(p: string): string; + /** + * Return the last portion of a path. Similar to the Unix basename command. + * Often used to extract the file name from a fully qualified path. + * + * @param p the path to evaluate. + * @param ext optionally, an extension to remove from the result. + */ + export function basename(p: string, ext?: string): string; + /** + * Return the extension of the path, from the last '.' to end of string in the last portion of the path. + * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string + * + * @param p the path to evaluate. + */ + export function extname(p: string): string; + /** + * The platform-specific file separator. '\\' or '/'. + */ + export var sep: string; + /** + * The platform-specific file delimiter. ';' or ':'. + */ + export var delimiter: string; + /** + * Returns an object from a path string - the opposite of format(). + * + * @param pathString path to evaluate. + */ + export function parse(pathString: string): ParsedPath; + /** + * Returns a path string from an object - the opposite of parse(). + * + * @param pathString path to evaluate. + */ + export function format(pathObject: ParsedPath): string; + + export module posix { + export function normalize(p: string): string; + export function join(...paths: any[]): string; + export function resolve(...pathSegments: any[]): string; + export function isAbsolute(p: string): boolean; + export function relative(from: string, to: string): string; + export function dirname(p: string): string; + export function basename(p: string, ext?: string): string; + export function extname(p: string): string; + export var sep: string; + export var delimiter: string; + export function parse(p: string): ParsedPath; + export function format(pP: ParsedPath): string; + } + + export module win32 { + export function normalize(p: string): string; + export function join(...paths: any[]): string; + export function resolve(...pathSegments: any[]): string; + export function isAbsolute(p: string): boolean; + export function relative(from: string, to: string): string; + export function dirname(p: string): string; + export function basename(p: string, ext?: string): string; + export function extname(p: string): string; + export var sep: string; + export var delimiter: string; + export function parse(p: string): ParsedPath; + export function format(pP: ParsedPath): string; + } +} + +declare module "string_decoder" { + export interface NodeStringDecoder { + write(buffer: Buffer): string; + end(buffer?: Buffer): string; + } + export var StringDecoder: { + new (encoding?: string): NodeStringDecoder; + }; +} + +declare module "tls" { + import * as crypto from "crypto"; + import * as net from "net"; + import * as stream from "stream"; + + var CLIENT_RENEG_LIMIT: number; + var CLIENT_RENEG_WINDOW: number; + + export interface Certificate { + /** + * Country code. + */ + C: string; + /** + * Street. + */ + ST: string; + /** + * Locality. + */ + L: string; + /** + * Organization. + */ + O: string; + /** + * Organizational unit. + */ + OU: string; + /** + * Common name. + */ + CN: string; + } + + export interface CipherNameAndProtocol { + /** + * The cipher name. + */ + name: string; + /** + * SSL/TLS protocol version. + */ + version: string; + } + + export class TLSSocket extends stream.Duplex { + /** + * Returns the bound address, the address family name and port of the underlying socket as reported by + * the operating system. + * @returns {any} - An object with three properties, e.g. { port: 12346, family: 'IPv4', address: '127.0.0.1' }. + */ + address(): { port: number; family: string; address: string }; + /** + * A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false. + */ + authorized: boolean; + /** + * The reason why the peer's certificate has not been verified. + * This property becomes available only when tlsSocket.authorized === false. + */ + authorizationError: Error; + /** + * Static boolean value, always true. + * May be used to distinguish TLS sockets from regular ones. + */ + encrypted: boolean; + /** + * Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection. + * @returns {CipherNameAndProtocol} - Returns an object representing the cipher name + * and the SSL/TLS protocol version of the current connection. + */ + getCipher(): CipherNameAndProtocol; + /** + * Returns an object representing the peer's certificate. + * The returned object has some properties corresponding to the field of the certificate. + * If detailed argument is true the full chain with issuer property will be returned, + * if false only the top certificate without issuer property. + * If the peer does not provide a certificate, it returns null or an empty object. + * @param {boolean} detailed - If true; the full chain with issuer property will be returned. + * @returns {any} - An object representing the peer's certificate. + */ + getPeerCertificate(detailed?: boolean): { + subject: Certificate; + issuerInfo: Certificate; + issuer: Certificate; + raw: any; + valid_from: string; + valid_to: string; + fingerprint: string; + serialNumber: string; + }; + /** + * Could be used to speed up handshake establishment when reconnecting to the server. + * @returns {any} - ASN.1 encoded TLS session or undefined if none was negotiated. + */ + getSession(): any; + /** + * NOTE: Works only with client TLS sockets. + * Useful only for debugging, for session reuse provide session option to tls.connect(). + * @returns {any} - TLS session ticket or undefined if none was negotiated. + */ + getTLSTicket(): any; + /** + * The string representation of the local IP address. + */ + localAddress: string; + /** + * The numeric representation of the local port. + */ + localPort: string; + /** + * The string representation of the remote IP address. + * For example, '74.125.127.100' or '2001:4860:a005::68'. + */ + remoteAddress: string; + /** + * The string representation of the remote IP family. 'IPv4' or 'IPv6'. + */ + remoteFamily: string; + /** + * The numeric representation of the remote port. For example, 443. + */ + remotePort: number; + /** + * Initiate TLS renegotiation process. + * + * NOTE: Can be used to request peer's certificate after the secure connection has been established. + * ANOTHER NOTE: When running as the server, socket will be destroyed with an error after handshakeTimeout timeout. + * @param {TlsOptions} options - The options may contain the following fields: rejectUnauthorized, + * requestCert (See tls.createServer() for details). + * @param {Function} callback - callback(err) will be executed with null as err, once the renegotiation + * is successfully completed. + */ + renegotiate(options: TlsOptions, callback: (err: Error) => any): any; + /** + * Set maximum TLS fragment size (default and maximum value is: 16384, minimum is: 512). + * Smaller fragment size decreases buffering latency on the client: large fragments are buffered by + * the TLS layer until the entire fragment is received and its integrity is verified; + * large fragments can span multiple roundtrips, and their processing can be delayed due to packet + * loss or reordering. However, smaller fragments add extra TLS framing bytes and CPU overhead, + * which may decrease overall server throughput. + * @param {number} size - TLS fragment size (default and maximum value is: 16384, minimum is: 512). + * @returns {boolean} - Returns true on success, false otherwise. + */ + setMaxSendFragment(size: number): boolean; + } + + export interface TlsOptions { + host?: string; + port?: number; + pfx?: any; //string or buffer + key?: any; //string or buffer + passphrase?: string; + cert?: any; + ca?: any; //string or buffer + crl?: any; //string or string array + ciphers?: string; + honorCipherOrder?: any; + requestCert?: boolean; + rejectUnauthorized?: boolean; + NPNProtocols?: any; //array or Buffer; + SNICallback?: (servername: string) => any; + } + + export interface ConnectionOptions { + host?: string; + port?: number; + socket?: net.Socket; + pfx?: string | Buffer + key?: string | Buffer + passphrase?: string; + cert?: string | Buffer + ca?: (string | Buffer)[]; + rejectUnauthorized?: boolean; + NPNProtocols?: (string | Buffer)[]; + servername?: string; + } + + export interface Server extends net.Server { + close(): Server; + address(): { port: number; family: string; address: string; }; + addContext(hostName: string, credentials: { + key: string; + cert: string; + ca: string; + }): void; + maxConnections: number; + connections: number; + } + + export interface ClearTextStream extends stream.Duplex { + authorized: boolean; + authorizationError: Error; + getPeerCertificate(): any; + getCipher: { + name: string; + version: string; + }; + address: { + port: number; + family: string; + address: string; + }; + remoteAddress: string; + remotePort: number; + } + + export interface SecurePair { + encrypted: any; + cleartext: any; + } + + export interface SecureContextOptions { + pfx?: string | Buffer; + key?: string | Buffer; + passphrase?: string; + cert?: string | Buffer; + ca?: string | Buffer; + crl?: string | string[] + ciphers?: string; + honorCipherOrder?: boolean; + } + + export interface SecureContext { + context: any; + } + + export function createServer(options: TlsOptions, secureConnectionListener?: (cleartextStream: ClearTextStream) => void): Server; + export function connect(options: TlsOptions, secureConnectionListener?: () => void): ClearTextStream; + export function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): ClearTextStream; + export function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): ClearTextStream; + export function createSecurePair(credentials?: crypto.Credentials, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair; + export function createSecureContext(details: SecureContextOptions): SecureContext; +} + +declare module "crypto" { + export interface CredentialDetails { + pfx: string; + key: string; + passphrase: string; + cert: string; + ca: string | string[]; + crl: string | string[]; + ciphers: string; + } + export interface Credentials { context?: any; } + export function createCredentials(details: CredentialDetails): Credentials; + export function createHash(algorithm: string): Hash; + export function createHmac(algorithm: string, key: string): Hmac; + export function createHmac(algorithm: string, key: Buffer): Hmac; + export interface Hash { + update(data: any, input_encoding?: string): Hash; + digest(encoding: 'buffer'): Buffer; + digest(encoding: string): any; + digest(): Buffer; + } + export interface Hmac extends NodeJS.ReadWriteStream { + update(data: any, input_encoding?: string): Hmac; + digest(encoding: 'buffer'): Buffer; + digest(encoding: string): any; + digest(): Buffer; + } + export function createCipher(algorithm: string, password: any): Cipher; + export function createCipheriv(algorithm: string, key: any, iv: any): Cipher; + export interface Cipher extends NodeJS.ReadWriteStream { + update(data: Buffer): Buffer; + update(data: string, input_encoding: "utf8" | "ascii" | "binary"): Buffer; + update(data: Buffer, input_encoding: any, output_encoding: "binary" | "base64" | "hex"): string; + update(data: string, input_encoding: "utf8" | "ascii" | "binary", output_encoding: "binary" | "base64" | "hex"): string; + final(): Buffer; + final(output_encoding: string): string; + setAutoPadding(auto_padding: boolean): void; + getAuthTag(): Buffer; + } + export function createDecipher(algorithm: string, password: any): Decipher; + export function createDecipheriv(algorithm: string, key: any, iv: any): Decipher; + export interface Decipher extends NodeJS.ReadWriteStream { + update(data: Buffer): Buffer; + update(data: string, input_encoding: "binary" | "base64" | "hex"): Buffer; + update(data: Buffer, input_encoding: any, output_encoding: "utf8" | "ascii" | "binary"): string; + update(data: string, input_encoding: "binary" | "base64" | "hex", output_encoding: "utf8" | "ascii" | "binary"): string; + final(): Buffer; + final(output_encoding: string): string; + setAutoPadding(auto_padding: boolean): void; + setAuthTag(tag: Buffer): void; + } + export function createSign(algorithm: string): Signer; + export interface Signer extends NodeJS.WritableStream { + update(data: any): void; + sign(private_key: string, output_format: string): string; + } + export function createVerify(algorith: string): Verify; + export interface Verify extends NodeJS.WritableStream { + update(data: any): void; + verify(object: string, signature: string, signature_format?: string): boolean; + } + export function createDiffieHellman(prime_length: number): DiffieHellman; + export function createDiffieHellman(prime: number, encoding?: string): DiffieHellman; + export interface DiffieHellman { + generateKeys(encoding?: string): string; + computeSecret(other_public_key: string, input_encoding?: string, output_encoding?: string): string; + getPrime(encoding?: string): string; + getGenerator(encoding: string): string; + getPublicKey(encoding?: string): string; + getPrivateKey(encoding?: string): string; + setPublicKey(public_key: string, encoding?: string): void; + setPrivateKey(public_key: string, encoding?: string): void; + } + export function getDiffieHellman(group_name: string): DiffieHellman; + export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, callback: (err: Error, derivedKey: Buffer) => any): void; + export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string, callback: (err: Error, derivedKey: Buffer) => any): void; + export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number): Buffer; + export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string): Buffer; + export function randomBytes(size: number): Buffer; + export function randomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void; + export function pseudoRandomBytes(size: number): Buffer; + export function pseudoRandomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void; + export interface RsaPublicKey { + key: string; + padding?: any; + } + export interface RsaPrivateKey { + key: string; + passphrase?: string, + padding?: any; + } + export function publicEncrypt(public_key: string | RsaPublicKey, buffer: Buffer): Buffer + export function privateDecrypt(private_key: string | RsaPrivateKey, buffer: Buffer): Buffer +} + +declare module "stream" { + import * as events from "events"; + + export class Stream extends events.EventEmitter { + pipe(destination: T, options?: { end?: boolean; }): T; + } + + export interface ReadableOptions { + highWaterMark?: number; + encoding?: string; + objectMode?: boolean; + read?: (size?: number) => any; + } + + export class Readable extends events.EventEmitter implements NodeJS.ReadableStream { + readable: boolean; + constructor(opts?: ReadableOptions); + _read(size: number): void; + read(size?: number): any; + setEncoding(encoding: string): void; + pause(): void; + resume(): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; + unshift(chunk: any): void; + wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream; + push(chunk: any, encoding?: string): boolean; + } + + export interface WritableOptions { + highWaterMark?: number; + decodeStrings?: boolean; + objectMode?: boolean; + write?: (chunk: string|Buffer, encoding: string, callback: Function) => any; + writev?: (chunks: {chunk: string|Buffer, encoding: string}[], callback: Function) => any; + } + + export class Writable extends events.EventEmitter implements NodeJS.WritableStream { + writable: boolean; + constructor(opts?: WritableOptions); + _write(chunk: any, encoding: string, callback: Function): void; + write(chunk: any, cb?: Function): boolean; + write(chunk: any, encoding?: string, cb?: Function): boolean; + end(): void; + end(chunk: any, cb?: Function): void; + end(chunk: any, encoding?: string, cb?: Function): void; + } + + export interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean; + readableObjectMode?: boolean; + writableObjectMode?: boolean; + } + + // Note: Duplex extends both Readable and Writable. + export class Duplex extends Readable implements NodeJS.ReadWriteStream { + writable: boolean; + constructor(opts?: DuplexOptions); + _write(chunk: any, encoding: string, callback: Function): void; + write(chunk: any, cb?: Function): boolean; + write(chunk: any, encoding?: string, cb?: Function): boolean; + end(): void; + end(chunk: any, cb?: Function): void; + end(chunk: any, encoding?: string, cb?: Function): void; + } + + export interface TransformOptions extends ReadableOptions, WritableOptions { + transform?: (chunk: string|Buffer, encoding: string, callback: Function) => any; + flush?: (callback: Function) => any; + } + + // Note: Transform lacks the _read and _write methods of Readable/Writable. + export class Transform extends events.EventEmitter implements NodeJS.ReadWriteStream { + readable: boolean; + writable: boolean; + constructor(opts?: TransformOptions); + _transform(chunk: any, encoding: string, callback: Function): void; + _flush(callback: Function): void; + read(size?: number): any; + setEncoding(encoding: string): void; + pause(): void; + resume(): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; + unshift(chunk: any): void; + wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream; + push(chunk: any, encoding?: string): boolean; + write(chunk: any, cb?: Function): boolean; + write(chunk: any, encoding?: string, cb?: Function): boolean; + end(): void; + end(chunk: any, cb?: Function): void; + end(chunk: any, encoding?: string, cb?: Function): void; + } + + export class PassThrough extends Transform { } +} + +declare module "util" { + export interface InspectOptions { + showHidden?: boolean; + depth?: number; + colors?: boolean; + customInspect?: boolean; + } + + export function format(format: any, ...param: any[]): string; + export function debug(string: string): void; + export function error(...param: any[]): void; + export function puts(...param: any[]): void; + export function print(...param: any[]): void; + export function log(string: string): void; + export function inspect(object: any, showHidden?: boolean, depth?: number, color?: boolean): string; + export function inspect(object: any, options: InspectOptions): string; + export function isArray(object: any): boolean; + export function isRegExp(object: any): boolean; + export function isDate(object: any): boolean; + export function isError(object: any): boolean; + export function inherits(constructor: any, superConstructor: any): void; + export function debuglog(key: string): (msg: string, ...param: any[]) => void; +} + +declare module "assert" { + function internal(value: any, message?: string): void; + namespace internal { + export class AssertionError implements Error { + name: string; + message: string; + actual: any; + expected: any; + operator: string; + generatedMessage: boolean; + + constructor(options?: { + message?: string; actual?: any; expected?: any; + operator?: string; stackStartFunction?: Function + }); + } + + export function fail(actual?: any, expected?: any, message?: string, operator?: string): void; + export function ok(value: any, message?: string): void; + export function equal(actual: any, expected: any, message?: string): void; + export function notEqual(actual: any, expected: any, message?: string): void; + export function deepEqual(actual: any, expected: any, message?: string): void; + export function notDeepEqual(acutal: any, expected: any, message?: string): void; + export function strictEqual(actual: any, expected: any, message?: string): void; + export function notStrictEqual(actual: any, expected: any, message?: string): void; + export function deepStrictEqual(actual: any, expected: any, message?: string): void; + export function notDeepStrictEqual(actual: any, expected: any, message?: string): void; + export var throws: { + (block: Function, message?: string): void; + (block: Function, error: Function, message?: string): void; + (block: Function, error: RegExp, message?: string): void; + (block: Function, error: (err: any) => boolean, message?: string): void; + }; + + export var doesNotThrow: { + (block: Function, message?: string): void; + (block: Function, error: Function, message?: string): void; + (block: Function, error: RegExp, message?: string): void; + (block: Function, error: (err: any) => boolean, message?: string): void; + }; + + export function ifError(value: any): void; + } + + export = internal; +} + +declare module "tty" { + import * as net from "net"; + + export function isatty(fd: number): boolean; + export interface ReadStream extends net.Socket { + isRaw: boolean; + setRawMode(mode: boolean): void; + isTTY: boolean; + } + export interface WriteStream extends net.Socket { + columns: number; + rows: number; + isTTY: boolean; + } +} + +declare module "domain" { + import * as events from "events"; + + export class Domain extends events.EventEmitter implements NodeJS.Domain { + run(fn: Function): void; + add(emitter: events.EventEmitter): void; + remove(emitter: events.EventEmitter): void; + bind(cb: (err: Error, data: any) => any): any; + intercept(cb: (data: any) => any): any; + dispose(): void; + } + + export function create(): Domain; +} + +declare module "constants" { + export var E2BIG: number; + export var EACCES: number; + export var EADDRINUSE: number; + export var EADDRNOTAVAIL: number; + export var EAFNOSUPPORT: number; + export var EAGAIN: number; + export var EALREADY: number; + export var EBADF: number; + export var EBADMSG: number; + export var EBUSY: number; + export var ECANCELED: number; + export var ECHILD: number; + export var ECONNABORTED: number; + export var ECONNREFUSED: number; + export var ECONNRESET: number; + export var EDEADLK: number; + export var EDESTADDRREQ: number; + export var EDOM: number; + export var EEXIST: number; + export var EFAULT: number; + export var EFBIG: number; + export var EHOSTUNREACH: number; + export var EIDRM: number; + export var EILSEQ: number; + export var EINPROGRESS: number; + export var EINTR: number; + export var EINVAL: number; + export var EIO: number; + export var EISCONN: number; + export var EISDIR: number; + export var ELOOP: number; + export var EMFILE: number; + export var EMLINK: number; + export var EMSGSIZE: number; + export var ENAMETOOLONG: number; + export var ENETDOWN: number; + export var ENETRESET: number; + export var ENETUNREACH: number; + export var ENFILE: number; + export var ENOBUFS: number; + export var ENODATA: number; + export var ENODEV: number; + export var ENOENT: number; + export var ENOEXEC: number; + export var ENOLCK: number; + export var ENOLINK: number; + export var ENOMEM: number; + export var ENOMSG: number; + export var ENOPROTOOPT: number; + export var ENOSPC: number; + export var ENOSR: number; + export var ENOSTR: number; + export var ENOSYS: number; + export var ENOTCONN: number; + export var ENOTDIR: number; + export var ENOTEMPTY: number; + export var ENOTSOCK: number; + export var ENOTSUP: number; + export var ENOTTY: number; + export var ENXIO: number; + export var EOPNOTSUPP: number; + export var EOVERFLOW: number; + export var EPERM: number; + export var EPIPE: number; + export var EPROTO: number; + export var EPROTONOSUPPORT: number; + export var EPROTOTYPE: number; + export var ERANGE: number; + export var EROFS: number; + export var ESPIPE: number; + export var ESRCH: number; + export var ETIME: number; + export var ETIMEDOUT: number; + export var ETXTBSY: number; + export var EWOULDBLOCK: number; + export var EXDEV: number; + export var WSAEINTR: number; + export var WSAEBADF: number; + export var WSAEACCES: number; + export var WSAEFAULT: number; + export var WSAEINVAL: number; + export var WSAEMFILE: number; + export var WSAEWOULDBLOCK: number; + export var WSAEINPROGRESS: number; + export var WSAEALREADY: number; + export var WSAENOTSOCK: number; + export var WSAEDESTADDRREQ: number; + export var WSAEMSGSIZE: number; + export var WSAEPROTOTYPE: number; + export var WSAENOPROTOOPT: number; + export var WSAEPROTONOSUPPORT: number; + export var WSAESOCKTNOSUPPORT: number; + export var WSAEOPNOTSUPP: number; + export var WSAEPFNOSUPPORT: number; + export var WSAEAFNOSUPPORT: number; + export var WSAEADDRINUSE: number; + export var WSAEADDRNOTAVAIL: number; + export var WSAENETDOWN: number; + export var WSAENETUNREACH: number; + export var WSAENETRESET: number; + export var WSAECONNABORTED: number; + export var WSAECONNRESET: number; + export var WSAENOBUFS: number; + export var WSAEISCONN: number; + export var WSAENOTCONN: number; + export var WSAESHUTDOWN: number; + export var WSAETOOMANYREFS: number; + export var WSAETIMEDOUT: number; + export var WSAECONNREFUSED: number; + export var WSAELOOP: number; + export var WSAENAMETOOLONG: number; + export var WSAEHOSTDOWN: number; + export var WSAEHOSTUNREACH: number; + export var WSAENOTEMPTY: number; + export var WSAEPROCLIM: number; + export var WSAEUSERS: number; + export var WSAEDQUOT: number; + export var WSAESTALE: number; + export var WSAEREMOTE: number; + export var WSASYSNOTREADY: number; + export var WSAVERNOTSUPPORTED: number; + export var WSANOTINITIALISED: number; + export var WSAEDISCON: number; + export var WSAENOMORE: number; + export var WSAECANCELLED: number; + export var WSAEINVALIDPROCTABLE: number; + export var WSAEINVALIDPROVIDER: number; + export var WSAEPROVIDERFAILEDINIT: number; + export var WSASYSCALLFAILURE: number; + export var WSASERVICE_NOT_FOUND: number; + export var WSATYPE_NOT_FOUND: number; + export var WSA_E_NO_MORE: number; + export var WSA_E_CANCELLED: number; + export var WSAEREFUSED: number; + export var SIGHUP: number; + export var SIGINT: number; + export var SIGILL: number; + export var SIGABRT: number; + export var SIGFPE: number; + export var SIGKILL: number; + export var SIGSEGV: number; + export var SIGTERM: number; + export var SIGBREAK: number; + export var SIGWINCH: number; + export var SSL_OP_ALL: number; + export var SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; + export var SSL_OP_CIPHER_SERVER_PREFERENCE: number; + export var SSL_OP_CISCO_ANYCONNECT: number; + export var SSL_OP_COOKIE_EXCHANGE: number; + export var SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; + export var SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; + export var SSL_OP_EPHEMERAL_RSA: number; + export var SSL_OP_LEGACY_SERVER_CONNECT: number; + export var SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; + export var SSL_OP_MICROSOFT_SESS_ID_BUG: number; + export var SSL_OP_MSIE_SSLV2_RSA_PADDING: number; + export var SSL_OP_NETSCAPE_CA_DN_BUG: number; + export var SSL_OP_NETSCAPE_CHALLENGE_BUG: number; + export var SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; + export var SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; + export var SSL_OP_NO_COMPRESSION: number; + export var SSL_OP_NO_QUERY_MTU: number; + export var SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; + export var SSL_OP_NO_SSLv2: number; + export var SSL_OP_NO_SSLv3: number; + export var SSL_OP_NO_TICKET: number; + export var SSL_OP_NO_TLSv1: number; + export var SSL_OP_NO_TLSv1_1: number; + export var SSL_OP_NO_TLSv1_2: number; + export var SSL_OP_PKCS1_CHECK_1: number; + export var SSL_OP_PKCS1_CHECK_2: number; + export var SSL_OP_SINGLE_DH_USE: number; + export var SSL_OP_SINGLE_ECDH_USE: number; + export var SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; + export var SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; + export var SSL_OP_TLS_BLOCK_PADDING_BUG: number; + export var SSL_OP_TLS_D5_BUG: number; + export var SSL_OP_TLS_ROLLBACK_BUG: number; + export var ENGINE_METHOD_DSA: number; + export var ENGINE_METHOD_DH: number; + export var ENGINE_METHOD_RAND: number; + export var ENGINE_METHOD_ECDH: number; + export var ENGINE_METHOD_ECDSA: number; + export var ENGINE_METHOD_CIPHERS: number; + export var ENGINE_METHOD_DIGESTS: number; + export var ENGINE_METHOD_STORE: number; + export var ENGINE_METHOD_PKEY_METHS: number; + export var ENGINE_METHOD_PKEY_ASN1_METHS: number; + export var ENGINE_METHOD_ALL: number; + export var ENGINE_METHOD_NONE: number; + export var DH_CHECK_P_NOT_SAFE_PRIME: number; + export var DH_CHECK_P_NOT_PRIME: number; + export var DH_UNABLE_TO_CHECK_GENERATOR: number; + export var DH_NOT_SUITABLE_GENERATOR: number; + export var NPN_ENABLED: number; + export var RSA_PKCS1_PADDING: number; + export var RSA_SSLV23_PADDING: number; + export var RSA_NO_PADDING: number; + export var RSA_PKCS1_OAEP_PADDING: number; + export var RSA_X931_PADDING: number; + export var RSA_PKCS1_PSS_PADDING: number; + export var POINT_CONVERSION_COMPRESSED: number; + export var POINT_CONVERSION_UNCOMPRESSED: number; + export var POINT_CONVERSION_HYBRID: number; + export var O_RDONLY: number; + export var O_WRONLY: number; + export var O_RDWR: number; + export var S_IFMT: number; + export var S_IFREG: number; + export var S_IFDIR: number; + export var S_IFCHR: number; + export var S_IFBLK: number; + export var S_IFIFO: number; + export var S_IFSOCK: number; + export var S_IRWXU: number; + export var S_IRUSR: number; + export var S_IWUSR: number; + export var S_IXUSR: number; + export var S_IRWXG: number; + export var S_IRGRP: number; + export var S_IWGRP: number; + export var S_IXGRP: number; + export var S_IRWXO: number; + export var S_IROTH: number; + export var S_IWOTH: number; + export var S_IXOTH: number; + export var S_IFLNK: number; + export var O_CREAT: number; + export var O_EXCL: number; + export var O_NOCTTY: number; + export var O_DIRECTORY: number; + export var O_NOATIME: number; + export var O_NOFOLLOW: number; + export var O_SYNC: number; + export var O_SYMLINK: number; + export var O_DIRECT: number; + export var O_NONBLOCK: number; + export var O_TRUNC: number; + export var O_APPEND: number; + export var F_OK: number; + export var R_OK: number; + export var W_OK: number; + export var X_OK: number; + export var UV_UDP_REUSEADDR: number; +} diff --git a/code/VideoAccess-VCMP/web/typings/react/react.d.ts b/code/VideoAccess-VCMP/web/typings/react/react.d.ts new file mode 100644 index 0000000..57ef054 --- /dev/null +++ b/code/VideoAccess-VCMP/web/typings/react/react.d.ts @@ -0,0 +1,2517 @@ +// Type definitions for React v0.14 +// Project: http://facebook.github.io/react/ +// Definitions by: Asana , AssureSign , Microsoft +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace __React { + + // + // React Elements + // ---------------------------------------------------------------------- + + type ReactType = string | ComponentClass | StatelessComponent; + + type Key = string | number; + type Ref = string | ((instance: T) => any); + type ComponentState = {} | void; + + interface Attributes { + key?: Key; + } + interface ClassAttributes extends Attributes { + ref?: Ref; + } + + interface ReactElement

    { + type: string | ComponentClass

    | SFC

    ; + props: P; + key?: Key; + } + + interface SFCElement

    extends ReactElement

    { + type: SFC

    ; + } + + type CElement> = ComponentElement; + interface ComponentElement> extends ReactElement

    { + type: ComponentClass

    ; + ref?: Ref; + } + + type ClassicElement

    = CElement>; + + interface DOMElement

    extends ReactElement

    { + type: string; + ref: Ref; + } + + interface ReactHTMLElement extends DOMElement { + } + + interface ReactSVGElement extends DOMElement { + } + + // + // Factories + // ---------------------------------------------------------------------- + + interface Factory

    { + (props?: P & Attributes, ...children: ReactNode[]): ReactElement

    ; + } + + interface SFCFactory

    { + (props?: P & Attributes, ...children: ReactNode[]): SFCElement

    ; + } + + interface ComponentFactory> { + (props?: P & ClassAttributes, ...children: ReactNode[]): CElement; + } + + type CFactory> = ComponentFactory; + type ClassicFactory

    = CFactory>; + + interface DOMFactory

    { + (props?: P & ClassAttributes, ...children: ReactNode[]): DOMElement; + } + + interface HTMLFactory extends DOMFactory { + } + + interface SVGFactory extends DOMFactory { + } + + // + // React Nodes + // http://facebook.github.io/react/docs/glossary.html + // ---------------------------------------------------------------------- + + type ReactText = string | number; + type ReactChild = ReactElement | ReactText; + + // Should be Array but type aliases cannot be recursive + type ReactFragment = {} | Array; + type ReactNode = ReactChild | ReactFragment | boolean; + + // + // Top Level API + // ---------------------------------------------------------------------- + + function createClass(spec: ComponentSpec): ClassicComponentClass

    ; + + function createFactory

    ( + type: string): DOMFactory; + function createFactory

    (type: SFC

    ): SFCFactory

    ; + function createFactory

    ( + type: ClassType, ClassicComponentClass

    >): CFactory>; + function createFactory, C extends ComponentClass

    >( + type: ClassType): CFactory; + function createFactory

    (type: ComponentClass

    | SFC

    ): Factory

    ; + + function createElement

    ( + type: string, + props?: P & ClassAttributes, + ...children: ReactNode[]): DOMElement; + function createElement

    ( + type: SFC

    , + props?: P & Attributes, + ...children: ReactNode[]): SFCElement

    ; + function createElement

    ( + type: ClassType, ClassicComponentClass

    >, + props?: P & ClassAttributes>, + ...children: ReactNode[]): CElement>; + function createElement, C extends ComponentClass

    >( + type: ClassType, + props?: P & ClassAttributes, + ...children: ReactNode[]): CElement; + function createElement

    ( + type: ComponentClass

    | SFC

    , + props?: P & Attributes, + ...children: ReactNode[]): ReactElement

    ; + + function cloneElement

    ( + element: DOMElement, + props?: P & ClassAttributes, + ...children: ReactNode[]): DOMElement; + function cloneElement

    ( + element: SFCElement

    , + props?: Q, // should be Q & Attributes, but then Q is inferred as {} + ...children: ReactNode[]): SFCElement

    ; + function cloneElement

    >( + element: CElement, + props?: Q, // should be Q & ClassAttributes + ...children: ReactNode[]): CElement; + function cloneElement

    ( + element: ReactElement

    , + props?: Q, // should be Q & Attributes + ...children: ReactNode[]): ReactElement

    ; + + function isValidElement

    (object: {}): object is ReactElement

    ; + + var DOM: ReactDOM; + var PropTypes: ReactPropTypes; + var Children: ReactChildren; + var version: string; + + // + // Component API + // ---------------------------------------------------------------------- + + type ReactInstance = Component | Element; + + // Base component for plain JS classes + class Component implements ComponentLifecycle { + constructor(props?: P, context?: any); + setState(f: (prevState: S, props: P) => S, callback?: () => any): void; + setState(state: S, callback?: () => any): void; + forceUpdate(callback?: () => any): void; + render(): JSX.Element; + + // React.Props is now deprecated, which means that the `children` + // property is not available on `P` by default, even though you can + // always pass children as variadic arguments to `createElement`. + // In the future, if we can define its call signature conditionally + // on the existence of `children` in `P`, then we should remove this. + props: P & { children?: ReactNode }; + state: S; + context: {}; + refs: { + [key: string]: ReactInstance + }; + } + + interface ClassicComponent extends Component { + replaceState(nextState: S, callback?: () => any): void; + isMounted(): boolean; + getInitialState?(): S; + } + + interface ChildContextProvider { + getChildContext(): CC; + } + + // + // Class Interfaces + // ---------------------------------------------------------------------- + + type SFC

    = StatelessComponent

    ; + interface StatelessComponent

    { + (props?: P, context?: any): ReactElement; + propTypes?: ValidationMap

    ; + contextTypes?: ValidationMap; + defaultProps?: P; + displayName?: string; + } + + interface ComponentClass

    { + new(props?: P, context?: any): Component; + propTypes?: ValidationMap

    ; + contextTypes?: ValidationMap; + childContextTypes?: ValidationMap; + defaultProps?: P; + displayName?: string; + } + + interface ClassicComponentClass

    extends ComponentClass

    { + new(props?: P, context?: any): ClassicComponent; + getDefaultProps?(): P; + } + + /** + * We use an intersection type to infer multiple type parameters from + * a single argument, which is useful for many top-level API defs. + * See https://github.com/Microsoft/TypeScript/issues/7234 for more info. + */ + type ClassType, C extends ComponentClass

    > = + C & + (new() => T) & + (new() => { props: P }); + + // + // Component Specs and Lifecycle + // ---------------------------------------------------------------------- + + interface ComponentLifecycle { + componentWillMount?(): void; + componentDidMount?(): void; + componentWillReceiveProps?(nextProps: P, nextContext: any): void; + shouldComponentUpdate?(nextProps: P, nextState: S, nextContext: any): boolean; + componentWillUpdate?(nextProps: P, nextState: S, nextContext: any): void; + componentDidUpdate?(prevProps: P, prevState: S, prevContext: any): void; + componentWillUnmount?(): void; + } + + interface Mixin extends ComponentLifecycle { + mixins?: Mixin; + statics?: { + [key: string]: any; + }; + + displayName?: string; + propTypes?: ValidationMap; + contextTypes?: ValidationMap; + childContextTypes?: ValidationMap; + + getDefaultProps?(): P; + getInitialState?(): S; + } + + interface ComponentSpec extends Mixin { + render(): ReactElement; + + [propertyName: string]: any; + } + + // + // Event System + // ---------------------------------------------------------------------- + + interface SyntheticEvent { + bubbles: boolean; + cancelable: boolean; + currentTarget: EventTarget; + defaultPrevented: boolean; + eventPhase: number; + isTrusted: boolean; + nativeEvent: Event; + preventDefault(): void; + stopPropagation(): void; + target: EventTarget; + timeStamp: Date; + type: string; + } + + interface ClipboardEvent extends SyntheticEvent { + clipboardData: DataTransfer; + } + + interface CompositionEvent extends SyntheticEvent { + data: string; + } + + interface DragEvent extends MouseEvent { + dataTransfer: DataTransfer; + } + + interface FocusEvent extends SyntheticEvent { + relatedTarget: EventTarget; + } + + interface FormEvent extends SyntheticEvent { + } + + interface KeyboardEvent extends SyntheticEvent { + altKey: boolean; + charCode: number; + ctrlKey: boolean; + getModifierState(key: string): boolean; + key: string; + keyCode: number; + locale: string; + location: number; + metaKey: boolean; + repeat: boolean; + shiftKey: boolean; + which: number; + } + + interface MouseEvent extends SyntheticEvent { + altKey: boolean; + button: number; + buttons: number; + clientX: number; + clientY: number; + ctrlKey: boolean; + getModifierState(key: string): boolean; + metaKey: boolean; + pageX: number; + pageY: number; + relatedTarget: EventTarget; + screenX: number; + screenY: number; + shiftKey: boolean; + } + + interface TouchEvent extends SyntheticEvent { + altKey: boolean; + changedTouches: TouchList; + ctrlKey: boolean; + getModifierState(key: string): boolean; + metaKey: boolean; + shiftKey: boolean; + targetTouches: TouchList; + touches: TouchList; + } + + interface UIEvent extends SyntheticEvent { + detail: number; + view: AbstractView; + } + + interface WheelEvent extends MouseEvent { + deltaMode: number; + deltaX: number; + deltaY: number; + deltaZ: number; + } + + interface AnimationEvent extends SyntheticEvent { + animationName: string; + pseudoElement: string; + elapsedTime: number; + } + + interface TransitionEvent extends SyntheticEvent { + propertyName: string; + pseudoElement: string; + elapsedTime: number; + } + + // + // Event Handler Types + // ---------------------------------------------------------------------- + + interface EventHandler { + (event: E): void; + } + + type ReactEventHandler = EventHandler; + + type ClipboardEventHandler = EventHandler; + type CompositionEventHandler = EventHandler; + type DragEventHandler = EventHandler; + type FocusEventHandler = EventHandler; + type FormEventHandler = EventHandler; + type KeyboardEventHandler = EventHandler; + type MouseEventHandler = EventHandler; + type TouchEventHandler = EventHandler; + type UIEventHandler = EventHandler; + type WheelEventHandler = EventHandler; + type AnimationEventHandler = EventHandler; + type TransitionEventHandler = EventHandler; + + // + // Props / DOM Attributes + // ---------------------------------------------------------------------- + + /** + * @deprecated. This was used to allow clients to pass `ref` and `key` + * to `createElement`, which is no longer necessary due to intersection + * types. If you need to declare a props object before passing it to + * `createElement` or a factory, use `ClassAttributes`: + * + * ```ts + * var b: Button; + * var props: ButtonProps & ClassAttributes