diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore index 8225baa..07e6e47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ /node_modules -/dist diff --git a/README.md b/README.md index f2d589d..776ec45 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ +# 显示板件的控件 -显示板件的控件,使用例子请参照项目:`CADViewSample` +使用例子请参照项目:[CADViewSample](http://git.cf/cx/CADViewSample) diff --git a/dist/CameraControls.d.ts b/dist/CameraControls.d.ts new file mode 100644 index 0000000..bbb8ebe --- /dev/null +++ b/dist/CameraControls.d.ts @@ -0,0 +1,45 @@ +import * as THREE from 'three'; +import { KeyBoard, MouseKey } from './KeyEnum'; +import { Viewer } from './Viewer'; +export declare enum CameraControlState { + Null = 0, + Pan = 1, + Rotate = 2, + Scale = 3, +} +export declare class CameraControls { + m_TouthTypeList: CameraControlState[]; + m_domElement: HTMLElement; + m_StartClickPoint: THREE.Vector3; + m_EndClickPoint: THREE.Vector3; + m_DollyStart: THREE.Vector2; + m_DollyEnd: THREE.Vector2; + m_KeyDown: Map; + m_MouseDown: Map; + m_State: CameraControlState; + m_Viewer: Viewer; + m_LeftUseRotate: boolean; + constructor(viewer: Viewer); + RegisterEvent(): void; + /** + * 窗体失去焦点时. + * + * @memberof CameraControls + */ + onBlur: () => void; + onTouchStart: (event: TouchEvent) => void; + onTouchEnd: (event: TouchEvent) => void; + onTouchMove: (event: TouchEvent) => void; + beginRotate(): void; + onMouseDown: (event: MouseEvent) => void; + onMouseUp: (event: MouseEvent) => void; + onMouseMove: (event: MouseEvent) => void; + /** + * 鼠标滚轮事件 + * + * @memberof CameraControls + */ + onMouseWheel: (event: WheelEvent) => void; + onKeyDown: (event: KeyboardEvent) => void; + onKeyUp: (event: KeyboardEvent) => void; +} diff --git a/dist/CameraControls.js b/dist/CameraControls.js new file mode 100644 index 0000000..1d031f4 --- /dev/null +++ b/dist/CameraControls.js @@ -0,0 +1,205 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const KeyEnum_1 = require("./KeyEnum"); +const three_1 = require("three"); +//控制类型 +var CameraControlsEnabled; +(function (CameraControlsEnabled) { + CameraControlsEnabled[CameraControlsEnabled["Rotate"] = 1] = "Rotate"; + CameraControlsEnabled[CameraControlsEnabled["Zoom"] = 2] = "Zoom"; + CameraControlsEnabled[CameraControlsEnabled["Pan"] = 4] = "Pan"; +})(CameraControlsEnabled || (CameraControlsEnabled = {})); +//相机控制状态 +var CameraControlState; +(function (CameraControlState) { + CameraControlState[CameraControlState["Null"] = 0] = "Null"; + CameraControlState[CameraControlState["Pan"] = 1] = "Pan"; + CameraControlState[CameraControlState["Rotate"] = 2] = "Rotate"; + CameraControlState[CameraControlState["Scale"] = 3] = "Scale"; +})(CameraControlState = exports.CameraControlState || (exports.CameraControlState = {})); +class CameraControls { + constructor(viewer) { + this.m_TouthTypeList = [CameraControlState.Rotate, CameraControlState.Scale, CameraControlState.Pan]; + //起始点击 + this.m_StartClickPoint = new THREE.Vector3(); + this.m_EndClickPoint = new THREE.Vector3(); + this.m_DollyStart = new THREE.Vector2(); + this.m_DollyEnd = new THREE.Vector2(); + this.m_KeyDown = new Map(); + this.m_MouseDown = new Map(); + //状态 + this.m_State = CameraControlState.Null; + //左键使用旋转 + this.m_LeftUseRotate = true; + /** + * 窗体失去焦点时. + * + * @memberof CameraControls + */ + this.onBlur = () => { + this.m_KeyDown.clear(); + this.m_MouseDown.clear(); + }; + //触屏开始事件 + this.onTouchStart = (event) => { + this.m_Viewer.UpdateLockTarget(); + this.m_StartClickPoint.set(event.touches[0].pageX, event.touches[0].pageY, 0); + if (event.touches.length < 4) { + if (event.touches.length == 2) { + var dx = event.touches[0].pageX - event.touches[1].pageX; + var dy = event.touches[0].pageY - event.touches[1].pageY; + var distance = Math.sqrt(dx * dx + dy * dy); + this.m_DollyStart.set(0, distance); + } + this.m_State = this.m_TouthTypeList[event.touches.length - 1]; + } + }; + this.onTouchEnd = (event) => { + this.m_State = CameraControlState.Null; + }; + this.onTouchMove = (event) => { + event.preventDefault(); + event.stopPropagation(); + this.m_EndClickPoint.set(event.touches[0].pageX, event.touches[0].pageY, 0); + let vec = this.m_EndClickPoint.clone().sub(this.m_StartClickPoint); + switch (this.m_State) { + case CameraControlState.Pan: + { + this.m_Viewer.Pan(vec); + break; + } + case CameraControlState.Scale: + { + var dx = event.touches[0].pageX - event.touches[1].pageX; + var dy = event.touches[0].pageY - event.touches[1].pageY; + var distance = Math.sqrt(dx * dx + dy * dy); + this.m_DollyEnd.set(0, distance); + if (distance > this.m_DollyStart.y) { + this.m_Viewer.Zoom(0.95); + } + else { + this.m_Viewer.Zoom(1.05); + } + this.m_DollyStart.copy(this.m_DollyEnd); + break; + } + case CameraControlState.Rotate: + { + this.m_Viewer.Rotate(vec.multiplyScalar(2)); + break; + } + } + this.m_StartClickPoint.copy(this.m_EndClickPoint); + this.m_Viewer.m_bNeedUpdate = true; + }; + //鼠标 + this.onMouseDown = (event) => { + event.preventDefault(); + let key = event.button; + this.m_MouseDown.set(key, true); + this.m_StartClickPoint.set(event.offsetX, event.offsetY, 0); + switch (key) { + case KeyEnum_1.MouseKey.Left: + { + if (this.m_LeftUseRotate) { + this.beginRotate(); + } + break; + } + case KeyEnum_1.MouseKey.Middle: + { + if (this.m_KeyDown.get(KeyEnum_1.KeyBoard.Control)) { + this.beginRotate(); + } + else { + this.m_State = CameraControlState.Pan; + } + break; + } + case KeyEnum_1.MouseKey.Right: + { + break; + } + } + }; + this.onMouseUp = (event) => { + event.preventDefault(); + this.m_State = CameraControlState.Null; + this.m_MouseDown.set(event.button, false); + }; + this.onMouseMove = (event) => { + event.preventDefault(); + this.m_EndClickPoint.set(event.offsetX, event.offsetY, 0); + let changeVec = this.m_EndClickPoint.clone().sub(this.m_StartClickPoint); + this.m_StartClickPoint.copy(this.m_EndClickPoint); + if ((this.m_LeftUseRotate || + (this.m_KeyDown.get(KeyEnum_1.KeyBoard.Control))) + && this.m_State == CameraControlState.Rotate) { + this.m_Viewer.Rotate(changeVec); + } + switch (this.m_State) { + case CameraControlState.Pan: + { + this.m_Viewer.Pan(changeVec); + break; + } + case CameraControlState.Rotate: + { + break; + } + case CameraControlState.Scale: + { + break; + } + } + }; + /** + * 鼠标滚轮事件 + * + * @memberof CameraControls + */ + this.onMouseWheel = (event) => { + event.preventDefault(); + event.stopPropagation(); + let pt = new THREE.Vector3(event.offsetX, event.offsetY, 0); + this.m_Viewer.ScreenToWorld(pt, new three_1.Vector3().setFromMatrixColumn(this.m_Viewer.m_Camera.Camera.matrixWorld, 2)); + if (event.deltaY < 0) { + this.m_Viewer.Zoom(0.6, pt); + } + else if (event.deltaY > 0) { + this.m_Viewer.Zoom(1.4, pt); + } + }; + //按键 + this.onKeyDown = (event) => { + this.m_KeyDown.set(event.keyCode, true); + }; + this.onKeyUp = (event) => { + this.m_KeyDown.set(event.keyCode, false); + }; + this.m_Viewer = viewer; + this.m_domElement = viewer.m_Render.domElement.parentElement; + this.RegisterEvent(); + } + RegisterEvent() { + if (this.m_domElement) { + this.m_domElement.addEventListener("mousedown", this.onMouseDown, false); + this.m_domElement.addEventListener("mousemove", this.onMouseMove, false); + this.m_domElement.addEventListener("mouseup", this.onMouseUp, false); + window.addEventListener("keydown", this.onKeyDown, false); + window.addEventListener("keyup", this.onKeyUp, false); + this.m_domElement.addEventListener('wheel', this.onMouseWheel, false); + this.m_domElement.addEventListener('touchstart', this.onTouchStart, false); + this.m_domElement.addEventListener('touchend', this.onTouchEnd, false); + this.m_domElement.addEventListener('touchmove', this.onTouchMove, false); + window.addEventListener("blur", this.onBlur, false); + } + } + beginRotate() { + this.m_State = CameraControlState.Rotate; + this.m_Viewer.UpdateLockTarget(); + } +} +exports.CameraControls = CameraControls; +//# sourceMappingURL=CameraControls.js.map \ No newline at end of file diff --git a/dist/CameraControls.js.map b/dist/CameraControls.js.map new file mode 100644 index 0000000..2c64f2b --- /dev/null +++ b/dist/CameraControls.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CameraControls.js","sourceRoot":"","sources":["../src/CameraControls.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/CameraUpdate.d.ts b/dist/CameraUpdate.d.ts new file mode 100644 index 0000000..7dbaa9c --- /dev/null +++ b/dist/CameraUpdate.d.ts @@ -0,0 +1,46 @@ +import * as THREE from 'three'; +/** + * + * 相机的控制. + * ->切换相机 + * ->设置视口大小 + * ->旋转和移动相机. + * + * @export + * @class ViewCameraManage + */ +export declare class CameraUpdate { + private m_CurCamera; + private m_CameraArray; + private m_Width; + private m_Height; + private m_ViewHeight; + private m_Target; + private m_Direction; + private m_Orbit; + constructor(); + readonly Aspect: number; + readonly Camera: THREE.Camera; + ViewHeight: number; + SetSize(width: number, height: number): void; + /** + * 平移相机. + * + * @param {THREE.Vector3} mouseMove + * @memberof CameraControl + */ + Pan(mouseMove: THREE.Vector3): void; + Rotate(mouseMove: THREE.Vector3, target: THREE.Vector3): void; + Zoom(scale: number, scaleCenter?: THREE.Vector3): void; + ZoomExtensBox3(box3: THREE.Box3): void; + LookAt(dir: THREE.Vector3): void; + UpdateUp(): void; + /** + * 根据视口大小,设置相机视口范围. + * + * @returns + * @memberof CameraControl + */ + Update(): void; + SwitchCamera(): void; +} diff --git a/dist/CameraUpdate.js b/dist/CameraUpdate.js new file mode 100644 index 0000000..c8dd126 --- /dev/null +++ b/dist/CameraUpdate.js @@ -0,0 +1,172 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const three_1 = require("three"); +const Orbit_1 = require("./Orbit"); +/** + * + * 相机的控制. + * ->切换相机 + * ->设置视口大小 + * ->旋转和移动相机. + * + * @export + * @class ViewCameraManage + */ +class CameraUpdate { + constructor() { + this.m_CameraArray = new Map(); + //视口显示的高度 + this.m_ViewHeight = 10; + //观察的位置 + this.m_Target = new THREE.Vector3(); + //观察向量 + this.m_Direction = new THREE.Vector3(0, 0, -1); + //观察的轨道. + this.m_Orbit = new Orbit_1.Orbit(); + this.m_CameraArray.set(THREE.OrthographicCamera, new THREE.OrthographicCamera(-2, 2, 2, -2, -100000, 100000)); + this.m_CameraArray.set(THREE.PerspectiveCamera, new THREE.PerspectiveCamera(50, 1, 0.01, 10000)); + this.m_CurCamera = this.m_CameraArray.get(THREE.OrthographicCamera); + this.m_Orbit.UpdateRoValue(this.m_Direction); + this.UpdateUp(); + this.Update(); + } + get Aspect() { + return this.m_Width / this.m_Height; + } + get Camera() { + return this.m_CurCamera; + } + get ViewHeight() { + return this.m_ViewHeight; + } + set ViewHeight(height) { + this.m_ViewHeight = THREE.Math.clamp(height, 1e-8, 1e8); + } + SetSize(width, height) { + this.m_Width = width; + this.m_Height = height; + } + /** + * 平移相机. + * + * @param {THREE.Vector3} mouseMove + * @memberof CameraControl + */ + Pan(mouseMove) { + mouseMove.y *= -1; + mouseMove.multiplyScalar(-this.m_ViewHeight / this.m_Height); + mouseMove.applyQuaternion(this.Camera.quaternion); + this.m_Target.add(mouseMove); + this.Update(); + } + Rotate(mouseMove, target) { + this.m_Orbit.RoX -= mouseMove.y * 0.003; + this.m_Orbit.RoZ -= mouseMove.x * 0.003; + //缓存观察点 + let oldTargetFormCameraSpace = target.clone().applyMatrix4(this.Camera.matrixWorldInverse); + this.m_Orbit.UpdateDirection(this.m_Direction); + this.UpdateUp(); + this.Update(); + //-----还原观察点 + //得到新的观察点相对于相机的位置 + let newTargetFormCameraSpace = target.clone().applyMatrix4(this.Camera.matrixWorldInverse); + //减去原先的位置. 得到观测点在相机内移动的向量 + newTargetFormCameraSpace.sub(oldTargetFormCameraSpace); + //乘以相机的矩阵. 得到向量在世界坐标系的位置 + newTargetFormCameraSpace.applyMatrix4(this.Camera.matrix); + //因为使用的是点变换,所以减去基点,得到向量 + newTargetFormCameraSpace.sub(this.Camera.position); + //加上移动的向量. 使得观察点时钟在相机的某个位置 + this.m_Target.add(newTargetFormCameraSpace); + this.Update(); + } + Zoom(scale, scaleCenter) { + if (this.Camera instanceof THREE.OrthographicCamera) { + this.ViewHeight *= scale; + if (scaleCenter) { + this.m_Target.sub(scaleCenter); + this.m_Target.multiplyScalar(scale); + this.m_Target.add(scaleCenter); + } + } + else if (this.Camera instanceof THREE.PerspectiveCamera) { + let add = scale > 1 ? 1 : -1; + add *= this.Camera.position.distanceTo(this.m_Target) / 10; + this.m_Target.add(this.m_Direction.clone().multiplyScalar(-add)); + } + this.Update(); + } + ZoomExtensBox3(box3) { + if (!box3) + return; + this.Camera.updateMatrixWorld(false); + //变换到相机坐标系 + box3.applyMatrix4(this.Camera.matrixWorldInverse); + // + box3.getCenter(this.m_Target); + //世界坐标系 + this.m_Target.applyMatrix4(this.Camera.matrix); + //size + let size = box3.getSize(new three_1.Vector3()); + //宽高比 + let aspectRatio = size.x / size.y; + let viewAspectRatio = this.Aspect; + // + if (aspectRatio > viewAspectRatio) { + this.m_ViewHeight = size.x / viewAspectRatio; + } + else { + this.m_ViewHeight = size.y; + } + this.Update(); + } + LookAt(dir) { + this.m_Orbit.UpdateRoValue(dir); + this.m_Direction.copy(dir); + this.UpdateUp(); + this.Update(); + } + UpdateUp() { + Orbit_1.Orbit.ComputUpDirection(this.m_Direction, this.Camera.up); + } + /** + * 根据视口大小,设置相机视口范围. + * + * @returns + * @memberof CameraControl + */ + Update() { + this.Camera.position.copy(this.m_Target); + if (this.Camera instanceof THREE.OrthographicCamera) { + this.Camera.left = this.Aspect * this.m_ViewHeight / -2; + this.Camera.right = this.Aspect * this.m_ViewHeight / 2; + this.Camera.bottom = this.m_ViewHeight / -2; + this.Camera.top = this.m_ViewHeight / 2; + this.Camera.position.sub(this.m_Direction); + } + else if (this.Camera instanceof THREE.PerspectiveCamera) { + this.Camera.aspect = this.Aspect; + let distens = (this.m_ViewHeight / 2) / (Math.tan(THREE.Math.degToRad(this.Camera.fov) / 2)); + this.Camera.position.sub(this.m_Direction.clone().multiplyScalar(distens)); + } + else { + return; + } + this.Camera.lookAt(this.m_Target); + this.Camera.updateProjectionMatrix(); + this.Camera.updateMatrixWorld(false); + } + SwitchCamera() { + if (this.Camera instanceof THREE.OrthographicCamera) { + this.m_CurCamera = this.m_CameraArray.get(THREE.PerspectiveCamera); + } + else { + this.m_CurCamera = this.m_CameraArray.get(THREE.OrthographicCamera); + } + this.UpdateUp(); + this.Update(); + } +} +exports.CameraUpdate = CameraUpdate; +//# sourceMappingURL=CameraUpdate.js.map \ No newline at end of file diff --git a/dist/CameraUpdate.js.map b/dist/CameraUpdate.js.map new file mode 100644 index 0000000..18f587d --- /dev/null +++ b/dist/CameraUpdate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CameraUpdate.js","sourceRoot":"","sources":["../src/CameraUpdate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/ColorPalette.d.ts b/dist/ColorPalette.d.ts new file mode 100644 index 0000000..f7a1136 --- /dev/null +++ b/dist/ColorPalette.d.ts @@ -0,0 +1,7 @@ +import * as THREE from 'three'; +export declare class ColorMaterial { + private constructor(); + private static m_LineMaterialMap; + static GetLineMaterial(index: any): THREE.LineBasicMaterial; + static GetColor(index: number): THREE.Color; +} diff --git a/dist/ColorPalette.js b/dist/ColorPalette.js new file mode 100644 index 0000000..c627cde --- /dev/null +++ b/dist/ColorPalette.js @@ -0,0 +1,286 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const ColorPalette = [ + [255, 0, 0, 255], + //[255, 255, 255, 255],//----- 0 - ByBlock - White + [255, 0, 0, 255], + // [255, 0, 0, 255], //----- 1 - Red + [255, 255, 0, 255], + [0, 255, 0, 255], + [0, 255, 255, 255], + [0, 0, 255, 255], + [255, 0, 255, 255], + // [255, 0, 0, 255], //----- 7 - More red Red + // [255, 0, 0, 255], //----- 8 - More red Red + // [255, 0, 0, 255], //----- 9 - More red Red + [255, 255, 255, 255], + [255, 255, 255, 255], + [255, 255, 255, 255], + [255, 0, 0, 255], + [255, 127, 127, 255], + [165, 0, 0, 255], + [165, 82, 82, 255], + [127, 0, 0, 255], + [127, 63, 63, 255], + [76, 0, 0, 255], + [76, 38, 38, 255], + [38, 0, 0, 255], + [38, 19, 19, 255], + [255, 63, 0, 255], + [255, 159, 127, 255], + [165, 41, 0, 255], + [165, 103, 82, 255], + [127, 31, 0, 255], + [127, 79, 63, 255], + [76, 19, 0, 255], + [76, 47, 38, 255], + [38, 9, 0, 255], + [38, 23, 19, 255], + [255, 127, 0, 255], + [255, 191, 127, 255], + [165, 82, 0, 255], + [165, 124, 82, 255], + [127, 63, 0, 255], + [127, 95, 63, 255], + [76, 38, 0, 255], + [76, 57, 38, 255], + [38, 19, 0, 255], + [38, 28, 19, 255], + [255, 191, 0, 255], + [255, 223, 127, 255], + [165, 124, 0, 255], + [165, 145, 82, 255], + [127, 95, 0, 255], + [127, 111, 63, 255], + [76, 57, 0, 255], + [76, 66, 38, 255], + [38, 28, 0, 255], + [38, 33, 19, 255], + [255, 255, 0, 255], + [255, 255, 127, 255], + [165, 165, 0, 255], + [165, 165, 82, 255], + [127, 127, 0, 255], + [127, 127, 63, 255], + [76, 76, 0, 255], + [76, 76, 38, 255], + [38, 38, 0, 255], + [38, 38, 19, 255], + [191, 255, 0, 255], + [223, 255, 127, 255], + [124, 165, 0, 255], + [145, 165, 82, 255], + [95, 127, 0, 255], + [111, 127, 63, 255], + [57, 76, 0, 255], + [66, 76, 38, 255], + [28, 38, 0, 255], + [33, 38, 19, 255], + [127, 255, 0, 255], + [191, 255, 127, 255], + [82, 165, 0, 255], + [124, 165, 82, 255], + [63, 127, 0, 255], + [95, 127, 63, 255], + [38, 76, 0, 255], + [57, 76, 38, 255], + [19, 38, 0, 255], + [28, 38, 19, 255], + [63, 255, 0, 255], + [159, 255, 127, 255], + [41, 165, 0, 255], + [103, 165, 82, 255], + [31, 127, 0, 255], + [79, 127, 63, 255], + [19, 76, 0, 255], + [47, 76, 38, 255], + [9, 38, 0, 255], + [23, 38, 19, 255], + [0, 255, 0, 255], + [127, 255, 127, 255], + [0, 165, 0, 255], + [82, 165, 82, 255], + [0, 127, 0, 255], + [63, 127, 63, 255], + [0, 76, 0, 255], + [38, 76, 38, 255], + [0, 38, 0, 255], + [19, 38, 19, 255], + [0, 255, 63, 255], + [127, 255, 159, 255], + [0, 165, 41, 255], + [82, 165, 103, 255], + [0, 127, 31, 255], + [63, 127, 79, 255], + [0, 76, 19, 255], + [38, 76, 47, 255], + [0, 38, 9, 255], + [19, 38, 23, 255], + [0, 255, 127, 255], + [127, 255, 191, 255], + [0, 165, 82, 255], + [82, 165, 124, 255], + [0, 127, 63, 255], + [63, 127, 95, 255], + [0, 76, 38, 255], + [38, 76, 57, 255], + [0, 38, 19, 255], + [19, 38, 28, 255], + [0, 255, 191, 255], + [127, 255, 223, 255], + [0, 165, 124, 255], + [82, 165, 145, 255], + [0, 127, 95, 255], + [63, 127, 111, 255], + [0, 76, 57, 255], + [38, 76, 66, 255], + [0, 38, 28, 255], + [19, 38, 33, 255], + [0, 255, 255, 255], + [127, 255, 255, 255], + [0, 165, 165, 255], + [82, 165, 165, 255], + [0, 127, 127, 255], + [63, 127, 127, 255], + [0, 76, 76, 255], + [38, 76, 76, 255], + [0, 38, 38, 255], + [19, 38, 38, 255], + [0, 191, 255, 255], + [127, 223, 255, 255], + [0, 124, 165, 255], + [82, 145, 165, 255], + [0, 95, 127, 255], + [63, 111, 127, 255], + [0, 57, 76, 255], + [38, 66, 76, 255], + [0, 28, 38, 255], + [19, 33, 38, 255], + [0, 127, 255, 255], + [127, 191, 255, 255], + [0, 82, 165, 255], + [82, 124, 165, 255], + [0, 63, 127, 255], + [63, 95, 127, 255], + [0, 38, 76, 255], + [38, 57, 76, 255], + [0, 19, 38, 255], + [19, 28, 38, 255], + [0, 63, 255, 255], + [127, 159, 255, 255], + [0, 41, 165, 255], + [82, 103, 165, 255], + [0, 31, 127, 255], + [63, 79, 127, 255], + [0, 19, 76, 255], + [38, 47, 76, 255], + [0, 9, 38, 255], + [19, 23, 38, 255], + [0, 0, 255, 255], + [127, 127, 255, 255], + [0, 0, 165, 255], + [82, 82, 165, 255], + [0, 0, 127, 255], + [63, 63, 127, 255], + [0, 0, 76, 255], + [38, 38, 76, 255], + [0, 0, 38, 255], + [19, 19, 38, 255], + [63, 0, 255, 255], + [159, 127, 255, 255], + [41, 0, 165, 255], + [103, 82, 165, 255], + [31, 0, 127, 255], + [79, 63, 127, 255], + [19, 0, 76, 255], + [47, 38, 76, 255], + [9, 0, 38, 255], + [23, 19, 38, 255], + [127, 0, 255, 255], + [191, 127, 255, 255], + [82, 0, 165, 255], + [124, 82, 165, 255], + [63, 0, 127, 255], + [95, 63, 127, 255], + [38, 0, 76, 255], + [57, 38, 76, 255], + [19, 0, 38, 255], + [28, 19, 38, 255], + [191, 0, 255, 255], + [223, 127, 255, 255], + [124, 0, 165, 255], + [145, 82, 165, 255], + [95, 0, 127, 255], + [111, 63, 127, 255], + [57, 0, 76, 255], + [66, 38, 76, 255], + [28, 0, 38, 255], + [33, 19, 38, 255], + [255, 0, 255, 255], + [255, 127, 255, 255], + [165, 0, 165, 255], + [165, 82, 165, 255], + [127, 0, 127, 255], + [127, 63, 127, 255], + [76, 0, 76, 255], + [76, 38, 76, 255], + [38, 0, 38, 255], + [38, 19, 38, 255], + [255, 0, 191, 255], + [255, 127, 223, 255], + [165, 0, 124, 255], + [165, 82, 145, 255], + [127, 0, 95, 255], + [127, 63, 111, 255], + [76, 0, 57, 255], + [76, 38, 66, 255], + [38, 0, 28, 255], + [38, 19, 33, 255], + [255, 0, 127, 255], + [255, 127, 191, 255], + [165, 0, 82, 255], + [165, 82, 124, 255], + [127, 0, 63, 255], + [127, 63, 95, 255], + [76, 0, 38, 255], + [76, 38, 57, 255], + [38, 0, 19, 255], + [38, 19, 28, 255], + [255, 0, 63, 255], + [255, 127, 159, 255], + [165, 0, 41, 255], + [165, 82, 103, 255], + [127, 0, 31, 255], + [127, 63, 79, 255], + [76, 0, 19, 255], + [76, 38, 47, 255], + [38, 0, 9, 255], + [38, 19, 23, 255], + [84, 84, 84, 255], + [118, 118, 118, 255], + [152, 152, 152, 255], + [186, 186, 186, 255], + [220, 220, 220, 255], + [255, 255, 255, 255], + [255, 255, 255, 255] //----- ByLayer - White +]; +//颜色材质,对于二维图像来说可能有用,应该不对三维对象使用该材质 +class ColorMaterial { + constructor() { } + static GetLineMaterial(index) { + if (this.m_LineMaterialMap.has(index)) + return this.m_LineMaterialMap.get(index); + let mat = new THREE.LineBasicMaterial({ color: this.GetColor(index) }); + this.m_LineMaterialMap.set(index, mat); + return mat; + } + static GetColor(index) { + let rgb = ColorPalette[index]; + if (rgb) + return new THREE.Color(rgb[0] / 255, rgb[1] / 255, rgb[2] / 255); + } +} +ColorMaterial.m_LineMaterialMap = new Map(); +exports.ColorMaterial = ColorMaterial; +//# sourceMappingURL=ColorPalette.js.map \ No newline at end of file diff --git a/dist/ColorPalette.js.map b/dist/ColorPalette.js.map new file mode 100644 index 0000000..ab17f63 --- /dev/null +++ b/dist/ColorPalette.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColorPalette.js","sourceRoot":"","sources":["../src/ColorPalette.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,MAAM,YAAY,GAAG;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,kDAAkD;IAClD,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,uCAAuC;IACvC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAChB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,gDAAgD;IAChD,gDAAgD;IAChD,gDAAgD;IAChD,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAChB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAI,uBAAuB;CAClD,CAAC;AAGF,iCAAiC;AACjC;IAEI,gBAAwB,CAAC;IAEzB,MAAM,CAAC,eAAe,CAAC,KAAK;QAExB,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAa;QAEzB,IAAI,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,GAAG;YACH,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACzE,CAAC;;AAfc,+BAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAHlF,sCAmBC"} \ No newline at end of file diff --git a/dist/Dimension.d.ts b/dist/Dimension.d.ts new file mode 100644 index 0000000..1e282f9 --- /dev/null +++ b/dist/Dimension.d.ts @@ -0,0 +1,11 @@ +import { Group } from "three"; +/** + * 标注实体 + * + * @export + * @class Dimension + * @extends {Group} + */ +export declare class Dimension extends Group { + constructor(length: number, textHeight?: number, mirror?: boolean, mirrorFoot?: boolean); +} diff --git a/dist/Dimension.js b/dist/Dimension.js new file mode 100644 index 0000000..6c9703c --- /dev/null +++ b/dist/Dimension.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const three_1 = require("three"); +const ColorPalette_1 = require("./ColorPalette"); +const Text_1 = require("./Text"); +const GeUtils_1 = require("./GeUtils"); +/** + * 标注实体 + * + * @export + * @class Dimension + * @extends {Group} + */ +class Dimension extends three_1.Group { + constructor(length, textHeight = 25, mirror = false, mirrorFoot = false) { + super(); + let footLength = 60; + if (mirrorFoot) { + footLength = -footLength; + } + //针脚几何体 + let lineGeo = new three_1.Geometry(); + lineGeo.vertices.push(new three_1.Vector3(), new three_1.Vector3(0, footLength, 0)); + //托盘几何体 + let lineGeo2 = new three_1.Geometry(); + lineGeo2.vertices.push(new three_1.Vector3(0, footLength), new three_1.Vector3(length, footLength, 0)); + let material = ColorPalette_1.ColorMaterial.GetLineMaterial(5); + let line1 = new three_1.Line(lineGeo, material); + let line2 = new three_1.Line(lineGeo, material); + line2.position.x = length; + let line3 = new three_1.Line(lineGeo2, material); + let text = new Text_1.DbText(parseFloat(length.toFixed(2)).toString(), textHeight); + if (mirror) { + let roMat = new three_1.Matrix4().makeRotationZ(Math.PI); + text.applyMatrix(roMat); + text.applyMatrix(GeUtils_1.MoveMatrix(new three_1.Vector3(length * 0.5, footLength - textHeight * 0.1))); + } + else { + text.applyMatrix(GeUtils_1.MoveMatrix(new three_1.Vector3(length * 0.5, footLength * 1.1))); + } + this.add(text); + this.add(line1, line2, line3); + } +} +exports.Dimension = Dimension; +//# sourceMappingURL=Dimension.js.map \ No newline at end of file diff --git a/dist/Dimension.js.map b/dist/Dimension.js.map new file mode 100644 index 0000000..56ba2e9 --- /dev/null +++ b/dist/Dimension.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Dimension.js","sourceRoot":"","sources":["../src/Dimension.ts"],"names":[],"mappings":";;AAAA,iCAAgE;AAChE,iDAA+C;AAC/C,iCAAgC;AAChC,uCAAuC;AAEvC;;;;;;GAMG;AACH,eAAuB,SAAQ,aAAK;IAGhC,YAAY,MAAc,EAAE,aAAqB,EAAE,EAAE,SAAkB,KAAK,EAAE,aAAsB,KAAK;QAErG,KAAK,EAAE,CAAC;QACR,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,EACd;YACI,UAAU,GAAG,CAAC,UAAU,CAAC;SAC5B;QAED,OAAO;QACP,IAAI,OAAO,GAAG,IAAI,gBAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAO,EAAE,EAAE,IAAI,eAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO;QACP,IAAI,QAAQ,GAAG,IAAI,gBAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,eAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvF,IAAI,QAAQ,GAAG,4BAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAE/C,IAAI,KAAK,GAAG,IAAI,YAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,IAAI,YAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;QAE1B,IAAI,KAAK,GAAG,IAAI,YAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,GAAG,IAAI,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,MAAM,EACV;YACI,IAAI,KAAK,GAAG,IAAI,eAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,oBAAU,CAAC,IAAI,eAAO,CAAC,MAAM,GAAG,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC1F;aAED;YACI,IAAI,CAAC,WAAW,CAAC,oBAAU,CAAC,IAAI,eAAO,CAAC,MAAM,GAAG,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7E;QAGD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;CACJ;AA7CD,8BA6CC"} \ No newline at end of file diff --git a/dist/DrawDimension.d.ts b/dist/DrawDimension.d.ts new file mode 100644 index 0000000..485a664 --- /dev/null +++ b/dist/DrawDimension.d.ts @@ -0,0 +1,10 @@ +import { Mesh } from "three"; +import { Dimension } from "."; +/** + * 绘制标注实体 + * + * @export + * @param {Box3} box + * @returns 标注实体列表 + */ +export declare function DrawDimension(brList: Mesh[]): Dimension[]; diff --git a/dist/DrawDimension.js b/dist/DrawDimension.js new file mode 100644 index 0000000..dd79adc --- /dev/null +++ b/dist/DrawDimension.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const three_1 = require("three"); +const _1 = require("."); +/** + * 绘制标注实体 + * + * @export + * @param {Box3} box + * @returns 标注实体列表 + */ +function DrawDimension(brList) { + let box = _1.GetBoxArr(brList); + let size = box.getSize(new three_1.Vector3()); + let mat4 = new three_1.Matrix4(); + mat4.makeBasis(new three_1.Vector3(-1, 0, 0), new three_1.Vector3(0, -1, 0), new three_1.Vector3(0, 0, 1)); + mat4.setPosition(box.min.clone().add(new three_1.Vector3(size.x, -30))); + let textHeight = 45; + let dimx = new _1.Dimension(size.x, textHeight, true); + dimx.applyMatrix(mat4); + let dimz = new _1.Dimension(size.z, textHeight); + mat4.makeBasis(new three_1.Vector3(0, 0, -1), new three_1.Vector3(1, 0, 0), new three_1.Vector3(0, -1, 0)); + mat4.setPosition(box.max.clone().add(new three_1.Vector3(30, -size.y))); + dimz.applyMatrix(mat4); + let dimy = new _1.Dimension(size.y, textHeight, true, true); + mat4.makeBasis(new three_1.Vector3(0, 1, 0), new three_1.Vector3(-1, 0, 0), new three_1.Vector3(0, 0, 1)); + mat4.setPosition(box.max.clone().add(new three_1.Vector3(30, -size.y))); + dimy.applyMatrix(mat4); + return [dimx, dimy, dimz]; +} +exports.DrawDimension = DrawDimension; +//# sourceMappingURL=DrawDimension.js.map \ No newline at end of file diff --git a/dist/DrawDimension.js.map b/dist/DrawDimension.js.map new file mode 100644 index 0000000..51769a1 --- /dev/null +++ b/dist/DrawDimension.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DrawDimension.js","sourceRoot":"","sources":["../src/DrawDimension.ts"],"names":[],"mappings":";;AAAA,iCAAqD;AACrD,wBAAyC;AAGzC;;;;;;GAMG;AACH,uBAA8B,MAAc;IAExC,IAAI,GAAG,GAAG,YAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,eAAO,EAAE,CAAC,CAAC;IAEtC,IAAI,IAAI,GAAG,IAAI,eAAO,EAAE,CAAC;IACzB,IAAI,CAAC,SAAS,CACV,IAAI,eAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACrB,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrB,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACvB,CAAA;IACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,eAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvB,IAAI,IAAI,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,CACV,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACrB,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACxB,CAAA;IACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,eAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvB,IAAI,IAAI,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,CACV,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,eAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACrB,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACvB,CAAA;IACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,eAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAGvB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AArCD,sCAqCC"} \ No newline at end of file diff --git a/dist/GeUtils.d.ts b/dist/GeUtils.d.ts new file mode 100644 index 0000000..df1f68e --- /dev/null +++ b/dist/GeUtils.d.ts @@ -0,0 +1,66 @@ +import * as THREE from 'three'; +import { Geometry, Vector, Vector2, Vector3 } from 'three'; +export declare const cZeroVec: THREE.Vector3; +export declare const cXAxis: THREE.Vector3; +export declare const cYAxis: THREE.Vector3; +export declare const cZAxis: THREE.Vector3; +/** + * 旋转一个点,旋转中心在原点 + * + * @export + * @param {Vector3} pt 点 + * @param {number} ang 角度. + * @returns {Vector3} 返回pt不拷贝. + */ +export declare function rotatePoint(pt: Vector3, ang: number): Vector3; +export declare function equaln(v1: number, v2: number, fuzz?: number): boolean; +export declare function equal(v1: T, v2: T): boolean; +export declare function fixAngle(an: number, fixAngle: number, fuzz?: number): number; +/** + * 按照极坐标的方式移动一个点 + * + * @export + * @template + * @param {T} v 向量(2d,3d) + * @param {number} an 角度 + * @param {number} dis 距离 + * @returns {T} + */ +export declare function polar(v: T, an: number, dis: number): T; +export declare function angle(v: Vector3 | Vector2): number; +/** + * 求两个向量的夹角,顺时针为负,逆时针为正 + * + * @param {THREE.Vector3} v1 + * @param {THREE.Vector3} v2 + * @param {THREE.Vector3} [ref] 参考向量,如果为世界坐标系则为0,0,1 + * @returns + */ +export declare function angleTo(v1: THREE.Vector3, v2: THREE.Vector3, ref?: THREE.Vector3): number; +export declare function getLoocAtUpVec(dir: THREE.Vector3): THREE.Vector3; +export declare function createLookAtMat4(dir: THREE.Vector3): THREE.Matrix4; +export declare function isParallelTo(v1: THREE.Vector3, v2: THREE.Vector3): boolean; +export declare function ptToString(v: THREE.Vector3, fractionDigits?: number): string; +export declare function midPoint(v1: THREE.Vector3, v2: THREE.Vector3): THREE.Vector3; +export declare function midPoint2(v1: THREE.Vector2, v2: THREE.Vector2): THREE.Vector2; +export declare function midPtCir(v1: THREE.Vector3, v2: THREE.Vector3): THREE.Vector3; +export declare function GetBox(obj: THREE.Object3D, updateMatrix?: boolean): THREE.Box3; +export declare function GetBoxArr(arr: Array): THREE.Box3; +export declare function MoveMatrix(v: THREE.Vector3): THREE.Matrix4; +export declare function getProjectDist(v1: Vector3, v2: Vector3): { + h: number; + v: number; +}; +export declare function getPtPostion(sp: Vector3, ep: Vector3, c: Vector3, inPt: Vector3): { + sp: THREE.Vector3; + ep: THREE.Vector3; +}; +export declare function angleAndX(v: Vector3 | Vector2): number; +/** + * 将角度调整为0-2pi之间 + * + * @export + * @param {number} an + */ +export declare function angleTo2Pi(an: number): number; +export declare function updateGeometry(l: THREE.Line | THREE.Mesh, geometry: Geometry): void; diff --git a/dist/GeUtils.js b/dist/GeUtils.js new file mode 100644 index 0000000..0d27784 --- /dev/null +++ b/dist/GeUtils.js @@ -0,0 +1,258 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const three_1 = require("three"); +const Matrix2_1 = require("./Matrix2"); +exports.cZeroVec = new THREE.Vector3(); +exports.cXAxis = new THREE.Vector3(1, 0, 0); +exports.cYAxis = new THREE.Vector3(0, 1, 0); +exports.cZAxis = new THREE.Vector3(0, 0, 1); +/** + * 旋转一个点,旋转中心在原点 + * + * @export + * @param {Vector3} pt 点 + * @param {number} ang 角度. + * @returns {Vector3} 返回pt不拷贝. + */ +function rotatePoint(pt, ang) { + new Matrix2_1.Matrix2().setRotate(ang).applyVector(pt); + return pt; +} +exports.rotatePoint = rotatePoint; +function equaln(v1, v2, fuzz = 1e-3) { + return Math.abs(v1 - v2) < fuzz; +} +exports.equaln = equaln; +function equal(v1, v2) { + return v1.distanceToSquared(v2) < 1e-8; +} +exports.equal = equal; +function fixAngle(an, fixAngle, fuzz = 0.1) { + if (an < 0) + an += Math.PI * 2; + an += fuzz; + let rem = an % fixAngle; + if (rem < fuzz * 2) { + an -= rem; + } + else { + an -= fuzz; + } + return an; +} +exports.fixAngle = fixAngle; +/** + * 按照极坐标的方式移动一个点 + * + * @export + * @template + * @param {T} v 向量(2d,3d) + * @param {number} an 角度 + * @param {number} dis 距离 + * @returns {T} + */ +function polar(v, an, dis) { + v.x += Math.cos(an) * dis; + v.y += Math.sin(an) * dis; + return v; +} +exports.polar = polar; +function angle(v) { + if (equaln(v.y, 0) && v.x > 0) + return 0; + let angle = Math.atan2(v.y, v.x); + if (angle < 0) + angle += Math.PI * 2; + return angle; +} +exports.angle = angle; +/** + * 求两个向量的夹角,顺时针为负,逆时针为正 + * + * @param {THREE.Vector3} v1 + * @param {THREE.Vector3} v2 + * @param {THREE.Vector3} [ref] 参考向量,如果为世界坐标系则为0,0,1 + * @returns + */ +function angleTo(v1, v2, ref = new THREE.Vector3(0, 0, 1)) { + if (!ref.equals(new three_1.Vector3(0, 0, 1))) { + //任意轴坐标系. 使用相机的构造矩阵. + ref.multiplyScalar(-1); + let up = getLoocAtUpVec(ref); + let refOcs = new THREE.Matrix4(); + refOcs.lookAt(exports.cZeroVec, ref, up); + let refOcsInv = new THREE.Matrix4().getInverse(refOcs); + v1.applyMatrix4(refOcsInv); + v2.applyMatrix4(refOcsInv); + v1.z = 0; + v2.z = 0; + } + if (v1.equals(exports.cZeroVec) || v2.equals(exports.cZeroVec)) + return 0; + let cv = new three_1.Vector3().crossVectors(v1, v2).normalize(); + return cv.z === 0 ? v1.angleTo(v2) : v1.angleTo(v2) * cv.z; +} +exports.angleTo = angleTo; +function getLoocAtUpVec(dir) { + if (dir.equals(exports.cZeroVec)) { + throw ("zero vector"); + } + let norm = dir.clone().normalize(); + if (norm.equals(exports.cZAxis)) { + return new THREE.Vector3(0, 1, 0); + } + else if (norm.equals(exports.cZAxis.clone().negate())) { + return new THREE.Vector3(0, -1, 0); + } + else { + let xv = new THREE.Vector3(); + xv.crossVectors(exports.cZAxis, norm); + let up = new THREE.Vector3(); + up.crossVectors(norm, xv); + return up; + } +} +exports.getLoocAtUpVec = getLoocAtUpVec; +function createLookAtMat4(dir) { + let up = getLoocAtUpVec(dir); + let mat = new THREE.Matrix4(); + mat.lookAt(exports.cZeroVec, dir, up); + return mat; +} +exports.createLookAtMat4 = createLookAtMat4; +function isParallelTo(v1, v2) { + return v1.clone().cross(v2).lengthSq() < 1e-9; +} +exports.isParallelTo = isParallelTo; +function ptToString(v, fractionDigits = 3) { + return v.toArray().map(o => { + return o.toFixed(fractionDigits); + }).join(","); +} +exports.ptToString = ptToString; +function midPoint(v1, v2) { + return v1.clone().add(v2).multiplyScalar(0.5); +} +exports.midPoint = midPoint; +function midPoint2(v1, v2) { + return v1.clone().add(v2).multiplyScalar(0.5); +} +exports.midPoint2 = midPoint2; +function midPtCir(v1, v2) { + let baseline = new three_1.Vector3(1, 0, 0); + let outLine = v2.clone().sub(v1); + let ang = angleTo(baseline, outLine) / 2; + let midLine = rotatePoint(outLine, -ang); + return v1.clone().add(midLine); +} +exports.midPtCir = midPtCir; +function GetBox(obj, updateMatrix) { + if (updateMatrix) + obj.updateMatrixWorld(false); + if (obj.hasOwnProperty("geometry")) { + let geo = obj["geometry"]; + if (geo instanceof THREE.Geometry || geo instanceof THREE.BufferGeometry) { + if (!geo.boundingBox) + geo.computeBoundingBox(); + return geo.boundingBox.clone().applyMatrix4(obj.matrixWorld); + } + } + else if (obj.children.length > 0) { + let box = obj.children.reduce((sumBox, itemObj) => { + let itemBox = GetBox(itemObj); + if (itemBox) + sumBox.union(itemBox); + return sumBox; + }, new THREE.Box3()); + // if (box) box.applyMatrix4(obj.matrixWorld); + return box; + } + else + return null; +} +exports.GetBox = GetBox; +function GetBoxArr(arr) { + if (arr.length == 0) { + return null; + } + return arr.map(o => { + return GetBox(o); + }).filter(o => { + return o; + }).reduce((sumBox, objBox) => { + return sumBox.union(objBox); + }, new THREE.Box3()); +} +exports.GetBoxArr = GetBoxArr; +function MoveMatrix(v) { + let mat = new THREE.Matrix4(); + mat.makeTranslation(v.x, v.y, v.z); + return mat; +} +exports.MoveMatrix = MoveMatrix; +function getProjectDist(v1, v2) { + let ang = v1.angleTo(v2); + let dist = v1.length(); + return { + h: dist * Math.cos(ang), + v: dist * Math.sin(ang) + }; +} +exports.getProjectDist = getProjectDist; +//获得输入点在2线组成的4个区间的位置 +function getPtPostion(sp, ep, c, inPt) { + let l1 = sp.clone().sub(c); + let l2 = ep.clone().sub(c); + let l3 = l1.clone().negate(); + let l4 = l2.clone().negate(); + let inputLine = inPt.clone().sub(c); + let ang1 = angleTo(l1, l2); + let ang2 = Math.PI; + let ang3 = ang2 + Math.abs(ang1); + let inputAng = angleTo(l1, inputLine); + if (ang1 * inputAng < 0) { + inputAng = (Math.PI * 2 - Math.abs(inputAng)); + } + ang1 = Math.abs(ang1); + inputAng = Math.abs(inputAng); + if (inputAng <= ang1) { + return { sp, ep }; + } + else if (inputAng > ang1 && inputAng <= ang2) { + return { sp: c.clone().add(l3), ep }; + } + else if (inputAng > ang2 && inputAng <= ang3) { + return { sp: c.clone().add(l3), ep: c.clone().add(l4) }; + } + else { + return { sp, ep: c.clone().add(l4) }; + } +} +exports.getPtPostion = getPtPostion; +function angleAndX(v) { + return v.x ? Math.atan(v.y / v.x) : Math.PI / 2; +} +exports.angleAndX = angleAndX; +/** + * 将角度调整为0-2pi之间 + * + * @export + * @param {number} an + */ +function angleTo2Pi(an) { + an = an % (Math.PI * 2); + if (an < 0) + an += Math.PI * 2; + return an; +} +exports.angleTo2Pi = angleTo2Pi; +function updateGeometry(l, geometry) { + let geo = l.geometry; + geo.dispose(); + l.geometry = geometry; + geometry.verticesNeedUpdate = true; + geometry.computeBoundingSphere(); +} +exports.updateGeometry = updateGeometry; +//# sourceMappingURL=GeUtils.js.map \ No newline at end of file diff --git a/dist/GeUtils.js.map b/dist/GeUtils.js.map new file mode 100644 index 0000000..44492f9 --- /dev/null +++ b/dist/GeUtils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GeUtils.js","sourceRoot":"","sources":["../src/GeUtils.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,iCAA2D;AAC3D,uCAAoC;AAGvB,QAAA,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,QAAA,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,QAAA,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,QAAA,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAA4B,EAAW,EAAE,GAAW;IAEhD,IAAI,iBAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC;AACd,CAAC;AAJD,kCAIC;AAED,gBAAuB,EAAU,EAAE,EAAU,EAAE,IAAI,GAAG,IAAI;IAEtD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC;AAHD,wBAGC;AACD,eAAwC,EAAK,EAAE,EAAK;IAEhD,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAC3C,CAAC;AAHD,sBAGC;AAED,kBAAyB,EAAU,EAAE,QAAgB,EAAE,OAAe,GAAG;IAErE,IAAI,EAAE,GAAG,CAAC;QACN,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACtB,EAAE,IAAI,IAAI,CAAC;IACX,IAAI,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC;IACxB,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAClB;QACI,EAAE,IAAI,GAAG,CAAC;KACb;SAED;QACI,EAAE,IAAI,IAAI,CAAC;KACd;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAfD,4BAeC;AAED;;;;;;;;;GASG;AACH,eAAmD,CAAI,EAAE,EAAU,EAAE,GAAW;IAE5E,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC1B,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC1B,OAAO,CAAC,CAAC;AACb,CAAC;AALD,sBAKC;AAED,eAAsB,CAAoB;IAEtC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACzB,OAAO,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACjB,CAAC;AAPD,sBAOC;AAED;;;;;;;GAOG;AACH,iBAAwB,EAAiB,EAAE,EAAiB,EAAE,MAAqB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEzG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACrC;QACI,oBAAoB;QACpB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,gBAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvD,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3B,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3B,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACT,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;KACZ;IACD,IAAI,EAAE,CAAC,MAAM,CAAC,gBAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,gBAAQ,CAAC;QAC1C,OAAO,CAAC,CAAC;IACb,IAAI,EAAE,GAAG,IAAI,eAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAnBD,0BAmBC;AAED,wBAA+B,GAAkB;IAE7C,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAQ,CAAC,EACxB;QACI,MAAM,CAAC,aAAa,CAAC,CAAA;KACxB;IACD,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAM,CAAC,EACvB;QACI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACrC;SACI,IAAI,IAAI,CAAC,MAAM,CAAC,cAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAC7C;QACI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACtC;SAED;QACI,IAAI,EAAE,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5C,EAAE,CAAC,YAAY,CAAC,cAAM,EAAE,IAAI,CAAC,CAAC;QAE9B,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC;KACb;AACL,CAAC;AAxBD,wCAwBC;AAED,0BAAiC,GAAkB;IAE/C,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,gBAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACf,CAAC;AAND,4CAMC;AAED,sBAA6B,EAAiB,EAAE,EAAiB;IAE7D,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AAClD,CAAC;AAHD,oCAGC;AAED,oBAA2B,CAAgB,EAAE,iBAAyB,CAAC;IAEnE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAEvB,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACpC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChB,CAAC;AAND,gCAMC;AAED,kBAAyB,EAAiB,EAAE,EAAiB;IAEzD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAHD,4BAGC;AACD,mBAA0B,EAAiB,EAAE,EAAiB;IAE1D,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAHD,8BAGC;AAED,kBAAyB,EAAiB,EAAE,EAAiB;IAEzD,IAAI,QAAQ,GAAG,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAPD,4BAOC;AAED,gBAAuB,GAAmB,EAAE,YAAsB;IAE9D,IAAI,YAAY;QAAE,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,EAClC;QACI,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,GAAG,YAAY,KAAK,CAAC,QAAQ,IAAI,GAAG,YAAY,KAAK,CAAC,cAAc,EACxE;YACI,IAAI,CAAC,GAAG,CAAC,WAAW;gBAChB,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAChE;KACJ;SACI,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAChC;QACI,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAE9C,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,OAAO;gBACP,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,MAAM,CAAC;QAClB,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QACpB,8CAA8C;QAC9C,OAAO,GAAG,CAAC;KACd;;QAEG,OAAO,IAAI,CAAC;AACpB,CAAC;AA3BD,wBA2BC;AAED,mBAA0B,GAA0B;IAEhD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EACnB;QACI,OAAO,IAAI,CAAC;KACf;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAEf,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAEV,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAkB,EAAE,MAAkB,EAAE,EAAE;QAEjD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACzB,CAAC;AAhBD,8BAgBC;AAED,oBAA2B,CAAgB;IAEvC,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACf,CAAC;AALD,gCAKC;AAED,wBAA+B,EAAW,EAAE,EAAW;IAEnD,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IACvB,OAAO;QACH,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACvB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KAC1B,CAAA;AACL,CAAC;AARD,wCAQC;AACD,oBAAoB;AACpB,sBAA6B,EAAW,EAAE,EAAW,EAAE,CAAU,EAAE,IAAa;IAE5E,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;IAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;IACnB,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACtC,IAAI,IAAI,GAAG,QAAQ,GAAG,CAAC,EACvB;QACI,QAAQ,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;KACjD;IACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,IAAI,EACpB;QACI,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;KACrB;SAAM,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,IAAI,IAAI,EAC9C;QACI,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;KACvC;SAAM,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,IAAI,IAAI,EAC9C;QACI,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;KAC1D;SACD;QACI,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;KACxC;AACL,CAAC;AA9BD,oCA8BC;AACD,mBAA0B,CAAoB;IAE1C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAHD,8BAGC;AACD;;;;;GAKG;AACH,oBAA2B,EAAU;IAEjC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC;QAAE,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7B,OAAO,EAAE,CAAC;AACd,CAAC;AALD,gCAKC;AACD,wBAA+B,CAA0B,EAAE,QAAkB;IAEzE,IAAI,GAAG,GAAG,CAAC,CAAC,QAA0B,CAAC;IACvC,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;AACrC,CAAC;AAPD,wCAOC"} \ No newline at end of file diff --git a/dist/KeyEnum.d.ts b/dist/KeyEnum.d.ts new file mode 100644 index 0000000..61fac59 --- /dev/null +++ b/dist/KeyEnum.d.ts @@ -0,0 +1,149 @@ +export declare enum MouseKey { + Left = 0, + Middle = 1, + Right = 2, +} +export declare enum KeyBoard { + Digit1 = 49, + Digit2 = 50, + Digit3 = 51, + Digit4 = 52, + Digit5 = 53, + Digit6 = 54, + Digit7 = 55, + Digit8 = 56, + Digit9 = 57, + Digit0 = 58, + KeyA = 65, + KeyB = 66, + KeyC = 67, + KeyD = 68, + KeyE = 69, + KeyF = 70, + KeyG = 71, + KeyH = 72, + KeyI = 73, + KeyJ = 74, + KeyK = 75, + KeyL = 76, + KeyM = 77, + KeyN = 78, + KeyO = 79, + KeyP = 80, + KeyQ = 81, + KeyR = 82, + KeyS = 83, + KeyT = 84, + KeyU = 85, + KeyV = 86, + KeyW = 87, + KeyX = 88, + KeyY = 89, + KeyZ = 90, + /** + * 逗号 + */ + Comma = 188, + CommaChrome = 229, + /** + * 句号 + */ + Period = 190, + /** + * 分号 + */ + Semicolon = 186, + /** + * 引号 + */ + Quote = 222, + /** + * 左括号 + */ + BracketLeft = 219, + /** + * 右括号 + */ + BracketRight = 220, + /** + * 反引号 + */ + Backquote = 192, + /** + * 反斜杠 + */ + Backslash = 220, + /** + * 减号 + */ + Minus = 189, + /** + * 等号 + */ + Equal = 187, + IntlRo = 193, + IntlYen = 255, + Alt = 18, + /** + * 大写锁定 + */ + CapsLock = 20, + Control = 17, + /** + * win左键 + */ + OSLeft = 91, + /** + * win右键 + */ + OSRight = 92, + Shift = 16, + ContextMenu = 93, + Enter = 13, + Space = 32, + Backspace = 8, + Tab = 9, + Delete = 46, + End = 35, + Home = 36, + Insert = 45, + PageDown = 34, + PageUp = 33, + ArrowDown = 40, + ArrowLeft = 37, + ArrowRight = 39, + ArrowUp = 38, + Escape = 27, + PrintScreen = 44, + ScrollLock = 145, + Pause = 19, + F1 = 112, + F2 = 113, + F3 = 114, + F5 = 116, + F6 = 117, + F7 = 118, + F8 = 119, + F9 = 120, + F10 = 121, + F11 = 122, + F12 = 123, + NumLock = 114, + Numpad0 = 96, + Numpad1 = 97, + Numpad2 = 98, + Numpad3 = 99, + Numpad4 = 100, + Numpad5 = 101, + Numpad6 = 102, + Numpad7 = 103, + Numpad8 = 104, + Numpad9 = 105, + NumpadAdd = 107, + NumpadDivide = 111, + NumpadEqual = 12, + NumpadMultiply = 106, + NumpadSubtract = 109, + NumpadDot = 110, + NumpadDot1 = 190, +} diff --git a/dist/KeyEnum.js b/dist/KeyEnum.js new file mode 100644 index 0000000..2141ed1 --- /dev/null +++ b/dist/KeyEnum.js @@ -0,0 +1,161 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//鼠标类型 +var MouseKey; +(function (MouseKey) { + MouseKey[MouseKey["Left"] = 0] = "Left"; + MouseKey[MouseKey["Middle"] = 1] = "Middle"; + MouseKey[MouseKey["Right"] = 2] = "Right"; +})(MouseKey = exports.MouseKey || (exports.MouseKey = {})); +var KeyBoard; +(function (KeyBoard) { + // 数字 + KeyBoard[KeyBoard["Digit1"] = 49] = "Digit1"; + KeyBoard[KeyBoard["Digit2"] = 50] = "Digit2"; + KeyBoard[KeyBoard["Digit3"] = 51] = "Digit3"; + KeyBoard[KeyBoard["Digit4"] = 52] = "Digit4"; + KeyBoard[KeyBoard["Digit5"] = 53] = "Digit5"; + KeyBoard[KeyBoard["Digit6"] = 54] = "Digit6"; + KeyBoard[KeyBoard["Digit7"] = 55] = "Digit7"; + KeyBoard[KeyBoard["Digit8"] = 56] = "Digit8"; + KeyBoard[KeyBoard["Digit9"] = 57] = "Digit9"; + KeyBoard[KeyBoard["Digit0"] = 58] = "Digit0"; + // 字母 + KeyBoard[KeyBoard["KeyA"] = 65] = "KeyA"; + KeyBoard[KeyBoard["KeyB"] = 66] = "KeyB"; + KeyBoard[KeyBoard["KeyC"] = 67] = "KeyC"; + KeyBoard[KeyBoard["KeyD"] = 68] = "KeyD"; + KeyBoard[KeyBoard["KeyE"] = 69] = "KeyE"; + KeyBoard[KeyBoard["KeyF"] = 70] = "KeyF"; + KeyBoard[KeyBoard["KeyG"] = 71] = "KeyG"; + KeyBoard[KeyBoard["KeyH"] = 72] = "KeyH"; + KeyBoard[KeyBoard["KeyI"] = 73] = "KeyI"; + KeyBoard[KeyBoard["KeyJ"] = 74] = "KeyJ"; + KeyBoard[KeyBoard["KeyK"] = 75] = "KeyK"; + KeyBoard[KeyBoard["KeyL"] = 76] = "KeyL"; + KeyBoard[KeyBoard["KeyM"] = 77] = "KeyM"; + KeyBoard[KeyBoard["KeyN"] = 78] = "KeyN"; + KeyBoard[KeyBoard["KeyO"] = 79] = "KeyO"; + KeyBoard[KeyBoard["KeyP"] = 80] = "KeyP"; + KeyBoard[KeyBoard["KeyQ"] = 81] = "KeyQ"; + KeyBoard[KeyBoard["KeyR"] = 82] = "KeyR"; + KeyBoard[KeyBoard["KeyS"] = 83] = "KeyS"; + KeyBoard[KeyBoard["KeyT"] = 84] = "KeyT"; + KeyBoard[KeyBoard["KeyU"] = 85] = "KeyU"; + KeyBoard[KeyBoard["KeyV"] = 86] = "KeyV"; + KeyBoard[KeyBoard["KeyW"] = 87] = "KeyW"; + KeyBoard[KeyBoard["KeyX"] = 88] = "KeyX"; + KeyBoard[KeyBoard["KeyY"] = 89] = "KeyY"; + KeyBoard[KeyBoard["KeyZ"] = 90] = "KeyZ"; + // 符号 + /** + * 逗号 + */ + KeyBoard[KeyBoard["Comma"] = 188] = "Comma"; + KeyBoard[KeyBoard["CommaChrome"] = 229] = "CommaChrome"; + /** + * 句号 + */ + KeyBoard[KeyBoard["Period"] = 190] = "Period"; + /** + * 分号 + */ + KeyBoard[KeyBoard["Semicolon"] = 186] = "Semicolon"; + /** + * 引号 + */ + KeyBoard[KeyBoard["Quote"] = 222] = "Quote"; + /** + * 左括号 + */ + KeyBoard[KeyBoard["BracketLeft"] = 219] = "BracketLeft"; + /** + * 右括号 + */ + KeyBoard[KeyBoard["BracketRight"] = 220] = "BracketRight"; + /** + * 反引号 + */ + KeyBoard[KeyBoard["Backquote"] = 192] = "Backquote"; + /** + * 反斜杠 + */ + KeyBoard[KeyBoard["Backslash"] = 220] = "Backslash"; + /** + * 减号 + */ + KeyBoard[KeyBoard["Minus"] = 189] = "Minus"; + /** + * 等号 + */ + KeyBoard[KeyBoard["Equal"] = 187] = "Equal"; + KeyBoard[KeyBoard["IntlRo"] = 193] = "IntlRo"; + KeyBoard[KeyBoard["IntlYen"] = 255] = "IntlYen"; + // 功能键 + KeyBoard[KeyBoard["Alt"] = 18] = "Alt"; + /** + * 大写锁定 + */ + KeyBoard[KeyBoard["CapsLock"] = 20] = "CapsLock"; + KeyBoard[KeyBoard["Control"] = 17] = "Control"; + /** + * win左键 + */ + KeyBoard[KeyBoard["OSLeft"] = 91] = "OSLeft"; + /** + * win右键 + */ + KeyBoard[KeyBoard["OSRight"] = 92] = "OSRight"; + KeyBoard[KeyBoard["Shift"] = 16] = "Shift"; + KeyBoard[KeyBoard["ContextMenu"] = 93] = "ContextMenu"; + KeyBoard[KeyBoard["Enter"] = 13] = "Enter"; + KeyBoard[KeyBoard["Space"] = 32] = "Space"; + KeyBoard[KeyBoard["Backspace"] = 8] = "Backspace"; + KeyBoard[KeyBoard["Tab"] = 9] = "Tab"; + KeyBoard[KeyBoard["Delete"] = 46] = "Delete"; + KeyBoard[KeyBoard["End"] = 35] = "End"; + KeyBoard[KeyBoard["Home"] = 36] = "Home"; + KeyBoard[KeyBoard["Insert"] = 45] = "Insert"; + KeyBoard[KeyBoard["PageDown"] = 34] = "PageDown"; + KeyBoard[KeyBoard["PageUp"] = 33] = "PageUp"; + KeyBoard[KeyBoard["ArrowDown"] = 40] = "ArrowDown"; + KeyBoard[KeyBoard["ArrowLeft"] = 37] = "ArrowLeft"; + KeyBoard[KeyBoard["ArrowRight"] = 39] = "ArrowRight"; + KeyBoard[KeyBoard["ArrowUp"] = 38] = "ArrowUp"; + KeyBoard[KeyBoard["Escape"] = 27] = "Escape"; + KeyBoard[KeyBoard["PrintScreen"] = 44] = "PrintScreen"; + KeyBoard[KeyBoard["ScrollLock"] = 145] = "ScrollLock"; + KeyBoard[KeyBoard["Pause"] = 19] = "Pause"; + // F数字 + KeyBoard[KeyBoard["F1"] = 112] = "F1"; + KeyBoard[KeyBoard["F2"] = 113] = "F2"; + KeyBoard[KeyBoard["F3"] = 114] = "F3"; + KeyBoard[KeyBoard["F5"] = 116] = "F5"; + KeyBoard[KeyBoard["F6"] = 117] = "F6"; + KeyBoard[KeyBoard["F7"] = 118] = "F7"; + KeyBoard[KeyBoard["F8"] = 119] = "F8"; + KeyBoard[KeyBoard["F9"] = 120] = "F9"; + KeyBoard[KeyBoard["F10"] = 121] = "F10"; + KeyBoard[KeyBoard["F11"] = 122] = "F11"; + KeyBoard[KeyBoard["F12"] = 123] = "F12"; + //数字键盘 + KeyBoard[KeyBoard["NumLock"] = 114] = "NumLock"; + KeyBoard[KeyBoard["Numpad0"] = 96] = "Numpad0"; + KeyBoard[KeyBoard["Numpad1"] = 97] = "Numpad1"; + KeyBoard[KeyBoard["Numpad2"] = 98] = "Numpad2"; + KeyBoard[KeyBoard["Numpad3"] = 99] = "Numpad3"; + KeyBoard[KeyBoard["Numpad4"] = 100] = "Numpad4"; + KeyBoard[KeyBoard["Numpad5"] = 101] = "Numpad5"; + KeyBoard[KeyBoard["Numpad6"] = 102] = "Numpad6"; + KeyBoard[KeyBoard["Numpad7"] = 103] = "Numpad7"; + KeyBoard[KeyBoard["Numpad8"] = 104] = "Numpad8"; + KeyBoard[KeyBoard["Numpad9"] = 105] = "Numpad9"; + KeyBoard[KeyBoard["NumpadAdd"] = 107] = "NumpadAdd"; + KeyBoard[KeyBoard["NumpadDivide"] = 111] = "NumpadDivide"; + KeyBoard[KeyBoard["NumpadEqual"] = 12] = "NumpadEqual"; + KeyBoard[KeyBoard["NumpadMultiply"] = 106] = "NumpadMultiply"; + KeyBoard[KeyBoard["NumpadSubtract"] = 109] = "NumpadSubtract"; + KeyBoard[KeyBoard["NumpadDot"] = 110] = "NumpadDot"; + KeyBoard[KeyBoard["NumpadDot1"] = 190] = "NumpadDot1"; +})(KeyBoard = exports.KeyBoard || (exports.KeyBoard = {})); +//# sourceMappingURL=KeyEnum.js.map \ No newline at end of file diff --git a/dist/KeyEnum.js.map b/dist/KeyEnum.js.map new file mode 100644 index 0000000..af7ce92 --- /dev/null +++ b/dist/KeyEnum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"KeyEnum.js","sourceRoot":"","sources":["../src/KeyEnum.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Material.d.ts b/dist/Material.d.ts new file mode 100644 index 0000000..39afb83 --- /dev/null +++ b/dist/Material.d.ts @@ -0,0 +1,3 @@ +import { MeshBasicMaterial, LineBasicMaterial } from "three"; +export declare let boardMaterial: MeshBasicMaterial; +export declare let edgeMaterial: LineBasicMaterial; diff --git a/dist/Material.js b/dist/Material.js new file mode 100644 index 0000000..8e06455 --- /dev/null +++ b/dist/Material.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const three_1 = require("three"); +//板件的材质,使用这个材质避免板件将线覆盖. +exports.boardMaterial = new three_1.MeshBasicMaterial({ + color: new three_1.Color(0.8, 0.8, 0.8), + polygonOffset: true, + polygonOffsetFactor: 1, + polygonOffsetUnits: 1 +}); +//线框的材质 +exports.edgeMaterial = new three_1.LineBasicMaterial({ linewidth: 2, color: new three_1.Color(0, 0, 0) }); +//# sourceMappingURL=Material.js.map \ No newline at end of file diff --git a/dist/Material.js.map b/dist/Material.js.map new file mode 100644 index 0000000..4ba7f6c --- /dev/null +++ b/dist/Material.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Material.js","sourceRoot":"","sources":["../src/Material.ts"],"names":[],"mappings":";;AAAA,iCAAoE;AAEpE,uBAAuB;AACZ,QAAA,aAAa,GAAG,IAAI,yBAAiB,CAAC;IAC7C,KAAK,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,CAAC;IACtB,kBAAkB,EAAE,CAAC;CACxB,CAAC,CAAC;AAEH,OAAO;AACI,QAAA,YAAY,GAAG,IAAI,yBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/Matrix2.d.ts b/dist/Matrix2.d.ts new file mode 100644 index 0000000..4d417d7 --- /dev/null +++ b/dist/Matrix2.d.ts @@ -0,0 +1,7 @@ +import { Vector2, Vector3 } from "three"; +export declare class Matrix2 { + private el; + set(n11: number, n12: number, n21: number, n22: number): this; + applyVector(vec: Vector2 | Vector3): this; + setRotate(theta: number): Matrix2; +} diff --git a/dist/Matrix2.js b/dist/Matrix2.js new file mode 100644 index 0000000..477b10c --- /dev/null +++ b/dist/Matrix2.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Matrix2 { + constructor() { + this.el = [1, 0, 0, 1]; + } + set(n11, n12, n21, n22) { + let te = this.el; + te[0] = n11; + te[1] = n21; + te[2] = n12; + te[3] = n22; + return this; + } + applyVector(vec) { + let x = vec.x, y = vec.y; + let e = this.el; + vec.x = e[0] * x + e[2] * y; + vec.y = e[1] * x + e[3] * y; + return this; + } + setRotate(theta) { + let el = this.el; + let c = Math.cos(theta), s = Math.sin(theta); + this.set(c, -s, s, c); + return this; + } +} +exports.Matrix2 = Matrix2; +//# sourceMappingURL=Matrix2.js.map \ No newline at end of file diff --git a/dist/Matrix2.js.map b/dist/Matrix2.js.map new file mode 100644 index 0000000..a413d14 --- /dev/null +++ b/dist/Matrix2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Matrix2.js","sourceRoot":"","sources":["../src/Matrix2.ts"],"names":[],"mappings":";;AAEA;IAAA;QAEY,OAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IA4B9B,CAAC;IA3BG,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;QAElD,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAEjB,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACzB,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,WAAW,CAAC,GAAsB;QAE9B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,KAAa;QAEnB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACV,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA9BD,0BA8BC"} \ No newline at end of file diff --git a/dist/Orbit.d.ts b/dist/Orbit.d.ts new file mode 100644 index 0000000..a2e0c3a --- /dev/null +++ b/dist/Orbit.d.ts @@ -0,0 +1,38 @@ +import * as THREE from "three"; +/** + * 轨道控制的数学类,观察向量和角度的互相转换 + * 当x当抬头或者低头到90度时,触发万向锁. + * + * @class Orbit + */ +export declare class Orbit { + private m_RoX; + RoZ: number; + RoX: number; + /** + * 使用旋转角度 计算观察向量 + * + * @param {THREE.Vector3} [dir] 引用传入,如果传入,那么就不构造新的向量 + * @returns {THREE.Vector3} 返回观察向量 + * @memberof Orbit + */ + UpdateDirection(dir?: THREE.Vector3): THREE.Vector3; + /** + * 使用观察向量,计算旋转角度 + * + * @param {THREE.Vector3} dir + * @memberof Orbit + */ + UpdateRoValue(dir: THREE.Vector3): void; + /** + * + * 根据观察向量 求头部的向量. + * + * @static + * @param {THREE.Vector3} dir + * @param {THREE.Vector3} [up] + * @returns {THREE.Vector3} + * @memberof Orbit + */ + static ComputUpDirection(dir: THREE.Vector3, up?: THREE.Vector3): THREE.Vector3; +} diff --git a/dist/Orbit.js b/dist/Orbit.js new file mode 100644 index 0000000..63ae560 --- /dev/null +++ b/dist/Orbit.js @@ -0,0 +1,81 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +/** + * 轨道控制的数学类,观察向量和角度的互相转换 + * 当x当抬头或者低头到90度时,触发万向锁. + * + * @class Orbit + */ +class Orbit { + constructor() { + //抬头低头 正数抬头 负数低头 + this.m_RoX = 0; + //身体旋转 0为正右边 逆时针旋转 + this.RoZ = 0; + } + get RoX() { + return this.m_RoX; + } + set RoX(v) { + this.m_RoX = THREE.Math.clamp(v, Math.PI * -0.5, Math.PI * 0.5); + } + /** + * 使用旋转角度 计算观察向量 + * + * @param {THREE.Vector3} [dir] 引用传入,如果传入,那么就不构造新的向量 + * @returns {THREE.Vector3} 返回观察向量 + * @memberof Orbit + */ + UpdateDirection(dir) { + let rtDir = dir ? dir : new THREE.Vector3(); + rtDir.z = Math.sin(this.m_RoX); + //归一化专用. + let d = Math.abs(Math.cos(this.m_RoX)); + rtDir.x = Math.cos(this.RoZ) * d; + rtDir.y = Math.sin(this.RoZ) * d; + return rtDir; + } + /** + * 使用观察向量,计算旋转角度 + * + * @param {THREE.Vector3} dir + * @memberof Orbit + */ + UpdateRoValue(dir) { + dir.normalize(); + this.m_RoX = Math.asin(dir.z); + if (dir.x < 1e-4 && dir.y < 1e-4) + this.RoZ = Math.PI * 0.5; + else + this.RoZ = Math.atan2(dir.y, dir.x); + } + /** + * + * 根据观察向量 求头部的向量. + * + * @static + * @param {THREE.Vector3} dir + * @param {THREE.Vector3} [up] + * @returns {THREE.Vector3} + * @memberof Orbit + */ + static ComputUpDirection(dir, up) { + let upRes = up ? up : new THREE.Vector3(); + if (dir.equals(new THREE.Vector3(0, 0, -1))) { + upRes.set(0, 1, 0); + } + else if (dir.equals(new THREE.Vector3(0, 0, 1))) { + upRes.set(0, -1, 0); + } + else { + let xv = new THREE.Vector3(); + xv.crossVectors(new THREE.Vector3(0, 0, 1), dir); + upRes.crossVectors(dir, xv); + upRes.normalize(); + } + return upRes; + } +} +exports.Orbit = Orbit; +//# sourceMappingURL=Orbit.js.map \ No newline at end of file diff --git a/dist/Orbit.js.map b/dist/Orbit.js.map new file mode 100644 index 0000000..6dcfebc --- /dev/null +++ b/dist/Orbit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Orbit.js","sourceRoot":"","sources":["../src/Orbit.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAE/B;;;;;GAKG;AACH;IAAA;QAEI,gBAAgB;QACR,UAAK,GAAW,CAAC,CAAC;QAE1B,kBAAkB;QAClB,QAAG,GAAW,CAAC,CAAC;IA+EpB,CAAC;IA7EG,IAAI,GAAG;QAEH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAI,GAAG,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,GAAmB;QAE/B,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAE5C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,QAAQ;QACR,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,GAAkB;QAE5B,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;;YAEzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAkB,EAAE,EAAkB;QAE3D,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAC3C;YACI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACtB;aACI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAC/C;YACI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB;aAED;YACI,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7B,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACjD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,EAAE,CAAC;SACrB;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AArFD,sBAqFC"} \ No newline at end of file diff --git a/dist/PlaneExt.d.ts b/dist/PlaneExt.d.ts new file mode 100644 index 0000000..a94d5f8 --- /dev/null +++ b/dist/PlaneExt.d.ts @@ -0,0 +1,7 @@ +import * as THREE from 'three'; +import { Vector3, Line3 } from "three"; +export declare class PlaneExt extends THREE.Plane { + constructor(normal?: THREE.Vector3, constant?: number); + intersectLine(line: Line3, optionalTarget?: Vector3, extendLine?: boolean): Vector3; + intersectRay(ray: THREE.Ray, optionalTarget?: Vector3, extendLine?: boolean): Vector3; +} diff --git a/dist/PlaneExt.js b/dist/PlaneExt.js new file mode 100644 index 0000000..83ba6ae --- /dev/null +++ b/dist/PlaneExt.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const three_1 = require("three"); +class PlaneExt extends THREE.Plane { + constructor(normal, constant) { + super(normal, constant); + } + intersectLine(line, optionalTarget, extendLine) { + let v1 = new three_1.Vector3(); + let result = optionalTarget || new three_1.Vector3(); + let direction = line.delta(v1); + let denominator = this.normal.dot(direction); + if (denominator === 0) { + // line is coplanar, return origin + if (this.distanceToPoint(line.start) === 0) { + return result.copy(line.start); + } + // Unsure if this is the correct method to handle this case. + return undefined; + } + let t = -(line.start.dot(this.normal) + this.constant) / denominator; + //If you not extendLine,check intersect point in Line + if (!extendLine && (t < 0 || t > 1)) { + return undefined; + } + return result.copy(direction).multiplyScalar(t).add(line.start); + } + intersectRay(ray, optionalTarget, extendLine) { + // 从射线初始位置 + let line = new THREE.Line3(ray.origin.clone(), ray.origin.clone().add(ray.direction)); + return this.intersectLine(line, optionalTarget, extendLine); + } +} +exports.PlaneExt = PlaneExt; +//# sourceMappingURL=PlaneExt.js.map \ No newline at end of file diff --git a/dist/PlaneExt.js.map b/dist/PlaneExt.js.map new file mode 100644 index 0000000..38d9d2a --- /dev/null +++ b/dist/PlaneExt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlaneExt.js","sourceRoot":"","sources":["../src/PlaneExt.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,iCAAuC;AAEvC,cAAsB,SAAQ,KAAK,CAAC,KAAK;IAErC,YAAY,MAAsB,EAAE,QAAiB;QAEjD,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,aAAa,CAAC,IAAW,EAAE,cAAwB,EAAE,UAAoB;QAErE,IAAI,EAAE,GAAG,IAAI,eAAO,EAAE,CAAC;QAEvB,IAAI,MAAM,GAAG,cAAc,IAAI,IAAI,eAAO,EAAE,CAAC;QAE7C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE/B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,WAAW,KAAK,CAAC,EACrB;YACI,kCAAkC;YAClC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAC1C;gBACI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;YACD,4DAA4D;YAC5D,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QACtE,qDAAqD;QACrD,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACnC;YACI,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IACD,YAAY,CAAC,GAAc,EAAE,cAAwB,EAAE,UAAoB;QAEvE,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;CACJ;AA1CD,4BA0CC"} \ No newline at end of file diff --git a/dist/PointPick.d.ts b/dist/PointPick.d.ts new file mode 100644 index 0000000..e62c6f7 --- /dev/null +++ b/dist/PointPick.d.ts @@ -0,0 +1,12 @@ +import { Mesh } from "three"; +import { Viewer } from "."; +/** + * 点选 + * + * @export + * @param {Viewer} view + * @param {number} ptx + * @param {number} pty + * @returns {(Mesh | undefined)} + */ +export declare function PointPick(view: Viewer, ptx: number, pty: number): Mesh | undefined; diff --git a/dist/PointPick.js b/dist/PointPick.js new file mode 100644 index 0000000..96171df --- /dev/null +++ b/dist/PointPick.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const three_1 = require("three"); +/** + * 点选 + * + * @export + * @param {Viewer} view + * @param {number} ptx + * @param {number} pty + * @returns {(Mesh | undefined)} + */ +function PointPick(view, ptx, pty) { + let raycaster = new three_1.Raycaster(); + raycaster.setFromCamera({ + x: (ptx / view._Width) * 2 - 1, + y: -(pty / view._Height) * 2 + 1 //y轴相反 + }, view.m_Camera.Camera); + //https://github.com/mrdoob/three.js/issues/14128 + raycaster.ray.origin.set((ptx / view._Width) * 2 - 1, -(pty / view._Height) * 2 + 1, -1).unproject(view.m_Camera.Camera); + let minDis = Infinity; + let minObj = undefined; + view.m_Scene.children.forEach(obj => { + if (obj instanceof three_1.Mesh) { + let intersects = []; + obj.raycast(raycaster, intersects); + for (let i of intersects) { + if (i.distance < minDis) { + minObj = obj; + minDis = i.distance; + } + } + } + }); + return minObj; +} +exports.PointPick = PointPick; +//# sourceMappingURL=PointPick.js.map \ No newline at end of file diff --git a/dist/PointPick.js.map b/dist/PointPick.js.map new file mode 100644 index 0000000..ef33f6e --- /dev/null +++ b/dist/PointPick.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PointPick.js","sourceRoot":"","sources":["../src/PointPick.ts"],"names":[],"mappings":";;AAAA,iCAA2E;AAc3E;;;;;;;;GAQG;AACH,mBAA0B,IAAY,EAAE,GAAW,EAAE,GAAW;IAE5D,IAAI,SAAS,GAAG,IAAI,iBAAS,EAAE,CAAC;IAChC,SAAS,CAAC,aAAa,CAAC;QACpB,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAC9B,CAAC,EAAE,CAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;KAC3C,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEzB,iDAAiD;IACjD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAG1H,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,MAAM,GAAG,SAAS,CAAC;IAEvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAEhC,IAAI,GAAG,YAAY,YAAI,EACvB;YACI,IAAI,UAAU,GAAgB,EAAE,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEnC,KAAK,IAAI,CAAC,IAAI,UAAU,EACxB;gBACI,IAAI,CAAC,CAAC,QAAQ,GAAG,MAAM,EACvB;oBACI,MAAM,GAAG,GAAG,CAAC;oBACb,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC;iBACvB;aACJ;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAlCD,8BAkCC"} \ No newline at end of file diff --git a/dist/RotateUV.d.ts b/dist/RotateUV.d.ts new file mode 100644 index 0000000..84a6adb --- /dev/null +++ b/dist/RotateUV.d.ts @@ -0,0 +1,2 @@ +import * as THREE from 'three'; +export declare function RotateUVs(geo: THREE.Geometry): void; diff --git a/dist/RotateUV.js b/dist/RotateUV.js new file mode 100644 index 0000000..4783ecc --- /dev/null +++ b/dist/RotateUV.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Matrix2_1 = require("./Matrix2"); +const THREE = require("three"); +function RotateUVs(geo) { + let roMat = new Matrix2_1.Matrix2(); + roMat.set(0, -1, 1, 0); + let addV = new THREE.Vector2(1, 0); + for (let uvs of geo.faceVertexUvs) { + for (let uv of uvs) { + for (let v of uv) { + roMat.applyVector(v); + v.add(addV); + } + } + } + geo.uvsNeedUpdate = true; +} +exports.RotateUVs = RotateUVs; +//# sourceMappingURL=RotateUV.js.map \ No newline at end of file diff --git a/dist/RotateUV.js.map b/dist/RotateUV.js.map new file mode 100644 index 0000000..cc0cfa2 --- /dev/null +++ b/dist/RotateUV.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RotateUV.js","sourceRoot":"","sources":["../src/RotateUV.ts"],"names":[],"mappings":";;AAAA,uCAAoC;AACpC,+BAA+B;AAG/B,mBAA0B,GAAmB;IAEzC,IAAI,KAAK,GAAG,IAAI,iBAAO,EAAE,CAAC;IAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACX,CAAC,EAAE,CAAC,CAAC,CAAC;IAEV,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,aAAa,EACjC;QACI,KAAK,IAAI,EAAE,IAAI,GAAG,EAClB;YACI,KAAK,IAAI,CAAC,IAAI,EAAE,EAChB;gBACI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACf;SACJ;KACJ;IACD,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC7B,CAAC;AApBD,8BAoBC"} \ No newline at end of file diff --git a/dist/Text.d.ts b/dist/Text.d.ts new file mode 100644 index 0000000..2004644 --- /dev/null +++ b/dist/Text.d.ts @@ -0,0 +1,11 @@ +import { Mesh } from "three"; +export declare class DbText extends Mesh { + /** + * + * 构造一个文本对象,8位点(中心点下面)在0点 + * @param {string} str 数字字符串 + * @param {number} height 文本高度 + * @memberof DbText + */ + constructor(str: string, height?: number); +} diff --git a/dist/Text.js b/dist/Text.js new file mode 100644 index 0000000..e8dcc19 --- /dev/null +++ b/dist/Text.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const three_1 = require("three"); +const ColorPalette_1 = require("./ColorPalette"); +const GeUtils_1 = require("./GeUtils"); +class FontLoaderUtil { + static Load() { + if (!this.defFont) { + const f = require("../node_modules/three/examples/fonts/helvetiker_regular.typeface.json"); + let loader = new three_1.FontLoader(); + this.defFont = loader.parse(f); + } + return this.defFont; + } +} +class DbText extends three_1.Mesh { + /** + * + * 构造一个文本对象,8位点(中心点下面)在0点 + * @param {string} str 数字字符串 + * @param {number} height 文本高度 + * @memberof DbText + */ + constructor(str, height = 5) { + let font = FontLoaderUtil.Load(); + let shapes = font.generateShapes(str, height, 0.1); + let geometry = new three_1.ShapeGeometry(shapes); + geometry.computeBoundingBox(); + super(geometry, ColorPalette_1.ColorMaterial.GetLineMaterial(5)); + let center = geometry.boundingBox.getCenter(new three_1.Vector3()); + this.applyMatrix(GeUtils_1.MoveMatrix(new three_1.Vector3(-center.x, 0, 0))); + } +} +exports.DbText = DbText; +//# sourceMappingURL=Text.js.map \ No newline at end of file diff --git a/dist/Text.js.map b/dist/Text.js.map new file mode 100644 index 0000000..e57df0a --- /dev/null +++ b/dist/Text.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.ts"],"names":[],"mappings":";;AAAA,iCAAuE;AACvE,iDAA+C;AAC/C,uCAAuC;AAGvC;IAGI,MAAM,CAAC,IAAI;QAEP,IAAG,CAAC,IAAI,CAAC,OAAO,EAChB;YACI,MAAM,CAAC,GAAG,OAAO,CAAC,uEAAuE,CAAC,CAAC;YAC3F,IAAI,MAAM,GAAG,IAAI,kBAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAED,YAAoB,SAAQ,YAAI;IAE5B;;;;;;OAMG;IACH,YAAY,GAAU,EAAC,SAAgB,CAAC;QAGpC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,MAAM,GAAkB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAC,GAAG,CAAC,CAAC;QACjE,IAAI,QAAQ,GAAG,IAAI,qBAAa,CAAC,MAAM,CAAC,CAAC;QAEzC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAE9B,KAAK,CAAC,QAAQ,EAAC,4BAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,eAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,oBAAU,CAAC,IAAI,eAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CACJ;AAxBD,wBAwBC"} \ No newline at end of file diff --git a/dist/ThreeCSG.d.ts b/dist/ThreeCSG.d.ts new file mode 100644 index 0000000..1ec5f92 --- /dev/null +++ b/dist/ThreeCSG.d.ts @@ -0,0 +1,58 @@ +import * as THREE from "three"; +export declare class ThreeBSP { + tree: Node; + matrix: THREE.Matrix4; + Node: typeof Node; + Vertex: typeof Vertex; + Polygon: typeof Polygon; + constructor(geometry: any); + subtract(other_tree: any): ThreeBSP; + union(other_tree: any): ThreeBSP; + intersect(other_tree: any): ThreeBSP; + toGeometry(): THREE.Geometry; + toMesh(material: any): THREE.Mesh; +} +export declare class Polygon { + w: any; + normal: any; + vertices: any; + constructor(vertices?: any, normal?: any, w?: any); + calculateProperties(): this; + clone(): Polygon; + flip(): this; + classifyVertex(vertex: any): 0 | 1 | 2; + classifySide(polygon: any): 0 | 1 | 2 | 3; + splitPolygon(polygon: any, coplanar_front: any, coplanar_back: any, front: any, back: any): void; +} +export declare class Vertex { + uv: any; + normal: any; + z: any; + y: any; + x: any; + constructor(x: number, y: number, z: number, normal: THREE.Vector3, uv: THREE.Vector2); + clone(): Vertex; + add(vertex: any): this; + subtract(vertex: any): this; + multiplyScalar(scalar: any): this; + cross(vertex: any): this; + normalize(): this; + dot(vertex: any): number; + lerp(a: any, t: any): this; + interpolate(other: any, t: any): Vertex; + applyMatrix4(m: any): this; +} +export declare class Node { + divider: any; + back: any; + front: any; + polygons: any[]; + constructor(polygons?: any); + isConvex(polygons: any): boolean; + build(polygons: any): void; + allPolygons(): any[]; + clone(): Node; + invert(): this; + clipPolygons(polygons: any): any; + clipTo(node: any): void; +} diff --git a/dist/ThreeCSG.js b/dist/ThreeCSG.js new file mode 100644 index 0000000..f31ec7e --- /dev/null +++ b/dist/ThreeCSG.js @@ -0,0 +1,476 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +/*jshint esversion: 6 */ +const EPSILON = 1e-5, COPLANAR = 0, //共面 +FRONT = 1, //前 +BACK = 2, SPANNING = 3; +class ThreeBSP { + constructor(geometry) { + // Convert THREE.Geometry to ThreeBSP + let i, _length_i, face, vertex, faceVertexUvs, uvs, polygon, polygons = [], tree; + this.Polygon = Polygon; + this.Vertex = Vertex; + this.Node = Node; + if (geometry instanceof THREE.Geometry) { + this.matrix = new THREE.Matrix4(); + } + else if (geometry instanceof THREE.Mesh) { + // #todo: add hierarchy support + geometry.updateMatrix(); + this.matrix = geometry.matrix.clone(); + geometry = geometry.geometry; + } + else if (geometry instanceof Node) { + this.tree = geometry; + this.matrix = new THREE.Matrix4(); + return this; + } + else { + throw 'ThreeBSP: Given geometry is unsupported'; + } + for (i = 0, _length_i = geometry.faces.length; i < _length_i; i++) { + face = geometry.faces[i]; + faceVertexUvs = geometry.faceVertexUvs[0][i]; + polygon = new Polygon(); + if (face instanceof THREE.Face3) { + vertex = geometry.vertices[face.a]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[0].x, faceVertexUvs[0].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[0], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + vertex = geometry.vertices[face.b]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[1].x, faceVertexUvs[1].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[1], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + vertex = geometry.vertices[face.c]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[2].x, faceVertexUvs[2].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[2], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + } + else if (typeof THREE.Face4) { + vertex = geometry.vertices[face.a]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[0].x, faceVertexUvs[0].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[0], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + vertex = geometry.vertices[face.b]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[1].x, faceVertexUvs[1].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[1], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + vertex = geometry.vertices[face.c]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[2].x, faceVertexUvs[2].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[2], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + vertex = geometry.vertices[face.d]; + uvs = faceVertexUvs ? new THREE.Vector2(faceVertexUvs[3].x, faceVertexUvs[3].y) : null; + vertex = new Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[3], uvs); + vertex.applyMatrix4(this.matrix); + polygon.vertices.push(vertex); + } + else { + throw 'Invalid face type at index ' + i; + } + polygon.calculateProperties(); + polygons.push(polygon); + } + this.tree = new Node(polygons); + } + //减 + subtract(other_tree) { + let a = this.tree.clone(), b = other_tree.tree.clone(); + a.invert(); + a.clipTo(b); + b.clipTo(a); + b.invert(); + b.clipTo(a); + b.invert(); + a.build(b.allPolygons()); + a.invert(); + let bsp = new ThreeBSP(a); + bsp.matrix = this.matrix; + return bsp; + } + //结合 + union(other_tree) { + let a = this.tree.clone(), b = other_tree.tree.clone(); + a.clipTo(b); + b.clipTo(a); + b.invert(); + b.clipTo(a); + b.invert(); + a.build(b.allPolygons()); + let bsp = new ThreeBSP(a); + bsp.matrix = this.matrix; + return bsp; + } + //相交 + intersect(other_tree) { + let a = this.tree.clone(), b = other_tree.tree.clone(); + a.invert(); + b.clipTo(a); + b.invert(); + a.clipTo(b); + b.clipTo(a); + a.build(b.allPolygons()); + a.invert(); + let bsp = new ThreeBSP(a); + bsp.matrix = this.matrix; + return bsp; + } + toGeometry() { + let i, j, matrix = new THREE.Matrix4().getInverse(this.matrix), geometry = new THREE.Geometry(), polygons = this.tree.allPolygons(), polygon_count = polygons.length, polygon, polygon_vertice_count, vertice_dict = {}, vertex_idx_a, vertex_idx_b, vertex_idx_c, vertex, face, verticeUvs; + for (i = 0; i < polygon_count; i++) { + polygon = polygons[i]; + polygon_vertice_count = polygon.vertices.length; + for (j = 2; j < polygon_vertice_count; j++) { + verticeUvs = []; + vertex = polygon.vertices[0]; + verticeUvs.push(new THREE.Vector2(vertex.uv.x, vertex.uv.y)); + vertex = new THREE.Vector3(vertex.x, vertex.y, vertex.z); + vertex.applyMatrix4(matrix); + if (typeof vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z] !== 'undefined') { + vertex_idx_a = vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z]; + } + else { + geometry.vertices.push(vertex); + vertex_idx_a = vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z] = geometry.vertices.length - 1; + } + vertex = polygon.vertices[j - 1]; + verticeUvs.push(new THREE.Vector2(vertex.uv.x, vertex.uv.y)); + vertex = new THREE.Vector3(vertex.x, vertex.y, vertex.z); + vertex.applyMatrix4(matrix); + if (typeof vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z] !== 'undefined') { + vertex_idx_b = vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z]; + } + else { + geometry.vertices.push(vertex); + vertex_idx_b = vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z] = geometry.vertices.length - 1; + } + vertex = polygon.vertices[j]; + verticeUvs.push(new THREE.Vector2(vertex.uv.x, vertex.uv.y)); + vertex = new THREE.Vector3(vertex.x, vertex.y, vertex.z); + vertex.applyMatrix4(matrix); + if (typeof vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z] !== 'undefined') { + vertex_idx_c = vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z]; + } + else { + geometry.vertices.push(vertex); + vertex_idx_c = vertice_dict[vertex.x + ',' + vertex.y + ',' + vertex.z] = geometry.vertices.length - 1; + } + face = new THREE.Face3(vertex_idx_a, vertex_idx_b, vertex_idx_c, new THREE.Vector3(polygon.normal.x, polygon.normal.y, polygon.normal.z)); + geometry.faces.push(face); + geometry.faceVertexUvs[0].push(verticeUvs); + } + } + return geometry; + } + toMesh(material) { + let geometry = this.toGeometry(), mesh = new THREE.Mesh(geometry, material); + mesh.position.setFromMatrixPosition(this.matrix); + mesh.rotation.setFromRotationMatrix(this.matrix); + return mesh; + } +} +exports.ThreeBSP = ThreeBSP; +//多边形 +class Polygon { + constructor(vertices, normal, w) { + if (!(vertices instanceof Array)) { + vertices = []; + } + this.vertices = vertices; + if (vertices.length > 0) { + this.calculateProperties(); + } + else { + this.normal = this.w = undefined; + } + } + calculateProperties() { + let a = this.vertices[0], b = this.vertices[1], c = this.vertices[2]; + this.normal = b.clone().subtract(a).cross(c.clone().subtract(a)).normalize(); + this.w = this.normal.clone().dot(a); + return this; + } + clone() { + let i, vertice_count, polygon = new Polygon(); + for (i = 0, vertice_count = this.vertices.length; i < vertice_count; i++) { + polygon.vertices.push(this.vertices[i].clone()); + } + polygon.calculateProperties(); + return polygon; + } + flip() { + let i, vertices = []; + this.normal.multiplyScalar(-1); + this.w *= -1; + for (i = this.vertices.length - 1; i >= 0; i--) { + vertices.push(this.vertices[i]); + } + this.vertices = vertices; + return this; + } + //划分? + classifyVertex(vertex) { + let side_value = this.normal.dot(vertex) - this.w; + if (side_value < -EPSILON) { + return BACK; + } + else if (side_value > EPSILON) { + return FRONT; + } + else { + return COPLANAR; + } + } + //划分边? + classifySide(polygon) { + let i, vertex, classification, num_positive = 0, num_negative = 0, vertice_count = polygon.vertices.length; + for (i = 0; i < vertice_count; i++) { + vertex = polygon.vertices[i]; + classification = this.classifyVertex(vertex); + if (classification === FRONT) { + num_positive++; + } + else if (classification === BACK) { + num_negative++; + } + } + if (num_positive > 0 && num_negative === 0) { + return FRONT; + } + else if (num_positive === 0 && num_negative > 0) { + return BACK; + } + else if (num_positive === 0 && num_negative === 0) { + return COPLANAR; + } + else { + return SPANNING; + } + } + //分解 分离 区域? + splitPolygon(polygon, coplanar_front, coplanar_back, front, back) { + let classification = this.classifySide(polygon); + if (classification === COPLANAR) { + (this.normal.dot(polygon.normal) > 0 ? coplanar_front : coplanar_back).push(polygon); + } + else if (classification === FRONT) { + front.push(polygon); + } + else if (classification === BACK) { + back.push(polygon); + } + else { + let vertice_count, i, j, ti, tj, vi, vj, t, v, f = [], b = []; + for (i = 0, vertice_count = polygon.vertices.length; i < vertice_count; i++) { + j = (i + 1) % vertice_count; + vi = polygon.vertices[i]; + vj = polygon.vertices[j]; + ti = this.classifyVertex(vi); + tj = this.classifyVertex(vj); + if (ti != BACK) + f.push(vi); + if (ti != FRONT) + b.push(vi); + if ((ti | tj) === SPANNING) { + t = (this.w - this.normal.dot(vi)) / this.normal.dot(vj.clone().subtract(vi)); + v = vi.interpolate(vj, t); + f.push(v); + b.push(v); + } + } + if (f.length >= 3) + front.push(new Polygon(f).calculateProperties()); + if (b.length >= 3) + back.push(new Polygon(b).calculateProperties()); + } + } +} +exports.Polygon = Polygon; +class Vertex { + constructor(x, y, z, normal, uv) { + this.x = x; + this.y = y; + this.z = z; + this.normal = normal || new THREE.Vector3(); + this.uv = uv || new THREE.Vector2(); + } + clone() { + return new Vertex(this.x, this.y, this.z, this.normal.clone(), this.uv.clone()); + } + add(vertex) { + this.x += vertex.x; + this.y += vertex.y; + this.z += vertex.z; + return this; + } + subtract(vertex) { + this.x -= vertex.x; + this.y -= vertex.y; + this.z -= vertex.z; + return this; + } + multiplyScalar(scalar) { + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + return this; + } + //×乘 + cross(vertex) { + let x = this.x, y = this.y, z = this.z; + this.x = y * vertex.z - z * vertex.y; + this.y = z * vertex.x - x * vertex.z; + this.z = x * vertex.y - y * vertex.x; + return this; + } + normalize() { + let length = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + this.x /= length; + this.y /= length; + this.z /= length; + return this; + } + //点乘 + dot(vertex) { + return this.x * vertex.x + this.y * vertex.y + this.z * vertex.z; + } + //线性插值 + lerp(a, t) { + this.add(a.clone().subtract(this).multiplyScalar(t)); + this.normal.add(a.normal.clone().sub(this.normal).multiplyScalar(t)); + this.uv.add(a.uv.clone().sub(this.uv).multiplyScalar(t)); + return this; + } + //插值 + interpolate(other, t) { + return this.clone().lerp(other, t); + } + applyMatrix4(m) { + // input: THREE.Matrix4 affine matrix + let x = this.x, y = this.y, z = this.z; + let e = m.elements; + this.x = e[0] * x + e[4] * y + e[8] * z + e[12]; + this.y = e[1] * x + e[5] * y + e[9] * z + e[13]; + this.z = e[2] * x + e[6] * y + e[10] * z + e[14]; + return this; + } +} +exports.Vertex = Vertex; +class Node { + constructor(polygons) { + let i, polygon_count, front = [], back = []; + this.polygons = []; + this.front = this.back = undefined; + if (!(polygons instanceof Array) || polygons.length === 0) + return; + this.divider = polygons[0].clone(); + for (i = 0, polygon_count = polygons.length; i < polygon_count; i++) { + this.divider.splitPolygon(polygons[i], this.polygons, this.polygons, front, back); + } + if (front.length > 0) { + this.front = new Node(front); + } + if (back.length > 0) { + this.back = new Node(back); + } + } + //是凸的? 凸包? + isConvex(polygons) { + let i, j; + for (i = 0; i < polygons.length; i++) { + for (j = 0; j < polygons.length; j++) { + if (i !== j && polygons[i].classifySide(polygons[j]) !== BACK) { + return false; + } + } + } + return true; + } + build(polygons) { + let i, polygon_count, front = [], back = []; + if (!this.divider) { + this.divider = polygons[0].clone(); + } + for (i = 0, polygon_count = polygons.length; i < polygon_count; i++) { + this.divider.splitPolygon(polygons[i], this.polygons, this.polygons, front, back); + } + if (front.length > 0) { + if (!this.front) + this.front = new Node(); + this.front.build(front); + } + if (back.length > 0) { + if (!this.back) + this.back = new Node(); + this.back.build(back); + } + } + allPolygons() { + let polygons = this.polygons.slice(); + if (this.front) + polygons = polygons.concat(this.front.allPolygons()); + if (this.back) + polygons = polygons.concat(this.back.allPolygons()); + return polygons; + } + clone() { + let node = new Node(); + node.divider = this.divider.clone(); + node.polygons = this.polygons.map(function (polygon) { + return polygon.clone(); + }); + node.front = this.front && this.front.clone(); + node.back = this.back && this.back.clone(); + return node; + } + //反转 + invert() { + let i, polygon_count, temp; + for (i = 0, polygon_count = this.polygons.length; i < polygon_count; i++) { + this.polygons[i].flip(); + } + this.divider.flip(); + if (this.front) + this.front.invert(); + if (this.back) + this.back.invert(); + temp = this.front; + this.front = this.back; + this.back = temp; + return this; + } + // + clipPolygons(polygons) { + let i, polygon_count, front, back; + if (!this.divider) + return polygons.slice(); + front = []; + back = []; + for (i = 0, polygon_count = polygons.length; i < polygon_count; i++) { + this.divider.splitPolygon(polygons[i], front, back, front, back); + } + if (this.front) + front = this.front.clipPolygons(front); + if (this.back) + back = this.back.clipPolygons(back); + else + back = []; + return front.concat(back); + } + clipTo(node) { + this.polygons = node.clipPolygons(this.polygons); + if (this.front) + this.front.clipTo(node); + if (this.back) + this.back.clipTo(node); + } +} +exports.Node = Node; +//# sourceMappingURL=ThreeCSG.js.map \ No newline at end of file diff --git a/dist/ThreeCSG.js.map b/dist/ThreeCSG.js.map new file mode 100644 index 0000000..b5806a4 --- /dev/null +++ b/dist/ThreeCSG.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ThreeCSG.js","sourceRoot":"","sources":["../src/ThreeCSG.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Utils.d.ts b/dist/Utils.d.ts new file mode 100644 index 0000000..ed98679 --- /dev/null +++ b/dist/Utils.d.ts @@ -0,0 +1,2 @@ +import { Viewer } from "."; +export declare function LoadBoard(view: Viewer, data: any[]): void; diff --git a/dist/Utils.js b/dist/Utils.js new file mode 100644 index 0000000..db21b58 --- /dev/null +++ b/dist/Utils.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const _1 = require("."); +function LoadBoard(view, data) { + view.m_Scene.children.forEach(obj => { + let geo = obj["geometry"]; + if (geo) + geo.dispose(); + }); + view.m_Scene.children.length = 0; + //加板 + let { meshs, edgesa } = _1.createTemplateBoard(data); + //加标注 + let dims = _1.DrawDimension(meshs); + view.m_Scene.add(...meshs); + view.m_Scene.add(...edgesa); + view.m_Scene.add(...dims); + view.ViewToSwiso(); + view.ZoomAll(); + view.Zoom(1.1); +} +exports.LoadBoard = LoadBoard; +//# sourceMappingURL=Utils.js.map \ No newline at end of file diff --git a/dist/Utils.js.map b/dist/Utils.js.map new file mode 100644 index 0000000..27ea0c2 --- /dev/null +++ b/dist/Utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":";;AAAA,wBAA2E;AAG3E,mBAA0B,IAAY,EAAE,IAAW;IAE/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAEhC,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,CAAa,CAAC;QACtC,IAAI,GAAG;YAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjC,IAAI;IACJ,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAmB,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK;IACL,IAAI,IAAI,GAAG,gBAAa,CAAC,KAAK,CAAC,CAAC;IAEhC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAE1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,IAAI,CAAC,OAAO,EAAE,CAAC;IACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AArBD,8BAqBC"} \ No newline at end of file diff --git a/dist/Viewer.d.ts b/dist/Viewer.d.ts new file mode 100644 index 0000000..69cc32e --- /dev/null +++ b/dist/Viewer.d.ts @@ -0,0 +1,32 @@ +import * as THREE from "three"; +import { CameraUpdate } from "./CameraUpdate"; +export declare class Viewer { + m_LookTarget: any; + m_Camera: CameraUpdate; + m_bNeedUpdate: boolean; + m_Render: THREE.WebGLRenderer; + m_DomEl: HTMLElement; + _Height: number; + _Width: number; + m_Scene: THREE.Scene; + constructor(canvasContainer: HTMLElement); + initRender(canvasContainer: HTMLElement): void; + OnSize: (width?: any, height?: any) => void; + StartRender: () => void; + Render(): void; + ScreenToWorld(pt: THREE.Vector3, planVec?: THREE.Vector3): void; + WorldToScreen(pt: THREE.Vector3): void; + /** + * 更新视角观测目标(物体中心) + * + * @memberof Viewer + */ + UpdateLockTarget(): void; + Rotate(mouseMove: THREE.Vector3): void; + Pan(mouseMove: THREE.Vector3): void; + Zoom(scale: number, center?: THREE.Vector3): void; + ZoomAll(): void; + ViewToTop(): void; + ViewToFront(): void; + ViewToSwiso(): void; +} diff --git a/dist/Viewer.js b/dist/Viewer.js new file mode 100644 index 0000000..5940540 --- /dev/null +++ b/dist/Viewer.js @@ -0,0 +1,142 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const CameraUpdate_1 = require("./CameraUpdate"); +const GeUtils_1 = require("./GeUtils"); +const PlaneExt_1 = require("./PlaneExt"); +const _1 = require("."); +const three_1 = require("three"); +class Viewer { + //构造 + constructor(canvasContainer) { + this.m_Camera = new CameraUpdate_1.CameraUpdate(); + this.m_bNeedUpdate = true; + this.m_Scene = new THREE.Scene(); + this.OnSize = (width, height) => { + this._Width = width ? width : this.m_DomEl.scrollWidth; + this._Height = height ? height : this.m_DomEl.scrollHeight; + //校验.成为2的倍数 避免外轮廓错误. + if (this._Width % 2 == 1) + this._Width -= 1; + if (this._Height % 2 == 1) + this._Height -= 1; + this.m_Render.setSize(this._Width, this._Height); + this.m_Camera.SetSize(this._Width, this._Height); + }; + this.StartRender = () => { + requestAnimationFrame(this.StartRender); + if (this.m_Scene != null && this.m_bNeedUpdate) { + this.Render(); + this.m_bNeedUpdate = false; + } + }; + this.m_DomEl = canvasContainer; + this.initRender(canvasContainer); + this.OnSize(); + this.StartRender(); + new _1.CameraControls(this); + window.addEventListener("resize", () => { + this.OnSize(); + }); + //选中 + let selectMaterial = new three_1.MeshBasicMaterial({ color: new three_1.Color(0.1, 0.5, 0.5) }); + let oldMesh; + this.m_Render.domElement.addEventListener("mousemove", (e) => { + let mesh = _1.PointPick(this, e.offsetX, e.offsetY); + if (oldMesh) + oldMesh.material = _1.boardMaterial; + if (mesh) { + oldMesh = mesh; + mesh.material = selectMaterial; + this.m_bNeedUpdate = true; + } + }); + } + //初始化render + initRender(canvasContainer) { + this.m_Render = new THREE.WebGLRenderer({ + antialias: true, + precision: "highp", + alpha: true, + }); + //加到画布 + canvasContainer.appendChild(this.m_Render.domElement); + this.m_Render.autoClear = true; + //如果设置,那么它希望所有的纹理和颜色都是预乘的伽玛。默认值为false。 + // this.m_Render.gammaInput = true; + // this.m_Render.gammaOutput = true; + // this.m_Render.shadowMap.enabled = true; + // this.m_Render.toneMapping = THREE.ReinhardToneMapping; + //设置设备像素比。 这通常用于HiDPI设备,以防止模糊输出画布。 + this.m_Render.setPixelRatio(window.devicePixelRatio); + this.m_Render.physicallyCorrectLights = true; + //this.m_Render.toneMappingExposure = Math.pow(1, 5.0); // to allow for very bright scenes. + //设置它的背景色为黑色 + this.m_Render.setClearColor(0xffffff, 1); + this.OnSize(); + } + Render() { + this.m_Render.render(this.m_Scene, this.m_Camera.Camera); + } + ScreenToWorld(pt, planVec) { + //变换和求交点 + let plan = new PlaneExt_1.PlaneExt(planVec || new THREE.Vector3(0, 0, 1)); + let raycaster = new THREE.Raycaster(); + // 射线从相机射线向屏幕点位置 + raycaster.setFromCamera({ + x: (pt.x / this._Width) * 2 - 1, + y: -(pt.y / this._Height) * 2 + 1 + }, this.m_Camera.Camera); + plan.intersectRay(raycaster.ray, pt, true); + } + WorldToScreen(pt) { + let widthHalf = this._Width * 0.5; + let heightHalf = this._Height * 0.5; + pt.project(this.m_Camera.Camera); + pt.x = (pt.x * widthHalf) + widthHalf; + pt.y = -(pt.y * heightHalf) + heightHalf; + } + /** + * 更新视角观测目标(物体中心) + * + * @memberof Viewer + */ + UpdateLockTarget() { + let renderList = this.m_Render.renderLists.get(this.m_Scene, this.m_Camera.Camera); + let box = GeUtils_1.GetBoxArr(renderList.opaque.map(o => o.object)); + if (box) + this.m_LookTarget = box.getCenter(new THREE.Vector3()); + else + this.m_LookTarget = GeUtils_1.cZeroVec; + } + Rotate(mouseMove) { + this.m_Camera.Rotate(mouseMove, this.m_LookTarget); + this.m_bNeedUpdate = true; + } + Pan(mouseMove) { + this.m_Camera.Pan(mouseMove); + this.m_bNeedUpdate = true; + } + Zoom(scale, center) { + this.m_Camera.Zoom(scale, center); + this.m_bNeedUpdate = true; + } + ZoomAll() { + this.m_Camera.ZoomExtensBox3(GeUtils_1.GetBox(this.m_Scene, true)); + this.m_bNeedUpdate = true; + } + ViewToTop() { + this.m_Camera.LookAt(new THREE.Vector3(0, 0, -1)); + this.m_bNeedUpdate = true; + } + ViewToFront() { + this.m_Camera.LookAt(new THREE.Vector3(0, 1, 0)); + this.m_bNeedUpdate = true; + } + ViewToSwiso() { + this.m_Camera.LookAt(new THREE.Vector3(1, 1, -1)); + this.m_bNeedUpdate = true; + } +} +exports.Viewer = Viewer; +//# sourceMappingURL=Viewer.js.map \ No newline at end of file diff --git a/dist/Viewer.js.map b/dist/Viewer.js.map new file mode 100644 index 0000000..92bb169 --- /dev/null +++ b/dist/Viewer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Viewer.js","sourceRoot":"","sources":["../src/Viewer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/createBoard.d.ts b/dist/createBoard.d.ts new file mode 100644 index 0000000..039f906 --- /dev/null +++ b/dist/createBoard.d.ts @@ -0,0 +1,22 @@ +import * as THREE from 'three'; +import { Geometry, LineSegments } from 'three'; +export declare class Arc2d { + m_StartAn: number; + m_EndAn: number; + m_StartPoint: THREE.Vector2; + m_EndPoint: THREE.Vector2; + m_Center: THREE.Vector2; + m_Radius: number; + constructor(p1: THREE.Vector2, p2: THREE.Vector2, bul: number); +} +export declare function createPath(pts: THREE.Vector2[], buls: number[], shapeOut?: THREE.Shape): THREE.Shape; +export declare function getVec(data: object): THREE.Vector3; +export declare function createBoard(boardData: object): { + mesh: THREE.Mesh; + edges: THREE.LineSegments[]; +}; +export declare function createTemplateBoard(brDataList: any[]): { + meshs: any[]; + edgesa: any[]; +}; +export declare function createEdge(geo: Geometry): LineSegments; diff --git a/dist/createBoard.js b/dist/createBoard.js new file mode 100644 index 0000000..332895c --- /dev/null +++ b/dist/createBoard.js @@ -0,0 +1,135 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const THREE = require("three"); +const three_1 = require("three"); +const GeUtils_1 = require("./GeUtils"); +const Material_1 = require("./Material"); +const RotateUV_1 = require("./RotateUV"); +const ThreeCSG_1 = require("./ThreeCSG"); +//解析二维圆弧类. +class Arc2d { + constructor(p1, p2, bul) { + this.m_StartPoint = p1.clone(); + this.m_EndPoint = p2.clone(); + let vec = p2.clone().sub(p1); + let len = vec.length(); + let an = vec.angle(); + this.m_Radius = len / Math.sin(2 * Math.atan(bul)) / 2; + let allAngle = Math.atan(bul) * 4; + let delDis = bul * len / 2; + let toDis = this.m_Radius - delDis; + an += Math.PI * 0.5; + this.m_Center = p1.clone().add(p2); + this.m_Center.multiplyScalar(0.5); + GeUtils_1.polar(this.m_Center, an, toDis); + this.m_StartAn = p1.clone().sub(this.m_Center).angle(); + this.m_EndAn = p2.clone().sub(this.m_Center).angle(); + if (bul < 0) { + //一个神奇的特性 它需要这么做 + this.m_StartAn -= Math.PI; + this.m_EndAn -= Math.PI; + } + } +} +exports.Arc2d = Arc2d; +//创建轮廓 通过点表和凸度 +function createPath(pts, buls, shapeOut) { + let shape = shapeOut || new THREE.Shape(); + if (pts.length === 0) + return shape; + let firstPt = pts[0]; + shape.moveTo(firstPt.x, firstPt.y); + for (let i = 0; i < pts.length - 1; i++) { + let nextPt = pts[i + 1]; + if (buls[i] == 0) { + shape.lineTo(nextPt.x, nextPt.y); + } + else { + let pt = pts[i]; + //参考 + //http://www.dorodnic.com/blog/tag/three-js/ 绘制一个齿轮 + //https://www.kirupa.com/html5/drawing_circles_canvas.htm //html5 + let arc2 = new Arc2d(pt, nextPt, buls[i]); + let cen = arc2.m_Center; + shape.absarc(cen.x, cen.y, arc2.m_Radius, arc2.m_StartAn, arc2.m_EndAn, buls[i] < 0); + } + } + return shape; +} +exports.createPath = createPath; +function getVec(data) { + return new THREE.Vector3(data["x"], data["y"], data["z"]); +} +exports.getVec = getVec; +//创建板件 暂时这么写 +function createBoard(boardData) { + let pts = new Array(); + let buls = new Array(); + let boardPts = boardData["Pts"]; + let boardBuls = boardData["Buls"]; + let boardHeight = boardData["H"]; + let boardMat = new THREE.Matrix4(); + let matInv = new THREE.Matrix4(); + //InitBoardMat + { + let xD = getVec(boardData["XVec"]); + let yD = getVec(boardData["YVec"]); + let ZD = getVec(boardData["ZVec"]); + let pBase = getVec(boardData["BasePoint"]); + boardMat.makeBasis(xD, yD, ZD); + boardMat.setPosition(pBase); + matInv.getInverse(boardMat, true); + } + for (let i = 0; i < boardPts.length; i++) { + let pt = getVec(boardPts[i]); + pt.applyMatrix4(matInv); + pts.push(new THREE.Vector2(pt.x, pt.y)); + buls.push(boardBuls[i]); + } + let sp = createPath(pts, buls); + let extrudeSettings = { + steps: 1, + bevelEnabled: false, + amount: boardHeight + }; + let ext = new THREE.ExtrudeGeometry(sp, extrudeSettings); + ext.computeBoundingSphere(); + ext.computeBoundingBox(); + ext.translate(0, 0, -boardHeight); + ext.applyMatrix(boardMat); + //外边. + let edges = [createEdge(ext)]; + //差集 + if (boardData["SubBoardLocal"].length > 0) { + let subBoardList = boardData["SubBoardLocal"].map(d => createBoard(d)); + let thisCsg = new ThreeCSG_1.ThreeBSP(ext); + for (let br of subBoardList) { + edges.push(...br.edges); + let subCsg = new ThreeCSG_1.ThreeBSP(br.mesh); + thisCsg = thisCsg.subtract(subCsg); + } + ext = thisCsg.toGeometry(); + } + if (boardData["BoardName"] === "地脚线") + RotateUV_1.RotateUVs(ext); + let mesh = new THREE.Mesh(ext, Material_1.boardMaterial); + return { mesh, edges }; +} +exports.createBoard = createBoard; +function createTemplateBoard(brDataList) { + let meshs = []; + let edgesa = []; + for (let d of brDataList) { + let { mesh, edges } = createBoard(d); + meshs.push(mesh); + edgesa.push(...edges); + } + return { meshs, edgesa }; +} +exports.createTemplateBoard = createTemplateBoard; +function createEdge(geo) { + let edge = new THREE.EdgesGeometry(geo, 1); + return new three_1.LineSegments(edge, Material_1.edgeMaterial); +} +exports.createEdge = createEdge; +//# sourceMappingURL=createBoard.js.map \ No newline at end of file diff --git a/dist/createBoard.js.map b/dist/createBoard.js.map new file mode 100644 index 0000000..ca1f976 --- /dev/null +++ b/dist/createBoard.js.map @@ -0,0 +1 @@ +{"version":3,"file":"createBoard.js","sourceRoot":"","sources":["../src/createBoard.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/data.d.ts b/dist/data.d.ts new file mode 100644 index 0000000..3419937 --- /dev/null +++ b/dist/data.d.ts @@ -0,0 +1,75 @@ +export declare var data: ({ + "L": number; + "W": number; + "H": number; + "BasePoint": { + "x": number; + "y": number; + "z": number; + }; + "XVec": { + "x": number; + "y": number; + "z": number; + }; + "YVec": { + "x": number; + "y": number; + "z": number; + }; + "ZVec": { + "x": number; + "y": number; + "z": number; + }; + "Pts": { + "x": number; + "y": number; + "z": number; + }[]; + "Buls": number[]; + "SubBoardLocal": any[]; + "SubBoardAssoc": any[]; + MaterialId?: undefined; + Handle?: undefined; + CabName?: undefined; + BoardName?: undefined; + Grain?: undefined; +} | { + "L": number; + "W": number; + "H": number; + "MaterialId": string; + "BasePoint": { + "x": number; + "y": number; + "z": number; + }; + "XVec": { + "x": number; + "y": number; + "z": number; + }; + "YVec": { + "x": number; + "y": number; + "z": number; + }; + "ZVec": { + "x": number; + "y": number; + "z": number; + }; + "Handle": string; + "CabName": string; + "BoardName": string; + "Grain": number; + "Pts": { + "x": number; + "y": number; + "z": number; + }[]; + "Buls": number[]; + "SubBoardLocal": any[]; + "SubBoardAssoc": any[]; +})[]; diff --git a/dist/data.js b/dist/data.js new file mode 100644 index 0000000..1f4853d --- /dev/null +++ b/dist/data.js @@ -0,0 +1,552 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.data = [ + { + "L": 100.0, + "W": 800.0, + "H": 18.0, + "BasePoint": { + "x": 2076.407626150509, + "y": 1942.2104819571228, + "z": 1882.0 + }, + "XVec": { + "x": 1.0, + "y": 4.930380657631324e-32, + "z": -2.220446049250313e-16 + }, + "YVec": { + "x": 2.220446049250313e-16, + "y": 2.220446049250313e-16, + "z": 1.0 + }, + "ZVec": { + "x": 9.860761315262648e-32, + "y": -1.0, + "z": 2.220446049250313e-16 + }, + "Pts": [ + { + "x": 2076.407626150509, + "y": 1942.2104819571228, + "z": 1882.0 + }, + { + "x": 2876.407626150509, + "y": 1942.2104819571228, + "z": 1881.9999999999998 + }, + { + "x": 2876.407626150509, + "y": 1942.2104819571228, + "z": 1981.9999999999998 + }, + { + "x": 2076.407626150509, + "y": 1942.2104819571228, + "z": 1982.0 + }, + { + "x": 2076.407626150509, + "y": 1942.2104819571228, + "z": 1882.0 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 800.0, + "W": 100.00000000000068, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2876.407626150509, + "y": 1960.2104819571226, + "z": 1900.0000000000005 + }, + "XVec": { + "x": 4.440892098500626e-16, + "y": 1.0, + "z": 2.2204460492503124e-16 + }, + "YVec": { + "x": -1.0, + "y": 4.440892098500626e-16, + "z": 2.220446049250314e-16 + }, + "ZVec": { + "x": 2.220446049250313e-16, + "y": -2.220446049250313e-16, + "z": 1.0 + }, + "Handle": "293", + "CabName": "1.标准柜上梁1", + "BoardName": "", + "Grain": 0, + "Pts": [ + { + "x": 2876.407626150509, + "y": 1960.2104819571228, + "z": 1900.0000000000005 + }, + { + "x": 2876.407626150509, + "y": 2060.210481957123, + "z": 1900.0000000000005 + }, + { + "x": 2076.407626150509, + "y": 2060.210481957123, + "z": 1900.0000000000005 + }, + { + "x": 2076.407626150509, + "y": 1960.210481957123, + "z": 1900.0000000000005 + }, + { + "x": 2876.407626150509, + "y": 1960.2104819571228, + "z": 1900.0000000000005 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 1899.9999999999998, + "W": 800.0, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2076.407626150509, + "y": 2060.2104819571225, + "z": -1.816324868286756e-13 + }, + "XVec": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "YVec": { + "x": 0.0, + "y": 4.440892098500626e-16, + "z": 1.0 + }, + "ZVec": { + "x": 0.0, + "y": -1.0, + "z": 4.440892098500626e-16 + }, + "Handle": "291", + "CabName": "1.标准柜上梁1", + "BoardName": "背板", + "Grain": 0, + "Pts": [ + { + "x": 2076.407626150509, + "y": 2060.2104819571225, + "z": -1.021405182655144e-13 + }, + { + "x": 2876.407626150509, + "y": 2060.2104819571225, + "z": -1.816324868286756e-13 + }, + { + "x": 2876.407626150509, + "y": 2060.210481957123, + "z": 1899.9999999999996 + }, + { + "x": 2076.407626150509, + "y": 2060.210481957123, + "z": 1899.9999999999998 + }, + { + "x": 2076.407626150509, + "y": 2060.2104819571225, + "z": -1.021405182655144e-13 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 800.0, + "W": 482.0000000000002, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2876.407626150509, + "y": 1578.210481957122, + "z": 97.99999999999999 + }, + "XVec": { + "x": 4.440892098500626e-16, + "y": 1.0, + "z": 0.0 + }, + "YVec": { + "x": -1.0, + "y": 4.440892098500626e-16, + "z": 0.0 + }, + "ZVec": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "Handle": "290", + "CabName": "1.标准柜上梁1", + "BoardName": "底板", + "Grain": 0, + "Pts": [ + { + "x": 2876.407626150509, + "y": 1578.210481957122, + "z": 97.99999999999999 + }, + { + "x": 2876.407626150509, + "y": 2060.2104819571225, + "z": 97.99999999999999 + }, + { + "x": 2076.407626150509, + "y": 2060.2104819571225, + "z": 97.99999999999999 + }, + { + "x": 2076.407626150509, + "y": 1578.2104819571226, + "z": 97.99999999999999 + }, + { + "x": 2876.407626150509, + "y": 1578.210481957122, + "z": 97.99999999999999 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 80.0, + "W": 800.0, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2076.407626150509, + "y": 1578.2104819571223, + "z": 0.0 + }, + "XVec": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "YVec": { + "x": 0.0, + "y": 4.440892098500626e-16, + "z": 1.0 + }, + "ZVec": { + "x": 0.0, + "y": -1.0, + "z": 4.440892098500626e-16 + }, + "Handle": "28E", + "CabName": "1.标准柜上梁1", + "BoardName": "地脚线", + "Grain": 1, + "Pts": [ + { + "x": 2076.407626150509, + "y": 1578.2104819571223, + "z": 0.0 + }, + { + "x": 2876.407626150509, + "y": 1578.2104819571223, + "z": 0.0 + }, + { + "x": 2876.407626150509, + "y": 1578.2104819571223, + "z": 80.0 + }, + { + "x": 2076.407626150509, + "y": 1578.2104819571223, + "z": 80.0 + }, + { + "x": 2076.407626150509, + "y": 1578.2104819571223, + "z": 0.0 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 800.0, + "W": 482.0, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2876.4076261505085, + "y": 1478.210481957122, + "z": 1999.9999999999996 + }, + "XVec": { + "x": 4.440892098500626e-16, + "y": 1.0, + "z": 0.0 + }, + "YVec": { + "x": -1.0, + "y": 4.440892098500626e-16, + "z": 0.0 + }, + "ZVec": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "Handle": "28C", + "CabName": "1.标准柜上梁1", + "BoardName": "顶板", + "Grain": 0, + "Pts": [ + { + "x": 2076.407626150509, + "y": 1960.2104819571223, + "z": 1999.9999999999996 + }, + { + "x": 2076.407626150509, + "y": 1478.2104819571226, + "z": 1999.9999999999996 + }, + { + "x": 2876.407626150509, + "y": 1478.210481957122, + "z": 1999.9999999999996 + }, + { + "x": 2876.4076261505085, + "y": 1960.210481957122, + "z": 1999.9999999999996 + }, + { + "x": 2076.407626150509, + "y": 1960.2104819571223, + "z": 1999.9999999999996 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 1999.9999999999996, + "W": 600.0, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2894.4076261505094, + "y": 1478.2104819571223, + "z": -2.2737367544323197e-13 + }, + "XVec": { + "x": 4.930380657631324e-32, + "y": 1.0, + "z": -2.220446049250313e-16 + }, + "YVec": { + "x": -2.220446049250313e-16, + "y": 2.220446049250313e-16, + "z": 1.0 + }, + "ZVec": { + "x": 1.0, + "y": 0.0, + "z": 2.220446049250313e-16 + }, + "Handle": "28B", + "CabName": "1.标准柜上梁1", + "BoardName": "右侧板", + "Grain": 0, + "Pts": [ + { + "x": 2894.407626150509, + "y": 1960.2104819571228, + "z": 1899.9999999999989 + }, + { + "x": 2894.407626150509, + "y": 1960.2104819571228, + "z": 1999.9999999999994 + }, + { + "x": 2894.407626150509, + "y": 1478.2104819571228, + "z": 1999.9999999999994 + }, + { + "x": 2894.4076261505094, + "y": 1478.2104819571223, + "z": -1.816324868286755e-13 + }, + { + "x": 2894.4076261505094, + "y": 2078.2104819571225, + "z": -6.274980535181384e-13 + }, + { + "x": 2894.407626150509, + "y": 2078.2104819571229, + "z": 1899.9999999999973 + }, + { + "x": 2894.407626150509, + "y": 1960.2104819571228, + "z": 1899.9999999999989 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + }, + { + "L": 1999.9999999999996, + "W": 600.0, + "H": 18.0, + "MaterialId": "EE", + "BasePoint": { + "x": 2076.4076261505094, + "y": 1478.2104819571223, + "z": 1.0097419586828951e-28 + }, + "XVec": { + "x": 4.930380657631324e-32, + "y": 1.0, + "z": -2.220446049250313e-16 + }, + "YVec": { + "x": -2.220446049250313e-16, + "y": 2.220446049250313e-16, + "z": 1.0 + }, + "ZVec": { + "x": 1.0, + "y": 0.0, + "z": 2.220446049250313e-16 + }, + "Handle": "288", + "CabName": "1.标准柜上梁1", + "BoardName": "左侧板", + "Grain": 0, + "Pts": [ + { + "x": 2076.407626150509, + "y": 1960.2104819571228, + "z": 1899.999999999999 + }, + { + "x": 2076.407626150509, + "y": 1960.2104819571228, + "z": 1999.9999999999996 + }, + { + "x": 2076.407626150509, + "y": 1478.2104819571228, + "z": 1999.9999999999996 + }, + { + "x": 2076.4076261505094, + "y": 1478.2104819571223, + "z": 1.0097419586828951e-28 + }, + { + "x": 2076.4076261505094, + "y": 2078.2104819571225, + "z": -4.4586556668946279e-13 + }, + { + "x": 2076.407626150509, + "y": 2078.2104819571229, + "z": 1899.9999999999978 + }, + { + "x": 2076.407626150509, + "y": 1960.2104819571228, + "z": 1899.999999999999 + } + ], + "Buls": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "SubBoardLocal": [], + "SubBoardAssoc": [] + } +]; +//# sourceMappingURL=data.js.map \ No newline at end of file diff --git a/dist/data.js.map b/dist/data.js.map new file mode 100644 index 0000000..05dc03f --- /dev/null +++ b/dist/data.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..b1036cd --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,9 @@ +export * from "./Viewer"; +export * from "./CameraControls"; +export * from "./GeUtils"; +export * from "./createBoard"; +export * from "./Dimension"; +export * from "./DrawDimension"; +export * from "./Material"; +export * from "./PointPick"; +export * from "./Utils"; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..cd3f1dc --- /dev/null +++ b/dist/index.js @@ -0,0 +1,15 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("./Viewer")); +__export(require("./CameraControls")); +__export(require("./GeUtils")); +__export(require("./createBoard")); +__export(require("./Dimension")); +__export(require("./DrawDimension")); +__export(require("./Material")); +__export(require("./PointPick")); +__export(require("./Utils")); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..ef85b1c --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,8BAAyB;AACzB,sCAAiC;AACjC,+BAA0B;AAC1B,mCAA8B;AAC9B,iCAA4B;AAC5B,qCAAgC;AAChC,gCAA2B;AAC3B,iCAA2B;AAC3B,6BAAuB"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b9b0f75..ed71b47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "threejs_study", + "name": "cadview", "version": "1.0.0", "lockfileVersion": 1, "requires": true, @@ -25,6915 +25,16 @@ "integrity": "sha1-j6SQKN6SXHuLzj1VnTN0ziyJ7ig=", "dev": true }, - "accepts": { - "version": "1.3.5", - "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.5.3", - "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.5.3.tgz", - "integrity": "sha1-9HPdR+AnegjijpvsWu6wR1HwuMk=", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "ajv": { - "version": "6.5.0", - "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.5.0.tgz", - "integrity": "sha1-TIr/34CIfY8TLJxSq4otxNC3skw=", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1", - "uri-js": "4.2.1" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "http://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "1.9.1" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", - "dev": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/array-includes/download/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.1", - "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz", - "integrity": "sha1-skWiPKcZMAROxT+kaqAKPofGphA=", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "atob": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/atob/download/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000845", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "awesome-typescript-loader": { - "version": "3.5.0", - "resolved": "http://registry.npm.taobao.org/awesome-typescript-loader/download/awesome-typescript-loader-3.5.0.tgz", - "integrity": "sha1-TU0Qy6egTtQz36AzQlCEb7EaGlo=", - "dev": true, - "requires": { - "chalk": "2.4.1", - "enhanced-resolve": "3.3.0", - "loader-utils": "1.1.0", - "lodash": "4.17.10", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "source-map-support": "0.5.6" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "http://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz", - "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=" - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "http://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", - "dev": true - }, - "body-parser": { - "version": "1.18.2", - "resolved": "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.16" - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "http://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "dev": true, - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.1.tgz", - "integrity": "sha1-M0MSTbbXrVPiaogmMYcSvchFD5w=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "http://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "browserslist": { - "version": "1.7.7", - "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "1.0.30000845", - "electron-to-chromium": "1.3.47" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.11", - "isarray": "1.0.0" - } - }, - "buffer-from": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.0.0.tgz", - "integrity": "sha1-TLiDLSNhJYmwQG6eKVbBfwb99TE=", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "camel-case": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "http://registry.npm.taobao.org/caniuse-api/download/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000845", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "caniuse-db": { - "version": "1.0.30000845", - "resolved": "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000845.tgz", - "integrity": "sha1-KWqQZKhJt2z2174TLBhSxbVfNxg=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.1.tgz", - "integrity": "sha1-GMSasWoDe26wFSzIPjRxM4IVtm4=", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "chokidar": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-2.0.3.tgz", - "integrity": "sha1-3L1PbLsqVbR5m6ioQKxSfl9LEXY=", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "clap": { - "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/clap/download/clap-1.2.3.tgz", - "integrity": "sha1-TzZ0WzIAhJJVf0ZBLWbVDLmbzlE=", - "requires": { - "chalk": "1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "clean-css": { - "version": "4.1.11", - "resolved": "http://registry.npm.taobao.org/clean-css/download/clean-css-4.1.11.tgz", - "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "coa": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/coa/download/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "requires": { - "q": "1.5.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "0.11.4", - "resolved": "http://registry.npm.taobao.org/color/download/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "requires": { - "clone": "1.0.4", - "color-convert": "1.9.1", - "color-string": "0.3.0" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.1.tgz", - "integrity": "sha1-wSYRB66y8pTr/+ye2eytUppgl+0=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/color-string/download/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "requires": { - "color-name": "1.1.3" - } - }, - "colormin": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/colormin/download/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" - }, - "commander": { - "version": "2.15.1", - "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.15.1.tgz", - "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "compressible": { - "version": "2.0.13", - "resolved": "http://registry.npm.taobao.org/compressible/download/compressible-2.0.13.tgz", - "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", - "dev": true, - "requires": { - "mime-db": "1.33.0" - } - }, - "compression": { - "version": "1.7.2", - "resolved": "http://registry.npm.taobao.org/compression/download/compression-1.7.2.tgz", - "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", - "compressible": "2.0.13", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.1", - "vary": "1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "dev": true, - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-loader": { - "version": "0.28.11", - "resolved": "http://registry.npm.taobao.org/css-loader/download/css-loader-0.28.11.tgz", - "integrity": "sha1-w/mGSnAL4nEbtaJGKyOJsaOS2rc=", - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", - "domutils": "1.5.1", - "nth-check": "1.0.1" - } - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" - } - }, - "css-what": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" - }, - "cssnano": { - "version": "3.10.0", - "resolved": "http://registry.npm.taobao.org/cssnano/download/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "http://registry.npm.taobao.org/csso/download/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "1.0.2" - } - }, - "d": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "0.10.42" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "define-properties": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/del/download/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "depd": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/detect-node/download/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", - "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "dom-converter": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/dom-converter/download/dom-converter-0.1.4.tgz", - "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", - "dev": true, - "requires": { - "utila": "0.3.3" - }, - "dependencies": { - "utila": { - "version": "0.3.3", - "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", - "dev": true - } - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", - "dev": true - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz", - "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.47", - "resolved": "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.47.tgz", - "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=" - }, - "elliptic": { - "version": "6.4.0", - "resolved": "http://registry.npm.taobao.org/elliptic/download/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "enhanced-resolve": { - "version": "3.3.0", - "resolved": "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-3.3.0.tgz", - "integrity": "sha1-lQlk7MfwMypCMhtnOzjcj/FVNbM=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, - "entities": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "http://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es-abstract": { - "version": "1.11.0", - "resolved": "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.11.0.tgz", - "integrity": "sha1-zOh9UY8Elok7GjDNhGGDVTVIBoE=", - "dev": true, - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" - } - }, - "es5-ext": { - "version": "0.10.42", - "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.42.tgz", - "integrity": "sha1-jAfdM68E1dzRMQtc7xO+pjqJuo0=", - "dev": true, - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escope": { - "version": "3.6.0", - "resolved": "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "etag": { - "version": "1.8.1", - "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" - } - }, - "eventemitter3": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz", - "integrity": "sha1-CQtNbNvWRe0Qv3UNS1QHlC17oWM=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/events/download/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "eventsource": { - "version": "0.1.6", - "resolved": "http://registry.npm.taobao.org/eventsource/download/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true, - "requires": { - "original": "1.0.1" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "dev": true, - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.4" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz", - "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "express": { - "version": "4.16.3", - "resolved": "http://registry.npm.taobao.org/express/download/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=" - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.1.tgz", - "integrity": "sha1-7r9O2EAHnIP0JJA4ydcDAIMBsQU=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/flatten/download/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" - }, - "follow-redirects": { - "version": "1.5.0", - "resolved": "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.0.tgz", - "integrity": "sha1-I09Jz3cLfzW0DnkPY2zroMOgq3c=", - "dev": true, - "requires": { - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forwarded": { - "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.4.tgz", - "integrity": "sha1-9B3LGvJYKvNpLaNvxVy9jhBBxCY=", - "dev": true, - "optional": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globby": { - "version": "6.1.0", - "resolved": "http://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "http://registry.npm.taobao.org/handle-thing/download/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, - "has": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.3.tgz", - "integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "he": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/he/download/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.6.0.tgz", - "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "http://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" - } - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" - }, - "html-entities": { - "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-minifier": { - "version": "3.5.16", - "resolved": "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.16.tgz", - "integrity": "sha1-OfWquveL38BX/mczQibv1/OFEXU=", - "dev": true, - "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.11", - "commander": "2.15.1", - "he": "1.1.1", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.3.26" - } - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "3.5.16", - "loader-utils": "0.2.17", - "lodash": "4.17.10", - "pretty-error": "2.1.1", - "tapable": "1.0.0", - "toposort": "1.0.7", - "util.promisify": "1.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" - } - }, - "tapable": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/tapable/download/tapable-1.0.0.tgz", - "integrity": "sha1-y7Y52QAu7ZxrWXXrIFmNeTbx+fI=", - "dev": true - } - } - }, - "htmlparser2": { - "version": "3.3.0", - "resolved": "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.3.0.tgz", - "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.1.0", - "domutils": "1.1.6", - "readable-stream": "1.0.34" - }, - "dependencies": { - "domutils": { - "version": "1.1.6", - "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.1.6.tgz", - "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "http://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.4.0" - } - }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.17.0.tgz", - "integrity": "sha1-etOElGWPhGBeL220Q230EPTlvpo=", - "dev": true, - "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.0", - "requires-port": "1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "requires": { - "http-proxy": "1.17.0", - "is-glob": "3.1.0", - "lodash": "4.17.10", - "micromatch": "2.3.11" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - } - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - } - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz", - "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs=", - "dev": true - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "6.0.22" - }, - "dependencies": { - "postcss": { - "version": "6.0.22", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.22.tgz", - "integrity": "sha1-4jt4MUkFw7kMvWFwISHnp4hI8qM=", - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "ieee754": { - "version": "1.1.11", - "resolved": "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.11.tgz", - "integrity": "sha1-wWOE/+APW3g1gk5ntvK9RKUilFU=", - "dev": true - }, - "import-local": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz", - "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/internal-ip/download/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true, - "requires": { - "meow": "3.7.0" - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/interpret/download/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "http://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ipaddr.js": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-callable": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - } - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-glob": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-odd": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-odd/download/is-odd-2.0.0.tgz", - "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", - "dev": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", - "dev": true - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-svg": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-svg/download/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "requires": { - "html-comment-regex": "1.1.1" - } - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "js-base64": { - "version": "2.4.5", - "resolved": "http://registry.npm.taobao.org/js-base64/download/js-base64-2.4.5.tgz", - "integrity": "sha1-4pPNPHyC8HDXAPx6HKCi5p8QH5I=" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" - } - }, - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "json-loader": { - "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/json-loader/download/json-loader-0.5.7.tgz", - "integrity": "sha1-3KFKcCNf+C8KyaOr62DTN6NlGF0=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json3": { - "version": "3.3.2", - "resolved": "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "killable": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/killable/download/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/loader-runner/download/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.10.tgz", - "integrity": "sha1-G3eTz3JZ6jj7NmHU04syYK+K5Oc=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "http://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "http://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "http://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.6.1", - "resolved": "http://registry.npm.taobao.org/loglevel/download/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.3.tgz", - "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "macaddress": { - "version": "0.2.8", - "resolved": "http://registry.npm.taobao.org/macaddress/download/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=" - }, - "map-cache": { - "version": "0.2.2", - "resolved": "http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "http://registry.npm.taobao.org/math-expression-evaluator/download/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" - }, - "math-random": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "md5.js": { - "version": "1.3.4", - "resolved": "http://registry.npm.taobao.org/md5.js/download/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz", - "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=", - "dev": true - }, - "mime-db": { - "version": "1.33.0", - "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz", - "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s=", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz", - "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=", - "dev": true, - "requires": { - "mime-db": "1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "http://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", - "dev": true, - "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.10.0", - "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz", - "integrity": "sha1-ltDNYQ69WNS03pzAxoKM2pnHVI8=", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.9", - "resolved": "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.9.tgz", - "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "neo-async": { - "version": "2.5.1", - "resolved": "http://registry.npm.taobao.org/neo-async/download/neo-async-2.5.1.tgz", - "integrity": "sha1-rLkJ4yex6H7J7xX0G4omlRKtQe4=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "http://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", - "dev": true, - "requires": { - "lower-case": "1.1.4" - } - }, - "node-forge": { - "version": "0.7.5", - "resolved": "http://registry.npm.taobao.org/node-forge/download/node-forge-0.7.5.tgz", - "integrity": "sha1-bBUsNFzhHFL0ZcKr2VfoY5zWdN8=", - "dev": true - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.1.0.tgz", - "integrity": "sha1-X5QmPUBPbkR2fXJpAf/wVHjWAN8=", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.2", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", - "dev": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "nth-check": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true, - "requires": { - "boolbase": "1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "http://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-keys": { - "version": "1.0.11", - "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", - "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "opn": { - "version": "5.3.0", - "resolved": "http://registry.npm.taobao.org/opn/download/opn-5.3.0.tgz", - "integrity": "sha1-ZIcVZchjh18FLP31PT48ta21Oxw=", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "original": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/original/download/original-1.0.1.tgz", - "integrity": "sha1-sKU/9Cupl6jJzR+12q60K51pMZA=", - "dev": true, - "requires": { - "url-parse": "1.4.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-1.2.0.tgz", - "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/pako/download/pako-1.0.6.tgz", - "integrity": "sha1-AQEhG6pwxLykoPY/Igbpe3368lg=", - "dev": true - }, - "param-case": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "2.3.2" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.1.tgz", - "integrity": "sha1-9r8pOBgzK9DatU77Fgh3JHRebKg=", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.16.tgz", - "integrity": "sha1-dAQgjsawG2LYW/g4U6gGT42cKlw=", - "dev": true, - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "portfinder": { - "version": "1.0.13", - "resolved": "http://registry.npm.taobao.org/portfinder/download/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz", - "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "http://registry.npm.taobao.org/postcss-calc/download/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "http://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "http://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "http://registry.npm.taobao.org/postcss-discard-unused/download/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "http://registry.npm.taobao.org/postcss-merge-idents/download/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.2" - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/postcss-message-helpers/download/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "http://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "requires": { - "postcss": "6.0.22" - }, - "dependencies": { - "postcss": { - "version": "6.0.22", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.22.tgz", - "integrity": "sha1-4jt4MUkFw7kMvWFwISHnp4hI8qM=", - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.22" - }, - "dependencies": { - "postcss": { - "version": "6.0.22", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.22.tgz", - "integrity": "sha1-4jt4MUkFw7kMvWFwISHnp4hI8qM=", - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.22" - }, - "dependencies": { - "postcss": { - "version": "6.0.22", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.22.tgz", - "integrity": "sha1-4jt4MUkFw7kMvWFwISHnp4hI8qM=", - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.22" - }, - "dependencies": { - "postcss": { - "version": "6.0.22", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.22.tgz", - "integrity": "sha1-4jt4MUkFw7kMvWFwISHnp4hI8qM=", - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "http://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "http://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/postcss-reduce-idents/download/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "http://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/postcss-zindex/download/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "dev": true, - "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" - } - }, - "process": { - "version": "0.11.10", - "resolved": "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.3.tgz", - "integrity": "sha1-NV8mJQWmIWRrMTCnKOtkfiIFU0E=", - "dev": true, - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.6.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.2", - "resolved": "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.2.tgz", - "integrity": "sha1-RuuRByBr9zSJ+LhbadkTNMZhCZQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.5.1", - "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz", - "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "http://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/querystringify/download/querystringify-2.0.0.tgz", - "integrity": "sha1-+j7W5o6xUVlFfImze8ZHKDMZV1U=", - "dev": true - }, - "randomatic": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.0.0.tgz", - "integrity": "sha1-01SQAw6091eN4pLObfsEqRoSiSM=", - "dev": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/randombytes/download/randombytes-2.0.6.tgz", - "integrity": "sha1-0wLFIpSFiISKjTAMkytEwkIx2oA=", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "dev": true, - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.2", - "resolved": "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.4.0" - } - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/reduce-function-call/download/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - } - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz", - "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=" - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "0.5.0" - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "renderkid": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/renderkid/download/renderkid-2.0.1.tgz", - "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", - "dev": true, - "requires": { - "css-select": "1.2.0", - "dom-converter": "0.1.4", - "htmlparser2": "3.3.0", - "strip-ansi": "3.0.1", - "utila": "0.3.3" - }, - "dependencies": { - "utila": { - "version": "0.3.3", - "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", - "dev": true - } - } - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.5.tgz", - "integrity": "sha1-IYNvBgiqwXt4+ePiTa/xSlyhOj4=", - "dev": true, - "requires": { - "ajv": "6.5.0", - "ajv-keywords": "3.2.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.3", - "resolved": "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.3.tgz", - "integrity": "sha1-1ijs+eNzX4TouvupNrPPhb6kOCM=", - "dev": true, - "requires": { - "node-forge": "0.7.5" - } - }, - "semver": { - "version": "5.5.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", - "dev": true - }, - "send": { - "version": "0.16.2", - "resolved": "http://registry.npm.taobao.org/send/download/send-0.16.2.tgz", - "integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "http://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz", - "integrity": "sha1-CV6Ecv1bRiN9tQzkhqQ/S4bGzsE=", - "dev": true, - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "http://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz", - "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.2.1" - } - }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.0" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.0.tgz", - "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", - "dev": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.5.6", - "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.6.tgz", - "integrity": "sha1-RDXO5Gsaq2K46GEM5g94gJHFHBM=", - "dev": true, - "requires": { - "buffer-from": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.0.0.tgz", - "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", - "dev": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.1.0.tgz", - "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", - "dev": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.0.tgz", - "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=", - "dev": true - }, - "spdy": { - "version": "3.4.7", - "resolved": "http://registry.npm.taobao.org/spdy/download/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" - } - }, - "spdy-transport": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-2.1.0.tgz", - "integrity": "sha1-S7sVqv/tC+791WrWHb3Iuj4st6E=", - "dev": true, - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-http": { - "version": "2.8.2", - "resolved": "http://registry.npm.taobao.org/stream-http/download/stream-http-2.8.2.tgz", - "integrity": "sha1-QSboxrEHAERlkYqi/DVUnndALIc=", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } - }, - "style-loader": { - "version": "0.21.0", - "resolved": "http://registry.npm.taobao.org/style-loader/download/style-loader-0.21.0.tgz", - "integrity": "sha1-aMUuXrKvycqStidL4nfuWa6jqFI=", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.5" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.4.0.tgz", - "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", - "requires": { - "has-flag": "3.0.0" - } - }, - "svgo": { - "version": "0.7.2", - "resolved": "http://registry.npm.taobao.org/svgo/download/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - } - }, - "tapable": { - "version": "0.2.8", - "resolved": "http://registry.npm.taobao.org/tapable/download/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, "three": { "version": "0.92.0", "resolved": "http://registry.npm.taobao.org/three/download/three-0.92.0.tgz", "integrity": "sha1-jT0fWviQ5i2n9MtF0gwJ+lEFfc0=" }, - "thunky": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/thunky/download/thunky-1.0.2.tgz", - "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", - "dev": true - }, - "time-stamp": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/time-stamp/download/time-stamp-2.0.0.tgz", - "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz", - "integrity": "sha1-HSjj0qrfHVpZlsTp+VYBzQU0gK4=", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "toposort": { - "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "http://registry.npm.taobao.org/type-is/download/type-is-1.6.16.tgz", - "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.18" - } - }, "typescript": { "version": "2.8.3", "resolved": "http://registry.npm.taobao.org/typescript/download/typescript-2.8.3.tgz", "integrity": "sha1-XYF/m28xu4cYNfTt8AifIavmwXA=", "dev": true - }, - "uglify-js": { - "version": "3.3.26", - "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.3.26.tgz", - "integrity": "sha1-hYt05ecmLodsg0uQel+lfU+g1SU=", - "dev": true, - "requires": { - "commander": "2.15.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" - }, - "dependencies": { - "uglify-js": { - "version": "2.8.29", - "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } - }, - "yargs": { - "version": "3.10.0", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqid": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/uniqid/download/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "requires": { - "macaddress": "0.2.8" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/upath/download/upath-1.1.0.tgz", - "integrity": "sha1-NSVll+RqWB20eT0M5H+prr/J+r0=", - "dev": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-js": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.1.tgz", - "integrity": "sha1-RZWoClHzVhZOIpcN9kx6vWremFA=", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/url-parse/download/url-parse-1.4.0.tgz", - "integrity": "sha1-a/2q1gCYx/4G9iPkKyLeYt4NPXU=", - "dev": true, - "requires": { - "querystringify": "2.0.0", - "requires-port": "1.0.0" - } - }, - "use": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.0.tgz", - "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "object.getownpropertydescriptors": "2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.2.1.tgz", - "integrity": "sha1-EsUou51Y0LkmXZovbw/ovhf/HxQ=", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", - "dev": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/vendors/download/vendors-1.0.2.tgz", - "integrity": "sha1-f8te759WI7FWvOqJ7DfWNnbyGAE=" - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz", - "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", - "dev": true, - "requires": { - "chokidar": "2.0.3", - "graceful-fs": "4.1.11", - "neo-async": "2.5.1" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "http://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.1" - } - }, - "webpack": { - "version": "3.12.0", - "resolved": "http://registry.npm.taobao.org/webpack/download/webpack-3.12.0.tgz", - "integrity": "sha1-P540NgNwYC/PY56Xk520hvTsDXQ=", - "dev": true, - "requires": { - "acorn": "5.5.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.5.0", - "ajv-keywords": "3.2.0", - "async": "2.6.1", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.6.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" - }, - "dependencies": { - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "1.12.2", - "resolved": "http://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-1.12.2.tgz", - "integrity": "sha1-+PwRIM47T8VoDO7LQ9d3lmshEF4=", - "dev": true, - "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "2.11.2", - "resolved": "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-2.11.2.tgz", - "integrity": "sha1-H09MeL8YlTePN2gVkQgS2veaIW8=", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.0.3", - "compression": "1.7.2", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "1.0.0", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.1", - "opn": "5.3.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.3", - "serve-index": "1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.4.0", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "1.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "requires": { - "camelcase": "3.0.0" - } - } - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.1.0.tgz", - "integrity": "sha1-oQHrrlnWUHNU1x2AE5UKOot6WlQ=", - "dev": true, - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", - "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=", - "dev": true - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "http://registry.npm.taobao.org/whet.extend/download/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" - }, - "which": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "8.0.2", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - } - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } } } }