aboutsummaryrefslogtreecommitdiffstats
path: root/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/dgeflows/node_modules/express/node_modules/on-finished')
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/HISTORY.md76
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/LICENSE23
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/README.md109
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/index.js191
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE22
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md80
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js68
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json64
-rw-r--r--dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/package.json71
9 files changed, 0 insertions, 704 deletions
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/HISTORY.md b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/HISTORY.md
deleted file mode 100644
index 5d1e1c94..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/HISTORY.md
+++ /dev/null
@@ -1,76 +0,0 @@
-2.2.0 / 2014-12-22
-==================
-
- * Add message object to callback arguments
-
-2.1.1 / 2014-10-22
-==================
-
- * Fix handling of pipelined requests
-
-2.1.0 / 2014-08-16
-==================
-
- * Check if `socket` is detached
- * Return `undefined` for `isFinished` if state unknown
-
-2.0.0 / 2014-08-16
-==================
-
- * Add `isFinished` function
- * Move to `jshttp` organization
- * Remove support for plain socket argument
- * Rename to `on-finished`
- * Support both `req` and `res` as arguments
- * deps: ee-first@1.0.5
-
-1.2.2 / 2014-06-10
-==================
-
- * Reduce listeners added to emitters
- - avoids "event emitter leak" warnings when used multiple times on same request
-
-1.2.1 / 2014-06-08
-==================
-
- * Fix returned value when already finished
-
-1.2.0 / 2014-06-05
-==================
-
- * Call callback when called on already-finished socket
-
-1.1.4 / 2014-05-27
-==================
-
- * Support node.js 0.8
-
-1.1.3 / 2014-04-30
-==================
-
- * Make sure errors passed as instanceof `Error`
-
-1.1.2 / 2014-04-18
-==================
-
- * Default the `socket` to passed-in object
-
-1.1.1 / 2014-01-16
-==================
-
- * Rename module to `finished`
-
-1.1.0 / 2013-12-25
-==================
-
- * Call callback when called on already-errored socket
-
-1.0.1 / 2013-12-20
-==================
-
- * Actually pass the error to the callback
-
-1.0.0 / 2013-12-20
-==================
-
- * Initial release
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/LICENSE b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/LICENSE
deleted file mode 100644
index 5931fd23..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2013 Jonathan Ong <me@jongleberry.com>
-Copyright (c) 2014 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/README.md b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/README.md
deleted file mode 100644
index 29d69918..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/README.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# on-finished
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Execute a callback when a request closes, finishes, or errors.
-
-## Install
-
-```sh
-$ npm install on-finished
-```
-
-## API
-
-```js
-var onFinished = require('on-finished')
-```
-
-### onFinished(res, listener)
-
-Attach a listener to listen for the response to finish. The listener will
-be invoked only once when the response finished. If the response finished
-to to an error, the first argument will contain the error. If the response
-has already finished, the listener will be invoked.
-
-Listening to the end of a response would be used to close things associated
-with the response, like open files.
-
-Listener is invoked as `listener(err, res)`.
-
-```js
-onFinished(res, function (err, res) {
- // clean up open fds, etc.
- // err contains the error is request error'd
-})
-```
-
-### onFinished(req, listener)
-
-Attach a listener to listen for the request to finish. The listener will
-be invoked only once when the request finished. If the request finished
-to to an error, the first argument will contain the error. If the request
-has already finished, the listener will be invoked.
-
-Listening to the end of a request would be used to know when to continue
-after reading the data.
-
-Listener is invoked as `listener(err, req)`.
-
-```js
-var data = ''
-
-req.setEncoding('utf8')
-res.on('data', function (str) {
- data += str
-})
-
-onFinished(req, function (err, req) {
- // data is read unless there is err
-})
-```
-
-### onFinished.isFinished(res)
-
-Determine if `res` is already finished. This would be useful to check and
-not even start certain operations if the response has already finished.
-
-### onFinished.isFinished(req)
-
-Determine if `req` is already finished. This would be useful to check and
-not even start certain operations if the request has already finished.
-
-### Example
-
-The following code ensures that file descriptors are always closed
-once the response finishes.
-
-```js
-var destroy = require('destroy')
-var http = require('http')
-var onFinished = require('on-finished')
-
-http.createServer(function onRequest(req, res) {
- var stream = fs.createReadStream('package.json')
- stream.pipe(res)
- onFinished(res, function (err) {
- destroy(stream)
- })
-})
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/on-finished.svg?style=flat
-[npm-url]: https://npmjs.org/package/on-finished
-[node-version-image]: https://img.shields.io/node/v/on-finished.svg?style=flat
-[node-version-url]: http://nodejs.org/download/
-[travis-image]: https://img.shields.io/travis/jshttp/on-finished.svg?style=flat
-[travis-url]: https://travis-ci.org/jshttp/on-finished
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished.svg?style=flat
-[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg?style=flat
-[downloads-url]: https://npmjs.org/package/on-finished
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/index.js b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/index.js
deleted file mode 100644
index f68161c9..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/index.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/*!
- * on-finished
- * Copyright(c) 2013 Jonathan Ong
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-/**
- * Module exports.
- */
-
-module.exports = onFinished;
-module.exports.isFinished = isFinished;
-
-/**
-* Module dependencies.
-*/
-
-var first = require('ee-first')
-
-/**
-* Variables.
-*/
-
-/* istanbul ignore next */
-var defer = typeof setImmediate === 'function'
- ? setImmediate
- : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }
-
-/**
- * Invoke callback when the response has finished, useful for
- * cleaning up resources afterwards.
- *
- * @param {object} msg
- * @param {function} listener
- * @return {object}
- * @api public
- */
-
-function onFinished(msg, listener) {
- if (isFinished(msg) !== false) {
- defer(listener, null, msg)
- return msg
- }
-
- // attach the listener to the message
- attachListener(msg, listener)
-
- return msg
-}
-
-/**
- * Determine if message is already finished.
- *
- * @param {object} msg
- * @return {boolean}
- * @api public
- */
-
-function isFinished(msg) {
- var socket = msg.socket
-
- if (typeof msg.finished === 'boolean') {
- // OutgoingMessage
- return Boolean(msg.finished || (socket && !socket.writable))
- }
-
- if (typeof msg.complete === 'boolean') {
- // IncomingMessage
- return Boolean(!socket || msg.complete || !socket.readable)
- }
-
- // don't know
- return undefined
-}
-
-/**
- * Attach a finished listener to the message.
- *
- * @param {object} msg
- * @param {function} callback
- * @private
- */
-
-function attachFinishedListener(msg, callback) {
- var eeMsg
- var eeSocket
- var finished = false
-
- function onFinish(error) {
- eeMsg.cancel()
- eeSocket.cancel()
-
- finished = true
- callback(error)
- }
-
- // finished on first message event
- eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish)
-
- function onSocket(socket) {
- // remove listener
- msg.removeListener('socket', onSocket)
-
- if (finished) return
- if (eeMsg !== eeSocket) return
-
- // finished on first socket event
- eeSocket = first([[socket, 'error', 'close']], onFinish)
- }
-
- if (msg.socket) {
- // socket already assigned
- onSocket(msg.socket)
- return
- }
-
- // wait for socket to be assigned
- msg.on('socket', onSocket)
-
- if (msg.socket === undefined) {
- // node.js 0.8 patch
- patchAssignSocket(msg, onSocket)
- }
-}
-
-/**
- * Attach the listener to the message.
- *
- * @param {object} msg
- * @return {function}
- * @api private
- */
-
-function attachListener(msg, listener) {
- var attached = msg.__onFinished
-
- // create a private single listener with queue
- if (!attached || !attached.queue) {
- attached = msg.__onFinished = createListener(msg)
- attachFinishedListener(msg, attached)
- }
-
- attached.queue.push(listener)
-}
-
-/**
- * Create listener on message.
- *
- * @param {object} msg
- * @return {function}
- * @api private
- */
-
-function createListener(msg) {
- function listener(err) {
- if (msg.__onFinished === listener) msg.__onFinished = null
- if (!listener.queue) return
-
- var queue = listener.queue
- listener.queue = null
-
- for (var i = 0; i < queue.length; i++) {
- queue[i](err, msg)
- }
- }
-
- listener.queue = []
-
- return listener
-}
-
-/**
- * Patch ServerResponse.prototype.assignSocket for node.js 0.8.
- *
- * @param {ServerResponse} res
- * @param {function} callback
- * @private
- */
-
-function patchAssignSocket(res, callback) {
- var assignSocket = res.assignSocket
-
- if (typeof assignSocket !== 'function') return
-
- // res.on('socket', callback) is broken in 0.8
- res.assignSocket = function _assignSocket(socket) {
- assignSocket.call(this, socket)
- callback(socket)
- }
-}
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE
deleted file mode 100644
index c1b15a1d..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jonathan Ong me@jongleberry.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md
deleted file mode 100644
index bb16aabe..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# EE First
-
-[![NPM version][npm-image]][npm-url]
-[![Build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-[![Gittip][gittip-image]][gittip-url]
-
-Get the first event in a set of event emitters and event pairs,
-then clean up after itself.
-
-## Install
-
-```sh
-$ npm install ee-first
-```
-
-## API
-
-```js
-var first = require('ee-first')
-```
-
-### first(arr, listener)
-
-Invoke `listener` on the first event from the list specified in `arr`. `arr` is
-an array of arrays, with each array in the format `[ee, ...event]`. `listener`
-will be called only once, the first time any of the given events are emitted. If
-`error` is one of the listened events, then if that fires first, the `listener`
-will be given the `err` argument.
-
-The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the
-first argument emitted from an `error` event, if applicable; `ee` is the event
-emitter that fired; `event` is the string event name that fired; and `args` is an
-array of the arguments that were emitted on the event.
-
-```js
-var ee1 = new EventEmitter()
-var ee2 = new EventEmitter()
-
-first([
- [ee1, 'close', 'end', 'error'],
- [ee2, 'error']
-], function (err, ee, event, args) {
- // listener invoked
-})
-```
-
-#### .cancel()
-
-The group of listeners can be cancelled before being invoked and have all the event
-listeners removed from the underlying event emitters.
-
-```js
-var thunk = first([
- [ee1, 'close', 'end', 'error'],
- [ee2, 'error']
-], function (err, ee, event, args) {
- // listener invoked
-})
-
-// cancel and clean up
-thunk.cancel()
-```
-
-[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square
-[npm-url]: https://npmjs.org/package/ee-first
-[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square
-[github-url]: https://github.com/jonathanong/ee-first/tags
-[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square
-[travis-url]: https://travis-ci.org/jonathanong/ee-first
-[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square
-[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master
-[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square
-[license-url]: LICENSE.md
-[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square
-[downloads-url]: https://npmjs.org/package/ee-first
-[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square
-[gittip-url]: https://www.gittip.com/jonathanong/
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js
deleted file mode 100644
index 1d662039..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-
-module.exports = function first(stuff, done) {
- if (!Array.isArray(stuff))
- throw new TypeError('arg must be an array of [ee, events...] arrays')
-
- var cleanups = []
-
- for (var i = 0; i < stuff.length; i++) {
- var arr = stuff[i]
-
- if (!Array.isArray(arr) || arr.length < 2)
- throw new TypeError('each array member must be [ee, events...]')
-
- var ee = arr[0]
-
- for (var j = 1; j < arr.length; j++) {
- var event = arr[j]
- var fn = listener(event, callback)
-
- // listen to the event
- ee.on(event, fn)
- // push this listener to the list of cleanups
- cleanups.push({
- ee: ee,
- event: event,
- fn: fn,
- })
- }
- }
-
- function callback() {
- cleanup()
- done.apply(null, arguments)
- }
-
- function cleanup() {
- var x
- for (var i = 0; i < cleanups.length; i++) {
- x = cleanups[i]
- x.ee.removeListener(x.event, x.fn)
- }
- }
-
- function thunk(fn) {
- done = fn
- }
-
- thunk.cancel = cleanup
-
- return thunk
-}
-
-function listener(event, done) {
- return function onevent(arg1) {
- var args = new Array(arguments.length)
- var ee = this
- var err = event === 'error'
- ? arg1
- : null
-
- // copy args to prevent arguments escaping scope
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i]
- }
-
- done(err, ee, event, args)
- }
-}
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json
deleted file mode 100644
index 5b39931e..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/node_modules/ee-first/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "name": "ee-first",
- "description": "return the first event in a set of ee/event pairs",
- "version": "1.1.0",
- "author": {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- },
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- }
- ],
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "https://github.com/jonathanong/ee-first"
- },
- "devDependencies": {
- "istanbul": "0.3.2",
- "mocha": "1"
- },
- "files": [
- "index.js",
- "LICENSE"
- ],
- "scripts": {
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- },
- "gitHead": "a6412004da4745941af2fc98ec30c8da570da7ea",
- "bugs": {
- "url": "https://github.com/jonathanong/ee-first/issues"
- },
- "homepage": "https://github.com/jonathanong/ee-first",
- "_id": "ee-first@1.1.0",
- "_shasum": "6a0d7c6221e490feefd92ec3f441c9ce8cd097f4",
- "_from": "ee-first@1.1.0",
- "_npmVersion": "1.4.21",
- "_npmUser": {
- "name": "dougwilson",
- "email": "doug@somethingdoug.com"
- },
- "maintainers": [
- {
- "name": "jongleberry",
- "email": "jonathanrichardong@gmail.com"
- },
- {
- "name": "dougwilson",
- "email": "doug@somethingdoug.com"
- }
- ],
- "dist": {
- "shasum": "6a0d7c6221e490feefd92ec3f441c9ce8cd097f4",
- "tarball": "http://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/package.json b/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/package.json
deleted file mode 100644
index 426e3ff2..00000000
--- a/dgbuilder/dgeflows/node_modules/express/node_modules/on-finished/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "on-finished",
- "description": "Execute a callback when a request closes, finishes, or errors",
- "version": "2.2.0",
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- }
- ],
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "https://github.com/jshttp/on-finished"
- },
- "dependencies": {
- "ee-first": "1.1.0"
- },
- "devDependencies": {
- "istanbul": "0.3.5",
- "mocha": "~2.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- },
- "gitHead": "fcd56f5674721cac92a16eff93547929716f5192",
- "bugs": {
- "url": "https://github.com/jshttp/on-finished/issues"
- },
- "homepage": "https://github.com/jshttp/on-finished",
- "_id": "on-finished@2.2.0",
- "_shasum": "e6ba6a09a3482d6b7969bc3da92c86f0a967605e",
- "_from": "on-finished@~2.2.0",
- "_npmVersion": "1.4.28",
- "_npmUser": {
- "name": "dougwilson",
- "email": "doug@somethingdoug.com"
- },
- "maintainers": [
- {
- "name": "dougwilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "jongleberry",
- "email": "jonathanrichardong@gmail.com"
- }
- ],
- "dist": {
- "shasum": "e6ba6a09a3482d6b7969bc3da92c86f0a967605e",
- "tarball": "http://registry.npmjs.org/on-finished/-/on-finished-2.2.0.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.2.0.tgz",
- "readme": "ERROR: No README data found!"
-}