Commit 1025e06e authored by Jake Read's avatar Jake Read
Browse files

add ptr to atkapi

parent de018de8
......@@ -2,17 +2,21 @@
AutomataKit is a collection of open hardware and software developed to as a rapidly reconfigurable library for various machine-building, process development, and robotics projects.
Typically, designing and engineering complex systems requires knowledge across the disciplines of electrical engineering, embedded programming, mechanical design, controls engineering, and interface design. By breaking these components into reconfigurable [software and hardware objects](!/nadya-phd), AutomataKit aims to allow non-experts (and experts) to jump in to higher-level systems design.
It uses a Distributed Dataflow Programming paradigm: hardware and software objects are all nodes in a graph, executing computing and physical tasks.
!DOC - threeset: hardware objects, network topology, software
[ATKAPI](https://gitlab.cba.mit.edu/jakeread/reich) serves a development environment for those graphs.
![atkapi](images/atkapi.png)
![atkapi](images/machine-with-atkapi.jpg)
# Examples
- [Mother Mother: a Machine Generalist](https://gitlab.cba.mit.edu/jakeread/reich)
- [*A Machine* for playing *Music for Pieces of Wood* by Steve Reich by Jake Read](https://gitlab.cba.mit.edu/jakeread/reich)
- [Modular, Networked Stepper Motor Control](https://gitlab.cba.mit.edu/jakeread/netsteppers)
- [MPVMachine](https://gitlab.cba.mit.edu/jakeread/mpvmachine)
- [SmallGantries](https://gitlab.cba.mit.edu/jakeread/smallgantries)
- [ClayStacker](https://gitlab.cba.mit.edu/jakeread/claystack)
- [MPVMachine](https://gitlab.cba.mit.edu/jakeread/mpvmachine)
- [SmallGantries](https://gitlab.cba.mit.edu/jakeread/smallgantries)
- [ClayStacker](https://gitlab.cba.mit.edu/jakeread/claystack)
## The Network
......@@ -93,7 +97,11 @@ For example, to write a Step Trapezoid command, I would write ``packet 0,1,ptr,e
## Next ATK Notes
- final rev change rj12 conn ? change on mkbbb ...
## ATK C API
- pin_init doesn't need PINx_bm field, just use the number, ferchrissake
- DMA, lights ? speed test ?
# Reproducing and Extending Automatakit Work
......
......@@ -20,9 +20,10 @@ var ByteLengthParser = SerialPort.parsers.ByteLength;
var port = new SerialPort(process.argv[2], {
baudRate: 750000,
dataBits: 8,
/* dataBits: 8,
parity: 'none',
flowControl: false,
*/
});
//----------------------------------------- readline
......@@ -99,7 +100,7 @@ function parseLineIn(data) {
u++
break
case 'trapezoid':
case 'block':
packet[u] = 131;
// a linked acceleration planned segment
// we'll be going betwee float-space for steps in the higher levels, so
......@@ -206,7 +207,7 @@ function logAdvice() {
console.log('route,ptr,end,command,args')
console.log('test: sends byte 128 to network test')
console.log('steps: {steps uint32_t, speed steps/s float, dir uint8_t}')
console.log('block: {steps float (also dir), cruise speed steps/s float, accelleration steps/s/s float, start speed float, end speed float')
console.log('block: steps, entry, accel, accelLength, deccelLength')
}
//----------------------------------------- parsing
......
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"@serialport/parser-byte-length": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-1.0.5.tgz",
"integrity": "sha1-PqhNR8slkWX55JEfu8uYpGVQ3Q4=",
"requires": {
"safe-buffer": "5.1.2"
}
},
"@serialport/parser-cctalk": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-1.0.5.tgz",
"integrity": "sha1-5IklTRprKfs1GHNm5UDGhiTzOrA=",
"requires": {
"safe-buffer": "5.1.2"
}
},
"@serialport/parser-delimiter": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-1.0.5.tgz",
"integrity": "sha1-TLQog972Y/v6tVdEVUce0HIfWwo=",
"requires": {
"safe-buffer": "5.1.2"
}
},
"@serialport/parser-readline": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-1.0.5.tgz",
"integrity": "sha1-cFNW0aFsaobyo5d4WFMFzxU9C44=",
"requires": {
"@serialport/parser-delimiter": "1.0.5",
"safe-buffer": "5.1.2"
}
},
"@serialport/parser-ready": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-1.0.5.tgz",
"integrity": "sha1-iSFFWvq0fqcJirx6SnBwLHymR6o=",
"requires": {
"safe-buffer": "5.1.2"
}
},
"@serialport/parser-regex": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-1.0.5.tgz",
"integrity": "sha1-ky+DY0OrSNckkF5f+J+PPcKOZRY=",
"requires": {
"safe-buffer": "5.1.2"
}
},
"ansi-bgblack": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgblack/-/ansi-bgblack-0.1.1.tgz",
"integrity": "sha1-poulAHiHcBtqr74/oNrf36juPKI=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bgblue": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgblue/-/ansi-bgblue-0.1.1.tgz",
"integrity": "sha1-Z73ATtybm1J4lp2hlt6j11yMNhM=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bgcyan": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgcyan/-/ansi-bgcyan-0.1.1.tgz",
"integrity": "sha1-WEiUJWAL3p9VBwaN2Wnr/bUP52g=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bggreen": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bggreen/-/ansi-bggreen-0.1.1.tgz",
"integrity": "sha1-TjGRJIUplD9DIelr8THRwTgWr0k=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bgmagenta": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgmagenta/-/ansi-bgmagenta-0.1.1.tgz",
"integrity": "sha1-myhDLAduqpmUGGcqPvvhk5HCx6E=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bgred": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgred/-/ansi-bgred-0.1.1.tgz",
"integrity": "sha1-p2+Sg4OCukMpCmwXeEJPmE1vEEE=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bgwhite": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgwhite/-/ansi-bgwhite-0.1.1.tgz",
"integrity": "sha1-ZQRlE3elim7OzQMxmU5IAljhG6g=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bgyellow": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bgyellow/-/ansi-bgyellow-0.1.1.tgz",
"integrity": "sha1-w/4usIzUdmSAKeaHTRWgs49h1E8=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-black": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-black/-/ansi-black-0.1.1.tgz",
"integrity": "sha1-9hheiJNgslRaHsUMC/Bj/EMDJFM=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-blue": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-blue/-/ansi-blue-0.1.1.tgz",
"integrity": "sha1-FbgEmQ6S/JyoxUds6PaZd3wh7b8=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-bold": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-bold/-/ansi-bold-0.1.1.tgz",
"integrity": "sha1-PmOVCvWswq4uZw5vZ96xFdGl9QU=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-colors": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-0.2.0.tgz",
"integrity": "sha1-csMd4qDZoszQysMMyYI+6y9kNLU=",
"requires": {
"ansi-bgblack": "0.1.1",
"ansi-bgblue": "0.1.1",
"ansi-bgcyan": "0.1.1",
"ansi-bggreen": "0.1.1",
"ansi-bgmagenta": "0.1.1",
"ansi-bgred": "0.1.1",
"ansi-bgwhite": "0.1.1",
"ansi-bgyellow": "0.1.1",
"ansi-black": "0.1.1",
"ansi-blue": "0.1.1",
"ansi-bold": "0.1.1",
"ansi-cyan": "0.1.1",
"ansi-dim": "0.1.1",
"ansi-gray": "0.1.1",
"ansi-green": "0.1.1",
"ansi-grey": "0.1.1",
"ansi-hidden": "0.1.1",
"ansi-inverse": "0.1.1",
"ansi-italic": "0.1.1",
"ansi-magenta": "0.1.1",
"ansi-red": "0.1.1",
"ansi-reset": "0.1.1",
"ansi-strikethrough": "0.1.1",
"ansi-underline": "0.1.1",
"ansi-white": "0.1.1",
"ansi-yellow": "0.1.1",
"lazy-cache": "2.0.2"
}
},
"ansi-cyan": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
"integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-dim": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-dim/-/ansi-dim-0.1.1.tgz",
"integrity": "sha1-QN5MYDqoCG2Oeoa4/5mNXDbu/Ww=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-gray": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
"integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-green": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz",
"integrity": "sha1-il2al55FjVfEDjNYCzc5C44Q0Pc=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-grey": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-grey/-/ansi-grey-0.1.1.tgz",
"integrity": "sha1-WdmLasK6GfilF5jphT+6eDOaM8E=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-hidden": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-hidden/-/ansi-hidden-0.1.1.tgz",
"integrity": "sha1-7WpMSY0rt8uyidvyqNHcyFZ/rg8=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-inverse": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-inverse/-/ansi-inverse-0.1.1.tgz",
"integrity": "sha1-tq9Fgm/oJr+1KKbHmIV5Q1XM0mk=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-italic": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-italic/-/ansi-italic-0.1.1.tgz",
"integrity": "sha1-EEdDRj9iXBQqA2c5z4XtpoiYbyM=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-magenta": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-magenta/-/ansi-magenta-0.1.1.tgz",
"integrity": "sha1-BjtboW+z8j4c/aKwfAqJ3hHkMK4=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-red": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
"integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-reset": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-reset/-/ansi-reset-0.1.1.tgz",
"integrity": "sha1-5+cSksPH3c1NYu9KbHwFmAkRw7c=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-strikethrough": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-strikethrough/-/ansi-strikethrough-0.1.1.tgz",
"integrity": "sha1-2Eh3FAss/wfRyT685pkE9oiF5Wg=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-underline": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-underline/-/ansi-underline-0.1.1.tgz",
"integrity": "sha1-38kg9Ml7WXfqFi34/7mIMIqqcaQ=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-white": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-white/-/ansi-white-0.1.1.tgz",
"integrity": "sha1-nHe3wZPF7pkuYBHTbsTJIbRXiUQ=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"ansi-wrap": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
"integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
},
"ansi-yellow": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-yellow/-/ansi-yellow-0.1.1.tgz",
"integrity": "sha1-y5NW8vRscy8OMZnmEClVp32oPB0=",
"requires": {
"ansi-wrap": "0.1.0"
}
},
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo="
},
"are-we-there-yet": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
"integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
"requires": {
"delegates": "1.0.0",
"readable-stream": "2.3.6"
}
},
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
},
"arr-swap": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arr-swap/-/arr-swap-1.0.1.tgz",
"integrity": "sha1-FHWQ7WX8gVvAf+8Jl8Llgj1kNTQ=",
"requires": {
"is-number": "3.0.0"
},
"dependencies": {
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"requires": {
"kind-of": "3.2.2"
}
}
}
},
"bindings": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
"integrity": "sha1-s0b27PapX1qBXFg5/HzbIlAvHtc="
},
"bl": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
"integrity": "sha1-oWCRFxcQPAdBDO9j71Gzl8Alr5w=",
"requires": {
"readable-stream": "2.3.6",
"safe-buffer": "5.1.2"
}
},
"buffer-alloc": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
"integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=",
"requires": {
"buffer-alloc-unsafe": "1.1.0",
"buffer-fill": "1.0.0"
}
},
"buffer-alloc-unsafe": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
"integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA="
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
},
"choices-separator": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/choices-separator/-/choices-separator-2.0.0.tgz",
"integrity": "sha1-kv0XYxgteQM/XFxR0Lo1LlVnxpY=",
"requires": {
"ansi-dim": "0.1.1",
"debug": "2.6.9",
"strip-color": "0.1.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
"requires": {
"ms": "2.0.0"
}
}
}
},
"chownr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
},
"clone-deep": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-1.0.0.tgz",
"integrity": "sha1-svNUREtdSgzlj6yjN+802isUpsc=",
"requires": {
"for-own": "1.0.0",
"is-plain-object": "2.0.4",
"kind-of": "5.1.0",
"shallow-clone": "1.0.0"
},
"dependencies": {
"kind-of": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
"integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="
}
}
},
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"collection-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"requires": {
"map-visit": "1.0.0",
"object-visit": "1.0.1"
}
},
"commander": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
"integrity": "sha1-8WOQWTmWzrTz7rAgsx14Uo9/ilA="
},
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
"console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
},
"decompress-response": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
"requires": {
"mimic-response": "1.0.1"
}
},
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw="
},
"define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
"is-descriptor": "1.0.2"
}
},
"delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
"integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=",
"requires": {
"once": "1.4.0"
}
},
"error-symbol": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/error-symbol/-/error-symbol-0.1.0.tgz",
"integrity": "sha1-Ck2uN9YA0VopukU9jvkg8YRDM/Y="
},
"expand-template": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz",
"integrity": "sha1-mB8YjAw6h9Lij1WbxUFCb/lPId0="
},
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
"is-extendable": "0.1.1"
}
},
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
},
"for-own": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
"integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
"requires": {
"for-in": "1.0.2"
}
},
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0="
},
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
"aproba": "1.2.0",