postdoc 0.2.0.beta4 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/postdoc.rb +50 -18
- metadata +24 -378
- 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.auto.js +0 -3
- data/node_modules/es6-promise/lib/es6-promise.js +0 -7
- 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.js +0 -427
- 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/then.js +0 -32
- data/node_modules/es6-promise/lib/es6-promise/utils.js +0 -21
- 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,146 +0,0 @@
|
|
|
1
|
-
Flexible ascii progress bar.
|
|
2
|
-
|
|
3
|
-
## Installation
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
$ npm install progress
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
First we create a `ProgressBar`, giving it a format string
|
|
12
|
-
as well as the `total`, telling the progress bar when it will
|
|
13
|
-
be considered complete. After that all we need to do is `tick()` appropriately.
|
|
14
|
-
|
|
15
|
-
```javascript
|
|
16
|
-
var ProgressBar = require('progress');
|
|
17
|
-
|
|
18
|
-
var bar = new ProgressBar(':bar', { total: 10 });
|
|
19
|
-
var timer = setInterval(function () {
|
|
20
|
-
bar.tick();
|
|
21
|
-
if (bar.complete) {
|
|
22
|
-
console.log('\ncomplete\n');
|
|
23
|
-
clearInterval(timer);
|
|
24
|
-
}
|
|
25
|
-
}, 100);
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Options
|
|
29
|
-
|
|
30
|
-
These are keys in the options object you can pass to the progress bar along with
|
|
31
|
-
`total` as seen in the example above.
|
|
32
|
-
|
|
33
|
-
- `curr` current completed index
|
|
34
|
-
- `total` total number of ticks to complete
|
|
35
|
-
- `width` the displayed width of the progress bar defaulting to total
|
|
36
|
-
- `stream` the output stream defaulting to stderr
|
|
37
|
-
- `head` head character defaulting to complete character
|
|
38
|
-
- `complete` completion character defaulting to "="
|
|
39
|
-
- `incomplete` incomplete character defaulting to "-"
|
|
40
|
-
- `renderThrottle` minimum time between updates in milliseconds defaulting to 16
|
|
41
|
-
- `clear` option to clear the bar on completion defaulting to false
|
|
42
|
-
- `callback` optional function to call when the progress bar completes
|
|
43
|
-
|
|
44
|
-
### Tokens
|
|
45
|
-
|
|
46
|
-
These are tokens you can use in the format of your progress bar.
|
|
47
|
-
|
|
48
|
-
- `:bar` the progress bar itself
|
|
49
|
-
- `:current` current tick number
|
|
50
|
-
- `:total` total ticks
|
|
51
|
-
- `:elapsed` time elapsed in seconds
|
|
52
|
-
- `:percent` completion percentage
|
|
53
|
-
- `:eta` estimated completion time in seconds
|
|
54
|
-
- `:rate` rate of ticks per second
|
|
55
|
-
|
|
56
|
-
### Custom Tokens
|
|
57
|
-
|
|
58
|
-
You can define custom tokens by adding a `{'name': value}` object parameter to your method (`tick()`, `update()`, etc.) calls.
|
|
59
|
-
|
|
60
|
-
```javascript
|
|
61
|
-
var bar = new ProgressBar(':current: :token1 :token2', { total: 3 })
|
|
62
|
-
bar.tick({
|
|
63
|
-
'token1': "Hello",
|
|
64
|
-
'token2': "World!\n"
|
|
65
|
-
})
|
|
66
|
-
bar.tick(2, {
|
|
67
|
-
'token1': "Goodbye",
|
|
68
|
-
'token2': "World!"
|
|
69
|
-
})
|
|
70
|
-
```
|
|
71
|
-
The above example would result in the output below.
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
1: Hello World!
|
|
75
|
-
3: Goodbye World!
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Examples
|
|
79
|
-
|
|
80
|
-
### Download
|
|
81
|
-
|
|
82
|
-
In our download example each tick has a variable influence, so we pass the chunk
|
|
83
|
-
length which adjusts the progress bar appropriately relative to the total
|
|
84
|
-
length.
|
|
85
|
-
|
|
86
|
-
```javascript
|
|
87
|
-
var ProgressBar = require('progress');
|
|
88
|
-
var https = require('https');
|
|
89
|
-
|
|
90
|
-
var req = https.request({
|
|
91
|
-
host: 'download.github.com',
|
|
92
|
-
port: 443,
|
|
93
|
-
path: '/visionmedia-node-jscoverage-0d4608a.zip'
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
req.on('response', function(res){
|
|
97
|
-
var len = parseInt(res.headers['content-length'], 10);
|
|
98
|
-
|
|
99
|
-
console.log();
|
|
100
|
-
var bar = new ProgressBar(' downloading [:bar] :rate/bps :percent :etas', {
|
|
101
|
-
complete: '=',
|
|
102
|
-
incomplete: ' ',
|
|
103
|
-
width: 20,
|
|
104
|
-
total: len
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
res.on('data', function (chunk) {
|
|
108
|
-
bar.tick(chunk.length);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
res.on('end', function () {
|
|
112
|
-
console.log('\n');
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
req.end();
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
The above example result in a progress bar like the one below.
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
downloading [===== ] 39/bps 29% 3.7s
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Interrupt
|
|
126
|
-
|
|
127
|
-
To display a message during progress bar execution, use `interrupt()`
|
|
128
|
-
```javascript
|
|
129
|
-
var ProgressBar = require('progress');
|
|
130
|
-
|
|
131
|
-
var bar = new ProgressBar(':bar :current/:total', { total: 10 });
|
|
132
|
-
var timer = setInterval(function () {
|
|
133
|
-
bar.tick();
|
|
134
|
-
if (bar.complete) {
|
|
135
|
-
clearInterval(timer);
|
|
136
|
-
} else if (bar.curr === 5) {
|
|
137
|
-
bar.interrupt('this message appears above the progress bar\ncurrent progress is ' + bar.curr + '/' + bar.total);
|
|
138
|
-
}
|
|
139
|
-
}, 1000);
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
You can see more examples in the `examples` folder.
|
|
143
|
-
|
|
144
|
-
## License
|
|
145
|
-
|
|
146
|
-
MIT
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./lib/node-progress');
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* node-progress
|
|
3
|
-
* Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>
|
|
4
|
-
* MIT Licensed
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Expose `ProgressBar`.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
exports = module.exports = ProgressBar;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Initialize a `ProgressBar` with the given `fmt` string and `options` or
|
|
15
|
-
* `total`.
|
|
16
|
-
*
|
|
17
|
-
* Options:
|
|
18
|
-
*
|
|
19
|
-
* - `curr` current completed index
|
|
20
|
-
* - `total` total number of ticks to complete
|
|
21
|
-
* - `width` the displayed width of the progress bar defaulting to total
|
|
22
|
-
* - `stream` the output stream defaulting to stderr
|
|
23
|
-
* - `head` head character defaulting to complete character
|
|
24
|
-
* - `complete` completion character defaulting to "="
|
|
25
|
-
* - `incomplete` incomplete character defaulting to "-"
|
|
26
|
-
* - `renderThrottle` minimum time between updates in milliseconds defaulting to 16
|
|
27
|
-
* - `callback` optional function to call when the progress bar completes
|
|
28
|
-
* - `clear` will clear the progress bar upon termination
|
|
29
|
-
*
|
|
30
|
-
* Tokens:
|
|
31
|
-
*
|
|
32
|
-
* - `:bar` the progress bar itself
|
|
33
|
-
* - `:current` current tick number
|
|
34
|
-
* - `:total` total ticks
|
|
35
|
-
* - `:elapsed` time elapsed in seconds
|
|
36
|
-
* - `:percent` completion percentage
|
|
37
|
-
* - `:eta` eta in seconds
|
|
38
|
-
* - `:rate` rate of ticks per second
|
|
39
|
-
*
|
|
40
|
-
* @param {string} fmt
|
|
41
|
-
* @param {object|number} options or total
|
|
42
|
-
* @api public
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
function ProgressBar(fmt, options) {
|
|
46
|
-
this.stream = options.stream || process.stderr;
|
|
47
|
-
|
|
48
|
-
if (typeof(options) == 'number') {
|
|
49
|
-
var total = options;
|
|
50
|
-
options = {};
|
|
51
|
-
options.total = total;
|
|
52
|
-
} else {
|
|
53
|
-
options = options || {};
|
|
54
|
-
if ('string' != typeof fmt) throw new Error('format required');
|
|
55
|
-
if ('number' != typeof options.total) throw new Error('total required');
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
this.fmt = fmt;
|
|
59
|
-
this.curr = options.curr || 0;
|
|
60
|
-
this.total = options.total;
|
|
61
|
-
this.width = options.width || this.total;
|
|
62
|
-
this.clear = options.clear
|
|
63
|
-
this.chars = {
|
|
64
|
-
complete : options.complete || '=',
|
|
65
|
-
incomplete : options.incomplete || '-',
|
|
66
|
-
head : options.head || (options.complete || '=')
|
|
67
|
-
};
|
|
68
|
-
this.renderThrottle = options.renderThrottle !== 0 ? (options.renderThrottle || 16) : 0;
|
|
69
|
-
this.callback = options.callback || function () {};
|
|
70
|
-
this.tokens = {};
|
|
71
|
-
this.lastDraw = '';
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* "tick" the progress bar with optional `len` and optional `tokens`.
|
|
76
|
-
*
|
|
77
|
-
* @param {number|object} len or tokens
|
|
78
|
-
* @param {object} tokens
|
|
79
|
-
* @api public
|
|
80
|
-
*/
|
|
81
|
-
|
|
82
|
-
ProgressBar.prototype.tick = function(len, tokens){
|
|
83
|
-
if (len !== 0)
|
|
84
|
-
len = len || 1;
|
|
85
|
-
|
|
86
|
-
// swap tokens
|
|
87
|
-
if ('object' == typeof len) tokens = len, len = 1;
|
|
88
|
-
if (tokens) this.tokens = tokens;
|
|
89
|
-
|
|
90
|
-
// start time for eta
|
|
91
|
-
if (0 == this.curr) this.start = new Date;
|
|
92
|
-
|
|
93
|
-
this.curr += len
|
|
94
|
-
|
|
95
|
-
// schedule render
|
|
96
|
-
if (!this.renderThrottleTimeout) {
|
|
97
|
-
this.renderThrottleTimeout = setTimeout(this.render.bind(this), this.renderThrottle);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// progress complete
|
|
101
|
-
if (this.curr >= this.total) {
|
|
102
|
-
if (this.renderThrottleTimeout) this.render();
|
|
103
|
-
this.complete = true;
|
|
104
|
-
this.terminate();
|
|
105
|
-
this.callback(this);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Method to render the progress bar with optional `tokens` to place in the
|
|
112
|
-
* progress bar's `fmt` field.
|
|
113
|
-
*
|
|
114
|
-
* @param {object} tokens
|
|
115
|
-
* @api public
|
|
116
|
-
*/
|
|
117
|
-
|
|
118
|
-
ProgressBar.prototype.render = function (tokens) {
|
|
119
|
-
clearTimeout(this.renderThrottleTimeout);
|
|
120
|
-
this.renderThrottleTimeout = null;
|
|
121
|
-
|
|
122
|
-
if (tokens) this.tokens = tokens;
|
|
123
|
-
|
|
124
|
-
if (!this.stream.isTTY) return;
|
|
125
|
-
|
|
126
|
-
var ratio = this.curr / this.total;
|
|
127
|
-
ratio = Math.min(Math.max(ratio, 0), 1);
|
|
128
|
-
|
|
129
|
-
var percent = ratio * 100;
|
|
130
|
-
var incomplete, complete, completeLength;
|
|
131
|
-
var elapsed = new Date - this.start;
|
|
132
|
-
var eta = (percent == 100) ? 0 : elapsed * (this.total / this.curr - 1);
|
|
133
|
-
var rate = this.curr / (elapsed / 1000);
|
|
134
|
-
|
|
135
|
-
/* populate the bar template with percentages and timestamps */
|
|
136
|
-
var str = this.fmt
|
|
137
|
-
.replace(':current', this.curr)
|
|
138
|
-
.replace(':total', this.total)
|
|
139
|
-
.replace(':elapsed', isNaN(elapsed) ? '0.0' : (elapsed / 1000).toFixed(1))
|
|
140
|
-
.replace(':eta', (isNaN(eta) || !isFinite(eta)) ? '0.0' : (eta / 1000)
|
|
141
|
-
.toFixed(1))
|
|
142
|
-
.replace(':percent', percent.toFixed(0) + '%')
|
|
143
|
-
.replace(':rate', Math.round(rate));
|
|
144
|
-
|
|
145
|
-
/* compute the available space (non-zero) for the bar */
|
|
146
|
-
var availableSpace = Math.max(0, this.stream.columns - str.replace(':bar', '').length);
|
|
147
|
-
if(availableSpace && process.platform === 'win32'){
|
|
148
|
-
availableSpace = availableSpace - 1;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
var width = Math.min(this.width, availableSpace);
|
|
152
|
-
|
|
153
|
-
/* TODO: the following assumes the user has one ':bar' token */
|
|
154
|
-
completeLength = Math.round(width * ratio);
|
|
155
|
-
complete = Array(Math.max(0, completeLength + 1)).join(this.chars.complete);
|
|
156
|
-
incomplete = Array(Math.max(0, width - completeLength + 1)).join(this.chars.incomplete);
|
|
157
|
-
|
|
158
|
-
/* add head to the complete string */
|
|
159
|
-
if(completeLength > 0)
|
|
160
|
-
complete = complete.slice(0, -1) + this.chars.head;
|
|
161
|
-
|
|
162
|
-
/* fill in the actual progress bar */
|
|
163
|
-
str = str.replace(':bar', complete + incomplete);
|
|
164
|
-
|
|
165
|
-
/* replace the extra tokens */
|
|
166
|
-
if (this.tokens) for (var key in this.tokens) str = str.replace(':' + key, this.tokens[key]);
|
|
167
|
-
|
|
168
|
-
if (this.lastDraw !== str) {
|
|
169
|
-
this.stream.cursorTo(0);
|
|
170
|
-
this.stream.write(str);
|
|
171
|
-
this.stream.clearLine(1);
|
|
172
|
-
this.lastDraw = str;
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* "update" the progress bar to represent an exact percentage.
|
|
178
|
-
* The ratio (between 0 and 1) specified will be multiplied by `total` and
|
|
179
|
-
* floored, representing the closest available "tick." For example, if a
|
|
180
|
-
* progress bar has a length of 3 and `update(0.5)` is called, the progress
|
|
181
|
-
* will be set to 1.
|
|
182
|
-
*
|
|
183
|
-
* A ratio of 0.5 will attempt to set the progress to halfway.
|
|
184
|
-
*
|
|
185
|
-
* @param {number} ratio The ratio (between 0 and 1 inclusive) to set the
|
|
186
|
-
* overall completion to.
|
|
187
|
-
* @api public
|
|
188
|
-
*/
|
|
189
|
-
|
|
190
|
-
ProgressBar.prototype.update = function (ratio, tokens) {
|
|
191
|
-
var goal = Math.floor(ratio * this.total);
|
|
192
|
-
var delta = goal - this.curr;
|
|
193
|
-
|
|
194
|
-
this.tick(delta, tokens);
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* "interrupt" the progress bar and write a message above it.
|
|
199
|
-
* @param {string} message The message to write.
|
|
200
|
-
* @api public
|
|
201
|
-
*/
|
|
202
|
-
|
|
203
|
-
ProgressBar.prototype.interrupt = function (message) {
|
|
204
|
-
// clear the current line
|
|
205
|
-
this.stream.clearLine();
|
|
206
|
-
// move the cursor to the start of the line
|
|
207
|
-
this.stream.cursorTo(0);
|
|
208
|
-
// write the message text
|
|
209
|
-
this.stream.write(message);
|
|
210
|
-
// terminate the line after writing the message
|
|
211
|
-
this.stream.write('\n');
|
|
212
|
-
// re-display the progress bar with its lastDraw
|
|
213
|
-
this.stream.write(this.lastDraw);
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Terminates a progress bar.
|
|
218
|
-
*
|
|
219
|
-
* @api public
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
ProgressBar.prototype.terminate = function () {
|
|
223
|
-
if (this.clear) {
|
|
224
|
-
if (this.stream.clearLine) {
|
|
225
|
-
this.stream.clearLine();
|
|
226
|
-
this.stream.cursorTo(0);
|
|
227
|
-
}
|
|
228
|
-
} else {
|
|
229
|
-
this.stream.write('\n');
|
|
230
|
-
}
|
|
231
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "progress",
|
|
3
|
-
"version": "2.0.0",
|
|
4
|
-
"description": "Flexible ascii progress bar",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "git://github.com/visionmedia/node-progress"
|
|
8
|
-
},
|
|
9
|
-
"keywords": [
|
|
10
|
-
"cli",
|
|
11
|
-
"progress"
|
|
12
|
-
],
|
|
13
|
-
"author": "TJ Holowaychuk <tj@vision-media.ca>",
|
|
14
|
-
"contributors": [
|
|
15
|
-
"Christoffer Hallas <christoffer.hallas@gmail.com>",
|
|
16
|
-
"Jordan Scales <scalesjordan@gmail.com>",
|
|
17
|
-
"Andrew Rhyne <rhyneandrew@gmail.com>"
|
|
18
|
-
],
|
|
19
|
-
"dependencies": {},
|
|
20
|
-
"main": "./index.js",
|
|
21
|
-
"engines": {
|
|
22
|
-
"node": ">=0.4.0"
|
|
23
|
-
},
|
|
24
|
-
"license": "MIT"
|
|
25
|
-
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# proxy-from-env
|
|
2
|
-
|
|
3
|
-
[](https://travis-ci.org/Rob--W/proxy-from-env)
|
|
4
|
-
[](https://coveralls.io/github/Rob--W/proxy-from-env?branch=master)
|
|
5
|
-
|
|
6
|
-
`proxy-from-env` is a Node.js package that exports a function (`getProxyForUrl`)
|
|
7
|
-
that takes an input URL (a string or
|
|
8
|
-
[`url.parse`](https://nodejs.org/docs/latest/api/url.html#url_url_parsing)'s
|
|
9
|
-
return value) and returns the desired proxy URL (also a string) based on
|
|
10
|
-
standard proxy environment variables. If no proxy is set, an empty string is
|
|
11
|
-
returned.
|
|
12
|
-
|
|
13
|
-
It is your responsibility to actually proxy the request using the given URL.
|
|
14
|
-
|
|
15
|
-
Installation:
|
|
16
|
-
|
|
17
|
-
```sh
|
|
18
|
-
npm install proxy-from-env
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
This example shows how the data for a URL can be fetched via the
|
|
23
|
-
[`http` module](https://nodejs.org/api/http.html), in a proxy-aware way.
|
|
24
|
-
|
|
25
|
-
```javascript
|
|
26
|
-
var http = require('http');
|
|
27
|
-
var parseUrl = require('url').parse;
|
|
28
|
-
var getProxyForUrl = require('proxy-from-env').getProxyForUrl;
|
|
29
|
-
|
|
30
|
-
var some_url = 'http://example.com/something';
|
|
31
|
-
|
|
32
|
-
// // Example, if there is a proxy server at 10.0.0.1:1234, then setting the
|
|
33
|
-
// // http_proxy environment variable causes the request to go through a proxy.
|
|
34
|
-
// process.env.http_proxy = 'http://10.0.0.1:1234';
|
|
35
|
-
//
|
|
36
|
-
// // But if the host to be proxied is listed in NO_PROXY, then the request is
|
|
37
|
-
// // not proxied (but a direct request is made).
|
|
38
|
-
// process.env.no_proxy = 'example.com';
|
|
39
|
-
|
|
40
|
-
var proxy_url = getProxyForUrl(some_url); // <-- Our magic.
|
|
41
|
-
if (proxy_url) {
|
|
42
|
-
// Should be proxied through proxy_url.
|
|
43
|
-
var parsed_some_url = parseUrl(some_url);
|
|
44
|
-
var parsed_proxy_url = parseUrl(proxy_url);
|
|
45
|
-
// A HTTP proxy is quite simple. It is similar to a normal request, except the
|
|
46
|
-
// path is an absolute URL, and the proxied URL's host is put in the header
|
|
47
|
-
// instead of the server's actual host.
|
|
48
|
-
httpOptions = {
|
|
49
|
-
protocol: parsed_proxy_url.protocol,
|
|
50
|
-
hostname: parsed_proxy_url.hostname,
|
|
51
|
-
port: parsed_proxy_url.port,
|
|
52
|
-
path: parsed_some_url.href,
|
|
53
|
-
headers: {
|
|
54
|
-
Host: parsed_some_url.host, // = host name + optional port.
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
} else {
|
|
58
|
-
// Direct request.
|
|
59
|
-
httpOptions = some_url;
|
|
60
|
-
}
|
|
61
|
-
http.get(httpOptions, function(res) {
|
|
62
|
-
var responses = [];
|
|
63
|
-
res.on('data', function(chunk) { responses.push(chunk); });
|
|
64
|
-
res.on('end', function() { console.log(responses.join('')); });
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Environment variables
|
|
70
|
-
The environment variables can be specified in lowercase or uppercase, with the
|
|
71
|
-
lowercase name having precedence over the uppercase variant. A variable that is
|
|
72
|
-
not set has the same meaning as a variable that is set but has no value.
|
|
73
|
-
|
|
74
|
-
### NO\_PROXY
|
|
75
|
-
|
|
76
|
-
`NO_PROXY` is a list of host names (optionally with a port). If the input URL
|
|
77
|
-
matches any of the entries in `NO_PROXY`, then the input URL should be fetched
|
|
78
|
-
by a direct request (i.e. without a proxy).
|
|
79
|
-
|
|
80
|
-
Matching follows the following rules:
|
|
81
|
-
|
|
82
|
-
- `NO_PROXY=*` disables all proxies.
|
|
83
|
-
- Space and commas may be used to separate the entries in the `NO_PROXY` list.
|
|
84
|
-
- If `NO_PROXY` does not contain any entries, then proxies are never disabled.
|
|
85
|
-
- If a port is added after the host name, then the ports must match. If the URL
|
|
86
|
-
does not have an explicit port name, the protocol's default port is used.
|
|
87
|
-
- Generally, the proxy is only disabled if the host name is an exact match for
|
|
88
|
-
an entry in the `NO_PROXY` list. The only exceptions are entries that start
|
|
89
|
-
with a dot or with a wildcard; then the proxy is disabled if the host name
|
|
90
|
-
ends with the entry.
|
|
91
|
-
|
|
92
|
-
See `test.js` for examples of what should match and what does not.
|
|
93
|
-
|
|
94
|
-
### \*\_PROXY
|
|
95
|
-
|
|
96
|
-
The environment variable used for the proxy depends on the protocol of the URL.
|
|
97
|
-
For example, `https://example.com` uses the "https" protocol, and therefore the
|
|
98
|
-
proxy to be used is `HTTPS_PROXY` (_NOT_ `HTTP_PROXY`, which is _only_ used for
|
|
99
|
-
http:-URLs).
|
|
100
|
-
|
|
101
|
-
The library is not limited to http(s), other schemes such as
|
|
102
|
-
`FTP_PROXY` (ftp:),
|
|
103
|
-
`WSS_PROXY` (wss:),
|
|
104
|
-
`WS_PROXY` (ws:)
|
|
105
|
-
are also supported.
|
|
106
|
-
|
|
107
|
-
If present, `ALL_PROXY` is used as fallback if there is no other match.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
## External resources
|
|
111
|
-
The exact way of parsing the environment variables is not codified in any
|
|
112
|
-
standard. This library is designed to be compatible with formats as expected by
|
|
113
|
-
existing software.
|
|
114
|
-
The following resources were used to determine the desired behavior:
|
|
115
|
-
|
|
116
|
-
- cURL:
|
|
117
|
-
https://curl.haxx.se/docs/manpage.html#ENVIRONMENT
|
|
118
|
-
https://github.com/curl/curl/blob/4af40b3646d3b09f68e419f7ca866ff395d1f897/lib/url.c#L4446-L4514
|
|
119
|
-
https://github.com/curl/curl/blob/4af40b3646d3b09f68e419f7ca866ff395d1f897/lib/url.c#L4608-L4638
|
|
120
|
-
|
|
121
|
-
- wget:
|
|
122
|
-
https://www.gnu.org/software/wget/manual/wget.html#Proxies
|
|
123
|
-
http://git.savannah.gnu.org/cgit/wget.git/tree/src/init.c?id=636a5f9a1c508aa39e35a3a8e9e54520a284d93d#n383
|
|
124
|
-
http://git.savannah.gnu.org/cgit/wget.git/tree/src/retr.c?id=93c1517c4071c4288ba5a4b038e7634e4c6b5482#n1278
|
|
125
|
-
|
|
126
|
-
- W3:
|
|
127
|
-
https://www.w3.org/Daemon/User/Proxies/ProxyClients.html
|
|
128
|
-
|
|
129
|
-
- Python's urllib:
|
|
130
|
-
https://github.com/python/cpython/blob/936135bb97fe04223aa30ca6e98eac8f3ed6b349/Lib/urllib/request.py#L755-L782
|
|
131
|
-
https://github.com/python/cpython/blob/936135bb97fe04223aa30ca6e98eac8f3ed6b349/Lib/urllib/request.py#L2444-L2479
|