postdoc 0.2.0.beta4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/postdoc/postdoc_view_helper.rb +15 -0
- data/lib/postdoc.rb +34 -14
- metadata +20 -373
- data/lib/pdf.js +0 -27
- data/node_modules/agent-base/History.md +0 -113
- data/node_modules/agent-base/README.md +0 -145
- data/node_modules/agent-base/index.js +0 -160
- data/node_modules/agent-base/package.json +0 -35
- data/node_modules/agent-base/patch-core.js +0 -37
- data/node_modules/agent-base/test/ssl-cert-snakeoil.key +0 -15
- data/node_modules/agent-base/test/ssl-cert-snakeoil.pem +0 -12
- data/node_modules/agent-base/test/test.js +0 -673
- data/node_modules/async-limiter/LICENSE +0 -8
- data/node_modules/async-limiter/coverage/coverage.json +0 -1
- data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html +0 -73
- data/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html +0 -246
- data/node_modules/async-limiter/coverage/lcov-report/base.css +0 -182
- data/node_modules/async-limiter/coverage/lcov-report/index.html +0 -73
- data/node_modules/async-limiter/coverage/lcov-report/prettify.css +0 -1
- data/node_modules/async-limiter/coverage/lcov-report/prettify.js +0 -1
- data/node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- data/node_modules/async-limiter/coverage/lcov-report/sorter.js +0 -156
- data/node_modules/async-limiter/coverage/lcov.info +0 -74
- data/node_modules/async-limiter/index.js +0 -67
- data/node_modules/async-limiter/package.json +0 -35
- data/node_modules/async-limiter/readme.md +0 -132
- data/node_modules/balanced-match/LICENSE.md +0 -21
- data/node_modules/balanced-match/README.md +0 -91
- data/node_modules/balanced-match/index.js +0 -59
- data/node_modules/balanced-match/package.json +0 -49
- data/node_modules/brace-expansion/LICENSE +0 -21
- data/node_modules/brace-expansion/README.md +0 -129
- data/node_modules/brace-expansion/index.js +0 -201
- data/node_modules/brace-expansion/package.json +0 -47
- data/node_modules/buffer-from/index.js +0 -69
- data/node_modules/buffer-from/package.json +0 -16
- data/node_modules/buffer-from/readme.md +0 -69
- data/node_modules/buffer-from/test.js +0 -12
- data/node_modules/concat-map/LICENSE +0 -18
- data/node_modules/concat-map/README.markdown +0 -62
- data/node_modules/concat-map/example/map.js +0 -6
- data/node_modules/concat-map/index.js +0 -13
- data/node_modules/concat-map/package.json +0 -43
- data/node_modules/concat-map/test/map.js +0 -39
- data/node_modules/concat-stream/LICENSE +0 -24
- data/node_modules/concat-stream/index.js +0 -144
- data/node_modules/concat-stream/package.json +0 -55
- data/node_modules/concat-stream/readme.md +0 -102
- data/node_modules/core-util-is/LICENSE +0 -19
- data/node_modules/core-util-is/README.md +0 -3
- data/node_modules/core-util-is/float.patch +0 -604
- data/node_modules/core-util-is/lib/util.js +0 -107
- data/node_modules/core-util-is/package.json +0 -32
- data/node_modules/core-util-is/test.js +0 -68
- data/node_modules/debug/CHANGELOG.md +0 -395
- data/node_modules/debug/LICENSE +0 -19
- data/node_modules/debug/Makefile +0 -58
- data/node_modules/debug/README.md +0 -368
- data/node_modules/debug/karma.conf.js +0 -70
- data/node_modules/debug/node.js +0 -1
- data/node_modules/debug/package.json +0 -43
- data/node_modules/debug/src/browser.js +0 -195
- data/node_modules/debug/src/debug.js +0 -225
- data/node_modules/debug/src/index.js +0 -10
- data/node_modules/debug/src/node.js +0 -186
- data/node_modules/es6-promise/CHANGELOG.md +0 -151
- data/node_modules/es6-promise/LICENSE +0 -19
- data/node_modules/es6-promise/README.md +0 -97
- data/node_modules/es6-promise/auto.js +0 -4
- data/node_modules/es6-promise/dist/es6-promise.auto.js +0 -1181
- data/node_modules/es6-promise/dist/es6-promise.auto.map +0 -1
- data/node_modules/es6-promise/dist/es6-promise.auto.min.js +0 -1
- data/node_modules/es6-promise/dist/es6-promise.auto.min.map +0 -1
- data/node_modules/es6-promise/dist/es6-promise.js +0 -1179
- data/node_modules/es6-promise/dist/es6-promise.map +0 -1
- data/node_modules/es6-promise/dist/es6-promise.min.js +0 -1
- data/node_modules/es6-promise/dist/es6-promise.min.map +0 -1
- data/node_modules/es6-promise/es6-promise.d.ts +0 -81
- data/node_modules/es6-promise/lib/es6-promise/-internal.js +0 -266
- data/node_modules/es6-promise/lib/es6-promise/asap.js +0 -119
- data/node_modules/es6-promise/lib/es6-promise/enumerator.js +0 -113
- data/node_modules/es6-promise/lib/es6-promise/polyfill.js +0 -35
- data/node_modules/es6-promise/lib/es6-promise/promise/all.js +0 -52
- data/node_modules/es6-promise/lib/es6-promise/promise/race.js +0 -84
- data/node_modules/es6-promise/lib/es6-promise/promise/reject.js +0 -46
- data/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +0 -48
- data/node_modules/es6-promise/lib/es6-promise/promise.js +0 -427
- data/node_modules/es6-promise/lib/es6-promise/then.js +0 -32
- data/node_modules/es6-promise/lib/es6-promise/utils.js +0 -21
- data/node_modules/es6-promise/lib/es6-promise.auto.js +0 -3
- data/node_modules/es6-promise/lib/es6-promise.js +0 -7
- data/node_modules/es6-promise/package.json +0 -75
- data/node_modules/es6-promisify/README.md +0 -89
- data/node_modules/es6-promisify/dist/promise.js +0 -73
- data/node_modules/es6-promisify/dist/promisify.js +0 -85
- data/node_modules/es6-promisify/package.json +0 -41
- data/node_modules/extract-zip/CONTRIBUTING.md +0 -1
- data/node_modules/extract-zip/LICENSE +0 -23
- data/node_modules/extract-zip/cli.js +0 -20
- data/node_modules/extract-zip/index.js +0 -205
- data/node_modules/extract-zip/node_modules/debug/CHANGELOG.md +0 -362
- data/node_modules/extract-zip/node_modules/debug/LICENSE +0 -19
- data/node_modules/extract-zip/node_modules/debug/Makefile +0 -50
- data/node_modules/extract-zip/node_modules/debug/README.md +0 -312
- data/node_modules/extract-zip/node_modules/debug/component.json +0 -19
- data/node_modules/extract-zip/node_modules/debug/karma.conf.js +0 -70
- data/node_modules/extract-zip/node_modules/debug/node.js +0 -1
- data/node_modules/extract-zip/node_modules/debug/package.json +0 -49
- data/node_modules/extract-zip/node_modules/debug/src/browser.js +0 -185
- data/node_modules/extract-zip/node_modules/debug/src/debug.js +0 -202
- data/node_modules/extract-zip/node_modules/debug/src/index.js +0 -10
- data/node_modules/extract-zip/node_modules/debug/src/inspector-log.js +0 -15
- data/node_modules/extract-zip/node_modules/debug/src/node.js +0 -248
- data/node_modules/extract-zip/package.json +0 -35
- data/node_modules/extract-zip/readme.md +0 -49
- data/node_modules/fd-slicer/CHANGELOG.md +0 -49
- data/node_modules/fd-slicer/LICENSE +0 -21
- data/node_modules/fd-slicer/README.md +0 -189
- data/node_modules/fd-slicer/index.js +0 -277
- data/node_modules/fd-slicer/package.json +0 -36
- data/node_modules/fd-slicer/test/test.js +0 -350
- data/node_modules/fs.realpath/LICENSE +0 -43
- data/node_modules/fs.realpath/README.md +0 -33
- data/node_modules/fs.realpath/index.js +0 -66
- data/node_modules/fs.realpath/old.js +0 -303
- data/node_modules/fs.realpath/package.json +0 -26
- data/node_modules/glob/LICENSE +0 -15
- data/node_modules/glob/README.md +0 -368
- data/node_modules/glob/changelog.md +0 -67
- data/node_modules/glob/common.js +0 -240
- data/node_modules/glob/glob.js +0 -790
- data/node_modules/glob/package.json +0 -43
- data/node_modules/glob/sync.js +0 -486
- data/node_modules/https-proxy-agent/History.md +0 -124
- data/node_modules/https-proxy-agent/README.md +0 -137
- data/node_modules/https-proxy-agent/index.js +0 -229
- data/node_modules/https-proxy-agent/package.json +0 -35
- data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key +0 -15
- data/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem +0 -12
- data/node_modules/https-proxy-agent/test/test.js +0 -342
- data/node_modules/inflight/LICENSE +0 -15
- data/node_modules/inflight/README.md +0 -37
- data/node_modules/inflight/inflight.js +0 -54
- data/node_modules/inflight/package.json +0 -29
- data/node_modules/inherits/LICENSE +0 -16
- data/node_modules/inherits/README.md +0 -42
- data/node_modules/inherits/inherits.js +0 -7
- data/node_modules/inherits/inherits_browser.js +0 -23
- data/node_modules/inherits/package.json +0 -29
- data/node_modules/isarray/Makefile +0 -6
- data/node_modules/isarray/README.md +0 -60
- data/node_modules/isarray/component.json +0 -19
- data/node_modules/isarray/index.js +0 -5
- data/node_modules/isarray/package.json +0 -45
- data/node_modules/isarray/test.js +0 -20
- data/node_modules/mime/CHANGELOG.md +0 -225
- data/node_modules/mime/CONTRIBUTING.md +0 -5
- data/node_modules/mime/LICENSE +0 -21
- data/node_modules/mime/Mime.js +0 -89
- data/node_modules/mime/README.md +0 -188
- data/node_modules/mime/cli.js +0 -10
- data/node_modules/mime/index.js +0 -4
- data/node_modules/mime/lite.js +0 -4
- data/node_modules/mime/package.json +0 -43
- data/node_modules/mime/src/README_js.md +0 -179
- data/node_modules/mime/src/build.js +0 -71
- data/node_modules/mime/src/test.js +0 -257
- data/node_modules/mime/types/other.json +0 -1
- data/node_modules/mime/types/standard.json +0 -1
- data/node_modules/minimatch/LICENSE +0 -15
- data/node_modules/minimatch/README.md +0 -209
- data/node_modules/minimatch/minimatch.js +0 -923
- data/node_modules/minimatch/package.json +0 -30
- data/node_modules/minimist/LICENSE +0 -18
- data/node_modules/minimist/example/parse.js +0 -2
- data/node_modules/minimist/index.js +0 -187
- data/node_modules/minimist/package.json +0 -40
- data/node_modules/minimist/readme.markdown +0 -73
- data/node_modules/minimist/test/dash.js +0 -24
- data/node_modules/minimist/test/default_bool.js +0 -20
- data/node_modules/minimist/test/dotted.js +0 -16
- data/node_modules/minimist/test/long.js +0 -31
- data/node_modules/minimist/test/parse.js +0 -318
- data/node_modules/minimist/test/parse_modified.js +0 -9
- data/node_modules/minimist/test/short.js +0 -67
- data/node_modules/minimist/test/whitespace.js +0 -8
- data/node_modules/mkdirp/LICENSE +0 -21
- data/node_modules/mkdirp/bin/cmd.js +0 -33
- data/node_modules/mkdirp/bin/usage.txt +0 -12
- data/node_modules/mkdirp/examples/pow.js +0 -6
- data/node_modules/mkdirp/index.js +0 -98
- data/node_modules/mkdirp/package.json +0 -27
- data/node_modules/mkdirp/readme.markdown +0 -100
- data/node_modules/mkdirp/test/chmod.js +0 -41
- data/node_modules/mkdirp/test/clobber.js +0 -38
- data/node_modules/mkdirp/test/mkdirp.js +0 -28
- data/node_modules/mkdirp/test/opts_fs.js +0 -29
- data/node_modules/mkdirp/test/opts_fs_sync.js +0 -27
- data/node_modules/mkdirp/test/perm.js +0 -32
- data/node_modules/mkdirp/test/perm_sync.js +0 -36
- data/node_modules/mkdirp/test/race.js +0 -37
- data/node_modules/mkdirp/test/rel.js +0 -32
- data/node_modules/mkdirp/test/return.js +0 -25
- data/node_modules/mkdirp/test/return_sync.js +0 -24
- data/node_modules/mkdirp/test/root.js +0 -19
- data/node_modules/mkdirp/test/sync.js +0 -32
- data/node_modules/mkdirp/test/umask.js +0 -28
- data/node_modules/mkdirp/test/umask_sync.js +0 -32
- data/node_modules/ms/index.js +0 -152
- data/node_modules/ms/license.md +0 -21
- data/node_modules/ms/package.json +0 -37
- data/node_modules/ms/readme.md +0 -51
- data/node_modules/once/LICENSE +0 -15
- data/node_modules/once/README.md +0 -79
- data/node_modules/once/once.js +0 -42
- data/node_modules/once/package.json +0 -33
- data/node_modules/path-is-absolute/index.js +0 -20
- data/node_modules/path-is-absolute/license +0 -21
- data/node_modules/path-is-absolute/package.json +0 -43
- data/node_modules/path-is-absolute/readme.md +0 -59
- data/node_modules/pend/LICENSE +0 -23
- data/node_modules/pend/README.md +0 -41
- data/node_modules/pend/index.js +0 -55
- data/node_modules/pend/package.json +0 -18
- data/node_modules/pend/test.js +0 -137
- data/node_modules/process-nextick-args/index.js +0 -44
- data/node_modules/process-nextick-args/license.md +0 -19
- data/node_modules/process-nextick-args/package.json +0 -25
- data/node_modules/process-nextick-args/readme.md +0 -18
- data/node_modules/progress/CHANGELOG.md +0 -115
- data/node_modules/progress/LICENSE +0 -22
- data/node_modules/progress/Makefile +0 -8
- data/node_modules/progress/README.md +0 -146
- data/node_modules/progress/index.js +0 -1
- data/node_modules/progress/lib/node-progress.js +0 -231
- data/node_modules/progress/package.json +0 -25
- data/node_modules/proxy-from-env/README.md +0 -131
- data/node_modules/proxy-from-env/index.js +0 -103
- data/node_modules/proxy-from-env/package.json +0 -35
- data/node_modules/proxy-from-env/test.js +0 -393
- data/node_modules/puppeteer/CONTRIBUTING.md +0 -206
- data/node_modules/puppeteer/DeviceDescriptors.js +0 -704
- data/node_modules/puppeteer/LICENSE +0 -202
- data/node_modules/puppeteer/README.md +0 -306
- data/node_modules/puppeteer/index.js +0 -28
- data/node_modules/puppeteer/install.js +0 -122
- data/node_modules/puppeteer/lib/Browser.js +0 -186
- data/node_modules/puppeteer/lib/BrowserFetcher.js +0 -279
- data/node_modules/puppeteer/lib/Connection.js +0 -246
- data/node_modules/puppeteer/lib/Coverage.js +0 -301
- data/node_modules/puppeteer/lib/Dialog.js +0 -84
- data/node_modules/puppeteer/lib/ElementHandle.js +0 -328
- data/node_modules/puppeteer/lib/EmulationManager.js +0 -89
- data/node_modules/puppeteer/lib/ExecutionContext.js +0 -232
- data/node_modules/puppeteer/lib/FrameManager.js +0 -997
- data/node_modules/puppeteer/lib/Input.js +0 -309
- data/node_modules/puppeteer/lib/Launcher.js +0 -310
- data/node_modules/puppeteer/lib/Multimap.js +0 -95
- data/node_modules/puppeteer/lib/NavigatorWatcher.js +0 -137
- data/node_modules/puppeteer/lib/NetworkManager.js +0 -796
- data/node_modules/puppeteer/lib/Page.js +0 -1098
- data/node_modules/puppeteer/lib/Pipe.js +0 -69
- data/node_modules/puppeteer/lib/Puppeteer.js +0 -60
- data/node_modules/puppeteer/lib/Target.js +0 -88
- data/node_modules/puppeteer/lib/TaskQueue.js +0 -17
- data/node_modules/puppeteer/lib/Tracing.js +0 -99
- data/node_modules/puppeteer/lib/USKeyboardLayout.js +0 -281
- data/node_modules/puppeteer/lib/helper.js +0 -248
- data/node_modules/puppeteer/node6/lib/Browser.js +0 -394
- data/node_modules/puppeteer/node6/lib/BrowserFetcher.js +0 -357
- data/node_modules/puppeteer/node6/lib/Connection.js +0 -350
- data/node_modules/puppeteer/node6/lib/Coverage.js +0 -561
- data/node_modules/puppeteer/node6/lib/Dialog.js +0 -136
- data/node_modules/puppeteer/node6/lib/ElementHandle.js +0 -796
- data/node_modules/puppeteer/node6/lib/EmulationManager.js +0 -115
- data/node_modules/puppeteer/node6/lib/ExecutionContext.js +0 -414
- data/node_modules/puppeteer/node6/lib/FrameManager.js +0 -1621
- data/node_modules/puppeteer/node6/lib/Input.js +0 -569
- data/node_modules/puppeteer/node6/lib/Launcher.js +0 -362
- data/node_modules/puppeteer/node6/lib/Multimap.js +0 -95
- data/node_modules/puppeteer/node6/lib/NavigatorWatcher.js +0 -163
- data/node_modules/puppeteer/node6/lib/NetworkManager.js +0 -1108
- data/node_modules/puppeteer/node6/lib/Page.js +0 -2242
- data/node_modules/puppeteer/node6/lib/Pipe.js +0 -69
- data/node_modules/puppeteer/node6/lib/Puppeteer.js +0 -60
- data/node_modules/puppeteer/node6/lib/Target.js +0 -114
- data/node_modules/puppeteer/node6/lib/TaskQueue.js +0 -17
- data/node_modules/puppeteer/node6/lib/Tracing.js +0 -177
- data/node_modules/puppeteer/node6/lib/USKeyboardLayout.js +0 -281
- data/node_modules/puppeteer/node6/lib/helper.js +0 -274
- data/node_modules/puppeteer/package.json +0 -61
- data/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- data/node_modules/readable-stream/GOVERNANCE.md +0 -136
- data/node_modules/readable-stream/LICENSE +0 -47
- data/node_modules/readable-stream/README.md +0 -58
- data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- data/node_modules/readable-stream/duplex-browser.js +0 -1
- data/node_modules/readable-stream/duplex.js +0 -1
- data/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- data/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- data/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- data/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- data/node_modules/readable-stream/lib/_stream_writable.js +0 -687
- data/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
- data/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
- data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- data/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- data/node_modules/readable-stream/package.json +0 -52
- data/node_modules/readable-stream/passthrough.js +0 -1
- data/node_modules/readable-stream/readable-browser.js +0 -7
- data/node_modules/readable-stream/readable.js +0 -19
- data/node_modules/readable-stream/transform.js +0 -1
- data/node_modules/readable-stream/writable-browser.js +0 -1
- data/node_modules/readable-stream/writable.js +0 -8
- data/node_modules/rimraf/LICENSE +0 -15
- data/node_modules/rimraf/README.md +0 -101
- data/node_modules/rimraf/bin.js +0 -50
- data/node_modules/rimraf/package.json +0 -26
- data/node_modules/rimraf/rimraf.js +0 -364
- data/node_modules/safe-buffer/LICENSE +0 -21
- data/node_modules/safe-buffer/README.md +0 -584
- data/node_modules/safe-buffer/index.d.ts +0 -187
- data/node_modules/safe-buffer/index.js +0 -62
- data/node_modules/safe-buffer/package.json +0 -37
- data/node_modules/string_decoder/LICENSE +0 -48
- data/node_modules/string_decoder/README.md +0 -47
- data/node_modules/string_decoder/lib/string_decoder.js +0 -296
- data/node_modules/string_decoder/package.json +0 -31
- data/node_modules/typedarray/LICENSE +0 -35
- data/node_modules/typedarray/example/tarray.js +0 -4
- data/node_modules/typedarray/index.js +0 -630
- data/node_modules/typedarray/package.json +0 -55
- data/node_modules/typedarray/readme.markdown +0 -61
- data/node_modules/typedarray/test/server/undef_globals.js +0 -19
- data/node_modules/typedarray/test/tarray.js +0 -10
- data/node_modules/ultron/LICENSE +0 -22
- data/node_modules/ultron/README.md +0 -113
- data/node_modules/ultron/index.js +0 -136
- data/node_modules/ultron/package.json +0 -41
- data/node_modules/util-deprecate/History.md +0 -16
- data/node_modules/util-deprecate/LICENSE +0 -24
- data/node_modules/util-deprecate/README.md +0 -53
- data/node_modules/util-deprecate/browser.js +0 -67
- data/node_modules/util-deprecate/node.js +0 -6
- data/node_modules/util-deprecate/package.json +0 -27
- data/node_modules/wrappy/LICENSE +0 -15
- data/node_modules/wrappy/README.md +0 -36
- data/node_modules/wrappy/package.json +0 -29
- data/node_modules/wrappy/wrappy.js +0 -33
- data/node_modules/ws/LICENSE +0 -21
- data/node_modules/ws/README.md +0 -341
- data/node_modules/ws/index.js +0 -15
- data/node_modules/ws/lib/BufferUtil.js +0 -71
- data/node_modules/ws/lib/Constants.js +0 -10
- data/node_modules/ws/lib/ErrorCodes.js +0 -28
- data/node_modules/ws/lib/EventTarget.js +0 -151
- data/node_modules/ws/lib/Extensions.js +0 -203
- data/node_modules/ws/lib/PerMessageDeflate.js +0 -507
- data/node_modules/ws/lib/Receiver.js +0 -553
- data/node_modules/ws/lib/Sender.js +0 -412
- data/node_modules/ws/lib/Validation.js +0 -17
- data/node_modules/ws/lib/WebSocket.js +0 -717
- data/node_modules/ws/lib/WebSocketServer.js +0 -326
- data/node_modules/ws/package.json +0 -46
- data/node_modules/yauzl/LICENSE +0 -21
- data/node_modules/yauzl/README.md +0 -467
- data/node_modules/yauzl/index.js +0 -626
- data/node_modules/yauzl/package.json +0 -36
- data/package.json +0 -5
- data/yarn.lock +0 -240
@@ -1,145 +0,0 @@
|
|
1
|
-
agent-base
|
2
|
-
==========
|
3
|
-
### Turn a function into an [`http.Agent`][http.Agent] instance
|
4
|
-
[![Build Status](https://travis-ci.org/TooTallNate/node-agent-base.svg?branch=master)](https://travis-ci.org/TooTallNate/node-agent-base)
|
5
|
-
|
6
|
-
This module provides an `http.Agent` generator. That is, you pass it an async
|
7
|
-
callback function, and it returns a new `http.Agent` instance that will invoke the
|
8
|
-
given callback function when sending outbound HTTP requests.
|
9
|
-
|
10
|
-
#### Some subclasses:
|
11
|
-
|
12
|
-
Here's some more interesting uses of `agent-base`.
|
13
|
-
Send a pull request to list yours!
|
14
|
-
|
15
|
-
* [`http-proxy-agent`][http-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTP endpoints
|
16
|
-
* [`https-proxy-agent`][https-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTPS endpoints
|
17
|
-
* [`pac-proxy-agent`][pac-proxy-agent]: A PAC file proxy `http.Agent` implementation for HTTP and HTTPS
|
18
|
-
* [`socks-proxy-agent`][socks-proxy-agent]: A SOCKS (v4a) proxy `http.Agent` implementation for HTTP and HTTPS
|
19
|
-
|
20
|
-
|
21
|
-
Installation
|
22
|
-
------------
|
23
|
-
|
24
|
-
Install with `npm`:
|
25
|
-
|
26
|
-
``` bash
|
27
|
-
$ npm install agent-base
|
28
|
-
```
|
29
|
-
|
30
|
-
|
31
|
-
Example
|
32
|
-
-------
|
33
|
-
|
34
|
-
Here's a minimal example that creates a new `net.Socket` connection to the server
|
35
|
-
for every HTTP request (i.e. the equivalent of `agent: false` option):
|
36
|
-
|
37
|
-
```js
|
38
|
-
var net = require('net');
|
39
|
-
var tls = require('tls');
|
40
|
-
var url = require('url');
|
41
|
-
var http = require('http');
|
42
|
-
var agent = require('agent-base');
|
43
|
-
|
44
|
-
var endpoint = 'http://nodejs.org/api/';
|
45
|
-
var parsed = url.parse(endpoint);
|
46
|
-
|
47
|
-
// This is the important part!
|
48
|
-
parsed.agent = agent(function (req, opts) {
|
49
|
-
var socket;
|
50
|
-
// `secureEndpoint` is true when using the https module
|
51
|
-
if (opts.secureEndpoint) {
|
52
|
-
socket = tls.connect(opts);
|
53
|
-
} else {
|
54
|
-
socket = net.connect(opts);
|
55
|
-
}
|
56
|
-
return socket;
|
57
|
-
});
|
58
|
-
|
59
|
-
// Everything else works just like normal...
|
60
|
-
http.get(parsed, function (res) {
|
61
|
-
console.log('"response" event!', res.headers);
|
62
|
-
res.pipe(process.stdout);
|
63
|
-
});
|
64
|
-
```
|
65
|
-
|
66
|
-
Returning a Promise or using an `async` function is also supported:
|
67
|
-
|
68
|
-
```js
|
69
|
-
agent(async function (req, opts) {
|
70
|
-
await sleep(1000);
|
71
|
-
// etc…
|
72
|
-
});
|
73
|
-
```
|
74
|
-
|
75
|
-
Return another `http.Agent` instance to "pass through" the responsibility
|
76
|
-
for that HTTP request to that agent:
|
77
|
-
|
78
|
-
```js
|
79
|
-
agent(function (req, opts) {
|
80
|
-
return opts.secureEndpoint ? https.globalAgent : http.globalAgent;
|
81
|
-
});
|
82
|
-
```
|
83
|
-
|
84
|
-
|
85
|
-
API
|
86
|
-
---
|
87
|
-
|
88
|
-
## Agent(Function callback[, Object options]) → [http.Agent][]
|
89
|
-
|
90
|
-
Creates a base `http.Agent` that will execute the callback function `callback`
|
91
|
-
for every HTTP request that it is used as the `agent` for. The callback function
|
92
|
-
is responsible for creating a `stream.Duplex` instance of some kind that will be
|
93
|
-
used as the underlying socket in the HTTP request.
|
94
|
-
|
95
|
-
The `options` object accepts the following properties:
|
96
|
-
|
97
|
-
* `timeout` - Number - Timeout for the `callback()` function in milliseconds. Defaults to Infinity (optional).
|
98
|
-
|
99
|
-
The callback function should have the following signature:
|
100
|
-
|
101
|
-
### callback(http.ClientRequest req, Object options, Function cb) → undefined
|
102
|
-
|
103
|
-
The ClientRequest `req` can be accessed to read request headers and
|
104
|
-
and the path, etc. The `options` object contains the options passed
|
105
|
-
to the `http.request()`/`https.request()` function call, and is formatted
|
106
|
-
to be directly passed to `net.connect()`/`tls.connect()`, or however
|
107
|
-
else you want a Socket to be created. Pass the created socket to
|
108
|
-
the callback function `cb` once created, and the HTTP request will
|
109
|
-
continue to proceed.
|
110
|
-
|
111
|
-
If the `https` module is used to invoke the HTTP request, then the
|
112
|
-
`secureEndpoint` property on `options` _will be set to `true`_.
|
113
|
-
|
114
|
-
|
115
|
-
License
|
116
|
-
-------
|
117
|
-
|
118
|
-
(The MIT License)
|
119
|
-
|
120
|
-
Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
|
121
|
-
|
122
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
123
|
-
a copy of this software and associated documentation files (the
|
124
|
-
'Software'), to deal in the Software without restriction, including
|
125
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
126
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
127
|
-
permit persons to whom the Software is furnished to do so, subject to
|
128
|
-
the following conditions:
|
129
|
-
|
130
|
-
The above copyright notice and this permission notice shall be
|
131
|
-
included in all copies or substantial portions of the Software.
|
132
|
-
|
133
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
134
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
135
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
136
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
137
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
138
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
139
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
140
|
-
|
141
|
-
[http-proxy-agent]: https://github.com/TooTallNate/node-http-proxy-agent
|
142
|
-
[https-proxy-agent]: https://github.com/TooTallNate/node-https-proxy-agent
|
143
|
-
[pac-proxy-agent]: https://github.com/TooTallNate/node-pac-proxy-agent
|
144
|
-
[socks-proxy-agent]: https://github.com/TooTallNate/node-socks-proxy-agent
|
145
|
-
[http.Agent]: https://nodejs.org/api/http.html#http_class_http_agent
|
@@ -1,160 +0,0 @@
|
|
1
|
-
'use strict';
|
2
|
-
require('./patch-core');
|
3
|
-
const inherits = require('util').inherits;
|
4
|
-
const promisify = require('es6-promisify');
|
5
|
-
const EventEmitter = require('events').EventEmitter;
|
6
|
-
|
7
|
-
module.exports = Agent;
|
8
|
-
|
9
|
-
function isAgent(v) {
|
10
|
-
return v && typeof v.addRequest === 'function';
|
11
|
-
}
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Base `http.Agent` implementation.
|
15
|
-
* No pooling/keep-alive is implemented by default.
|
16
|
-
*
|
17
|
-
* @param {Function} callback
|
18
|
-
* @api public
|
19
|
-
*/
|
20
|
-
function Agent(callback, _opts) {
|
21
|
-
if (!(this instanceof Agent)) {
|
22
|
-
return new Agent(callback, _opts);
|
23
|
-
}
|
24
|
-
|
25
|
-
EventEmitter.call(this);
|
26
|
-
|
27
|
-
// The callback gets promisified if it has 3 parameters
|
28
|
-
// (i.e. it has a callback function) lazily
|
29
|
-
this._promisifiedCallback = false;
|
30
|
-
|
31
|
-
let opts = _opts;
|
32
|
-
if ('function' === typeof callback) {
|
33
|
-
this.callback = callback;
|
34
|
-
} else if (callback) {
|
35
|
-
opts = callback;
|
36
|
-
}
|
37
|
-
|
38
|
-
// timeout for the socket to be returned from the callback
|
39
|
-
this.timeout = (opts && opts.timeout) || null;
|
40
|
-
|
41
|
-
this.options = opts;
|
42
|
-
}
|
43
|
-
inherits(Agent, EventEmitter);
|
44
|
-
|
45
|
-
/**
|
46
|
-
* Override this function in your subclass!
|
47
|
-
*/
|
48
|
-
Agent.prototype.callback = function callback(req, opts) {
|
49
|
-
throw new Error(
|
50
|
-
'"agent-base" has no default implementation, you must subclass and override `callback()`'
|
51
|
-
);
|
52
|
-
};
|
53
|
-
|
54
|
-
/**
|
55
|
-
* Called by node-core's "_http_client.js" module when creating
|
56
|
-
* a new HTTP request with this Agent instance.
|
57
|
-
*
|
58
|
-
* @api public
|
59
|
-
*/
|
60
|
-
Agent.prototype.addRequest = function addRequest(req, _opts) {
|
61
|
-
const ownOpts = Object.assign({}, _opts);
|
62
|
-
|
63
|
-
// Set default `host` for HTTP to localhost
|
64
|
-
if (null == ownOpts.host) {
|
65
|
-
ownOpts.host = 'localhost';
|
66
|
-
}
|
67
|
-
|
68
|
-
// Set default `port` for HTTP if none was explicitly specified
|
69
|
-
if (null == ownOpts.port) {
|
70
|
-
ownOpts.port = ownOpts.secureEndpoint ? 443 : 80;
|
71
|
-
}
|
72
|
-
|
73
|
-
const opts = Object.assign({}, this.options, ownOpts);
|
74
|
-
|
75
|
-
if (opts.host && opts.path) {
|
76
|
-
// If both a `host` and `path` are specified then it's most likely the
|
77
|
-
// result of a `url.parse()` call... we need to remove the `path` portion so
|
78
|
-
// that `net.connect()` doesn't attempt to open that as a unix socket file.
|
79
|
-
delete opts.path;
|
80
|
-
}
|
81
|
-
|
82
|
-
delete opts.agent;
|
83
|
-
delete opts.hostname;
|
84
|
-
delete opts._defaultAgent;
|
85
|
-
delete opts.defaultPort;
|
86
|
-
delete opts.createConnection;
|
87
|
-
|
88
|
-
// Hint to use "Connection: close"
|
89
|
-
// XXX: non-documented `http` module API :(
|
90
|
-
req._last = true;
|
91
|
-
req.shouldKeepAlive = false;
|
92
|
-
|
93
|
-
// Create the `stream.Duplex` instance
|
94
|
-
let timeout;
|
95
|
-
let timedOut = false;
|
96
|
-
const timeoutMs = this.timeout;
|
97
|
-
|
98
|
-
function onerror(err) {
|
99
|
-
if (req._hadError) return;
|
100
|
-
req.emit('error', err);
|
101
|
-
// For Safety. Some additional errors might fire later on
|
102
|
-
// and we need to make sure we don't double-fire the error event.
|
103
|
-
req._hadError = true;
|
104
|
-
}
|
105
|
-
|
106
|
-
function ontimeout() {
|
107
|
-
timeout = null;
|
108
|
-
timedOut = true;
|
109
|
-
const err = new Error(
|
110
|
-
'A "socket" was not created for HTTP request before ' + timeoutMs + 'ms'
|
111
|
-
);
|
112
|
-
err.code = 'ETIMEOUT';
|
113
|
-
onerror(err);
|
114
|
-
}
|
115
|
-
|
116
|
-
function callbackError(err) {
|
117
|
-
if (timedOut) return;
|
118
|
-
if (timeout != null) {
|
119
|
-
clearTimeout(timeout);
|
120
|
-
timeout = null;
|
121
|
-
}
|
122
|
-
onerror(err);
|
123
|
-
}
|
124
|
-
|
125
|
-
function onsocket(socket) {
|
126
|
-
if (timedOut) return;
|
127
|
-
if (timeout != null) {
|
128
|
-
clearTimeout(timeout);
|
129
|
-
timeout = null;
|
130
|
-
}
|
131
|
-
if (isAgent(socket)) {
|
132
|
-
// `socket` is actually an http.Agent instance, so relinquish
|
133
|
-
// responsibility for this `req` to the Agent from here on
|
134
|
-
socket.addRequest(req, opts);
|
135
|
-
} else if (socket) {
|
136
|
-
req.onSocket(socket);
|
137
|
-
} else {
|
138
|
-
const err = new Error(
|
139
|
-
`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``
|
140
|
-
);
|
141
|
-
onerror(err);
|
142
|
-
}
|
143
|
-
}
|
144
|
-
|
145
|
-
if (!this._promisifiedCallback && this.callback.length >= 3) {
|
146
|
-
// Legacy callback function - convert to a Promise
|
147
|
-
this.callback = promisify(this.callback, this);
|
148
|
-
this._promisifiedCallback = true;
|
149
|
-
}
|
150
|
-
|
151
|
-
if (timeoutMs > 0) {
|
152
|
-
timeout = setTimeout(ontimeout, timeoutMs);
|
153
|
-
}
|
154
|
-
|
155
|
-
try {
|
156
|
-
Promise.resolve(this.callback(req, opts)).then(onsocket, callbackError);
|
157
|
-
} catch (err) {
|
158
|
-
Promise.reject(err).catch(callbackError);
|
159
|
-
}
|
160
|
-
};
|
@@ -1,35 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "agent-base",
|
3
|
-
"version": "4.2.0",
|
4
|
-
"description": "Turn a function into an `http.Agent` instance",
|
5
|
-
"main": "./index.js",
|
6
|
-
"scripts": {
|
7
|
-
"test": "mocha --reporter spec"
|
8
|
-
},
|
9
|
-
"repository": {
|
10
|
-
"type": "git",
|
11
|
-
"url": "git://github.com/TooTallNate/node-agent-base.git"
|
12
|
-
},
|
13
|
-
"keywords": [
|
14
|
-
"http",
|
15
|
-
"agent",
|
16
|
-
"base",
|
17
|
-
"barebones",
|
18
|
-
"https"
|
19
|
-
],
|
20
|
-
"author": "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)",
|
21
|
-
"license": "MIT",
|
22
|
-
"bugs": {
|
23
|
-
"url": "https://github.com/TooTallNate/node-agent-base/issues"
|
24
|
-
},
|
25
|
-
"devDependencies": {
|
26
|
-
"mocha": "^3.4.2",
|
27
|
-
"ws": "^3.0.0"
|
28
|
-
},
|
29
|
-
"dependencies": {
|
30
|
-
"es6-promisify": "^5.0.0"
|
31
|
-
},
|
32
|
-
"engines": {
|
33
|
-
"node": ">= 4.0.0"
|
34
|
-
}
|
35
|
-
}
|
@@ -1,37 +0,0 @@
|
|
1
|
-
'use strict';
|
2
|
-
const url = require('url');
|
3
|
-
const https = require('https');
|
4
|
-
|
5
|
-
/**
|
6
|
-
* This currently needs to be applied to all Node.js versions
|
7
|
-
* in order to determine if the `req` is an HTTP or HTTPS request.
|
8
|
-
*
|
9
|
-
* There is currently no PR attempting to move this property upstream.
|
10
|
-
*/
|
11
|
-
https.request = (function(request) {
|
12
|
-
return function(_options, cb) {
|
13
|
-
let options;
|
14
|
-
if (typeof _options === 'string') {
|
15
|
-
options = url.parse(_options);
|
16
|
-
} else {
|
17
|
-
options = Object.assign({}, _options);
|
18
|
-
}
|
19
|
-
if (null == options.port) {
|
20
|
-
options.port = 443;
|
21
|
-
}
|
22
|
-
options.secureEndpoint = true;
|
23
|
-
return request.call(https, options, cb);
|
24
|
-
};
|
25
|
-
})(https.request);
|
26
|
-
|
27
|
-
/**
|
28
|
-
* This is needed for Node.js >= 9.0.0 to make sure `https.get()` uses the
|
29
|
-
* patched `https.request()`.
|
30
|
-
*
|
31
|
-
* Ref: https://github.com/nodejs/node/commit/5118f31
|
32
|
-
*/
|
33
|
-
https.get = function(options, cb) {
|
34
|
-
const req = https.request(options, cb);
|
35
|
-
req.end();
|
36
|
-
return req;
|
37
|
-
};
|
@@ -1,15 +0,0 @@
|
|
1
|
-
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
MIICWwIBAAKBgQCzURxIqzer0ACAbX/lHdsn4Gd9PLKrf7EeDYfIdV0HZKPD8WDr
|
3
|
-
bBx2/fBu0OW2sjnzv/SVZbJ0DAuPE/p0+eT0qb2qC10iz9iTD7ribd7gxhirVb8y
|
4
|
-
b3fBjXsxc8V8p4Ny1LcvNSqCjwUbJqdRogfoJeTiqPM58z5sNzuv5iq7iwIDAQAB
|
5
|
-
AoGAPMQy4olrP0UotlzlJ36bowLP70ffgHCwU+/f4NWs5fF78c3du0oSx1w820Dd
|
6
|
-
Z7E0JF8bgnlJJTxjumPZz0RUCugrEHBKJmzEz3cxF5E3+7NvteZcjKn9D67RrM5x
|
7
|
-
1/uSZ9cqKE9cYvY4fSuHx18diyZ4axR/wB1Pea2utjjDM+ECQQDb9ZbmmaWMiRpQ
|
8
|
-
5Up+loxP7BZNPsEVsm+DVJmEFbaFgGfncWBqSIqnPNjMwTwj0OigTwCAEGPkfRVW
|
9
|
-
T0pbYWCxAkEA0LK7SCTwzyDmhASUalk0x+3uCAA6ryFdwJf/wd8TRAvVOmkTEldX
|
10
|
-
uJ7ldLvfrONYO3v56uKTU/SoNdZYzKtO+wJAX2KM4ctXYy5BXztPpr2acz4qHa1N
|
11
|
-
Bh+vBAC34fOYhyQ76r3b1btHhWZ5jbFuZwm9F2erC94Ps5IaoqcX07DSwQJAPKGw
|
12
|
-
h2U0EPkd/3zVIZCJJQya+vgWFIs9EZcXVtvYXQyTBkVApTN66MhBIYjzkub5205J
|
13
|
-
bVQmOV37AKklY1DhwQJAA1wos0cYxro02edzatxd0DIR2r4qqOqLkw6BhYHhq6HJ
|
14
|
-
ZvIcQkHqdSXzdETFc01I1znDGGIrJHcnvKWgBPoEUg==
|
15
|
-
-----END RSA PRIVATE KEY-----
|
@@ -1,12 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIB1TCCAT4CCQDV5mPlzm9+izANBgkqhkiG9w0BAQUFADAvMS0wKwYDVQQDEyQ3
|
3
|
-
NTI3YmQ3Ny1hYjNlLTQ3NGItYWNlNy1lZWQ2MDUzOTMxZTcwHhcNMTUwNzA2MjI0
|
4
|
-
NTA3WhcNMjUwNzAzMjI0NTA3WjAvMS0wKwYDVQQDEyQ3NTI3YmQ3Ny1hYjNlLTQ3
|
5
|
-
NGItYWNlNy1lZWQ2MDUzOTMxZTcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
|
6
|
-
ALNRHEirN6vQAIBtf+Ud2yfgZ308sqt/sR4Nh8h1XQdko8PxYOtsHHb98G7Q5bay
|
7
|
-
OfO/9JVlsnQMC48T+nT55PSpvaoLXSLP2JMPuuJt3uDGGKtVvzJvd8GNezFzxXyn
|
8
|
-
g3LUty81KoKPBRsmp1GiB+gl5OKo8znzPmw3O6/mKruLAgMBAAEwDQYJKoZIhvcN
|
9
|
-
AQEFBQADgYEACzoHUF8UV2Z6541Q2wKEA0UFUzmUjf/E1XwBO+1P15ZZ64uw34B4
|
10
|
-
1RwMPtAo9RY/PmICTWtNxWGxkzwb2JtDWtnxVER/lF8k2XcXPE76fxTHJF/BKk9J
|
11
|
-
QU8OTD1dd9gHCBviQB9TqntRZ5X7axjtuWjb2umY+owBYzAHZkp1HKI=
|
12
|
-
-----END CERTIFICATE-----
|