@basemaps/lambda-tiler 6.20.0 → 6.21.1

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.
Files changed (618) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/build/__test__/tile.set.cache.test.js +4 -10
  3. package/build/cli/validate.js +2 -1
  4. package/build/index.d.ts.map +1 -1
  5. package/build/index.js +8 -1
  6. package/build/routes/__test__/attribution.test.js +3 -13
  7. package/build/routes/attribution.d.ts.map +1 -1
  8. package/build/routes/attribution.js +7 -20
  9. package/build/routes/tile.wmts.js +2 -2
  10. package/build/source.tracer.d.ts +17 -0
  11. package/build/source.tracer.d.ts.map +1 -0
  12. package/build/source.tracer.js +22 -0
  13. package/build/tile.set.cache.js +3 -3
  14. package/build/tile.set.d.ts +0 -16
  15. package/build/tile.set.d.ts.map +1 -1
  16. package/build/tile.set.js +1 -20
  17. package/build/tile.set.raster.d.ts +7 -4
  18. package/build/tile.set.raster.d.ts.map +1 -1
  19. package/build/tile.set.raster.js +14 -5
  20. package/build/tile.set.vector.d.ts +10 -4
  21. package/build/tile.set.vector.d.ts.map +1 -1
  22. package/build/tile.set.vector.js +17 -7
  23. package/bundle.sh +2 -2
  24. package/package.json +11 -11
  25. package/scripts/create.deployment.package.mjs +34 -0
  26. package/src/__test__/tile.set.cache.test.ts +4 -12
  27. package/src/cli/validate.ts +2 -1
  28. package/src/index.ts +11 -1
  29. package/src/routes/__test__/attribution.test.ts +3 -13
  30. package/src/routes/attribution.ts +6 -17
  31. package/src/routes/tile.wmts.ts +2 -2
  32. package/src/source.tracer.ts +34 -0
  33. package/src/tile.set.cache.ts +3 -3
  34. package/src/tile.set.raster.ts +28 -6
  35. package/src/tile.set.ts +0 -40
  36. package/src/tile.set.vector.ts +25 -6
  37. package/tsconfig.tsbuildinfo +1 -1
  38. package/dist/index.js +0 -30702
  39. package/dist/node_modules/ansi-regex/index.js +0 -4
  40. package/dist/node_modules/ansi-regex/license +0 -21
  41. package/dist/node_modules/ansi-regex/package.json +0 -108
  42. package/dist/node_modules/ansi-regex/readme.md +0 -39
  43. package/dist/node_modules/aproba/LICENSE +0 -14
  44. package/dist/node_modules/aproba/README.md +0 -94
  45. package/dist/node_modules/aproba/index.js +0 -105
  46. package/dist/node_modules/aproba/package.json +0 -62
  47. package/dist/node_modules/are-we-there-yet/CHANGES.md +0 -37
  48. package/dist/node_modules/are-we-there-yet/LICENSE +0 -5
  49. package/dist/node_modules/are-we-there-yet/README.md +0 -195
  50. package/dist/node_modules/are-we-there-yet/index.js +0 -4
  51. package/dist/node_modules/are-we-there-yet/package.json +0 -63
  52. package/dist/node_modules/are-we-there-yet/tracker-base.js +0 -11
  53. package/dist/node_modules/are-we-there-yet/tracker-group.js +0 -107
  54. package/dist/node_modules/are-we-there-yet/tracker-stream.js +0 -36
  55. package/dist/node_modules/are-we-there-yet/tracker.js +0 -30
  56. package/dist/node_modules/base64-js/LICENSE +0 -21
  57. package/dist/node_modules/base64-js/README.md +0 -34
  58. package/dist/node_modules/base64-js/base64js.min.js +0 -1
  59. package/dist/node_modules/base64-js/index.d.ts +0 -3
  60. package/dist/node_modules/base64-js/index.js +0 -150
  61. package/dist/node_modules/base64-js/package.json +0 -75
  62. package/dist/node_modules/bl/.travis.yml +0 -17
  63. package/dist/node_modules/bl/BufferList.js +0 -396
  64. package/dist/node_modules/bl/LICENSE.md +0 -13
  65. package/dist/node_modules/bl/README.md +0 -247
  66. package/dist/node_modules/bl/bl.js +0 -84
  67. package/dist/node_modules/bl/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  68. package/dist/node_modules/bl/node_modules/readable-stream/GOVERNANCE.md +0 -136
  69. package/dist/node_modules/bl/node_modules/readable-stream/LICENSE +0 -47
  70. package/dist/node_modules/bl/node_modules/readable-stream/README.md +0 -106
  71. package/dist/node_modules/bl/node_modules/readable-stream/errors-browser.js +0 -127
  72. package/dist/node_modules/bl/node_modules/readable-stream/errors.js +0 -116
  73. package/dist/node_modules/bl/node_modules/readable-stream/experimentalWarning.js +0 -17
  74. package/dist/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js +0 -139
  75. package/dist/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js +0 -39
  76. package/dist/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js +0 -1124
  77. package/dist/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js +0 -201
  78. package/dist/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js +0 -697
  79. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -207
  80. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -210
  81. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -105
  82. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -104
  83. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  84. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js +0 -64
  85. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -97
  86. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js +0 -27
  87. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  88. package/dist/node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  89. package/dist/node_modules/bl/node_modules/readable-stream/package.json +0 -97
  90. package/dist/node_modules/bl/node_modules/readable-stream/readable-browser.js +0 -9
  91. package/dist/node_modules/bl/node_modules/readable-stream/readable.js +0 -16
  92. package/dist/node_modules/bl/package.json +0 -69
  93. package/dist/node_modules/bl/test/convert.js +0 -21
  94. package/dist/node_modules/bl/test/indexOf.js +0 -492
  95. package/dist/node_modules/bl/test/isBufferList.js +0 -32
  96. package/dist/node_modules/bl/test/test.js +0 -869
  97. package/dist/node_modules/buffer/AUTHORS.md +0 -70
  98. package/dist/node_modules/buffer/LICENSE +0 -21
  99. package/dist/node_modules/buffer/README.md +0 -410
  100. package/dist/node_modules/buffer/index.d.ts +0 -186
  101. package/dist/node_modules/buffer/index.js +0 -1817
  102. package/dist/node_modules/buffer/package.json +0 -127
  103. package/dist/node_modules/chownr/LICENSE +0 -15
  104. package/dist/node_modules/chownr/README.md +0 -3
  105. package/dist/node_modules/chownr/chownr.js +0 -167
  106. package/dist/node_modules/chownr/package.json +0 -62
  107. package/dist/node_modules/code-point-at/index.js +0 -32
  108. package/dist/node_modules/code-point-at/license +0 -21
  109. package/dist/node_modules/code-point-at/package.json +0 -70
  110. package/dist/node_modules/code-point-at/readme.md +0 -32
  111. package/dist/node_modules/color/LICENSE +0 -21
  112. package/dist/node_modules/color/README.md +0 -123
  113. package/dist/node_modules/color/index.js +0 -497
  114. package/dist/node_modules/color/package.json +0 -74
  115. package/dist/node_modules/color-convert/CHANGELOG.md +0 -54
  116. package/dist/node_modules/color-convert/LICENSE +0 -21
  117. package/dist/node_modules/color-convert/README.md +0 -68
  118. package/dist/node_modules/color-convert/conversions.js +0 -839
  119. package/dist/node_modules/color-convert/index.js +0 -81
  120. package/dist/node_modules/color-convert/package.json +0 -83
  121. package/dist/node_modules/color-convert/route.js +0 -97
  122. package/dist/node_modules/color-name/LICENSE +0 -8
  123. package/dist/node_modules/color-name/README.md +0 -11
  124. package/dist/node_modules/color-name/index.js +0 -152
  125. package/dist/node_modules/color-name/package.json +0 -57
  126. package/dist/node_modules/color-string/LICENSE +0 -21
  127. package/dist/node_modules/color-string/README.md +0 -62
  128. package/dist/node_modules/color-string/index.js +0 -242
  129. package/dist/node_modules/color-string/package.json +0 -81
  130. package/dist/node_modules/console-control-strings/LICENSE +0 -13
  131. package/dist/node_modules/console-control-strings/README.md +0 -145
  132. package/dist/node_modules/console-control-strings/README.md~ +0 -140
  133. package/dist/node_modules/console-control-strings/index.js +0 -125
  134. package/dist/node_modules/console-control-strings/package.json +0 -61
  135. package/dist/node_modules/core-util-is/LICENSE +0 -19
  136. package/dist/node_modules/core-util-is/README.md +0 -3
  137. package/dist/node_modules/core-util-is/lib/util.js +0 -107
  138. package/dist/node_modules/core-util-is/package.json +0 -68
  139. package/dist/node_modules/decompress-response/index.d.ts +0 -22
  140. package/dist/node_modules/decompress-response/index.js +0 -58
  141. package/dist/node_modules/decompress-response/license +0 -9
  142. package/dist/node_modules/decompress-response/package.json +0 -88
  143. package/dist/node_modules/decompress-response/readme.md +0 -48
  144. package/dist/node_modules/deep-extend/CHANGELOG.md +0 -46
  145. package/dist/node_modules/deep-extend/LICENSE +0 -20
  146. package/dist/node_modules/deep-extend/README.md +0 -91
  147. package/dist/node_modules/deep-extend/index.js +0 -1
  148. package/dist/node_modules/deep-extend/lib/deep-extend.js +0 -150
  149. package/dist/node_modules/deep-extend/package.json +0 -92
  150. package/dist/node_modules/delegates/History.md +0 -22
  151. package/dist/node_modules/delegates/License +0 -20
  152. package/dist/node_modules/delegates/Makefile +0 -8
  153. package/dist/node_modules/delegates/Readme.md +0 -94
  154. package/dist/node_modules/delegates/index.js +0 -121
  155. package/dist/node_modules/delegates/package.json +0 -48
  156. package/dist/node_modules/delegates/test/index.js +0 -94
  157. package/dist/node_modules/detect-libc/LICENSE +0 -201
  158. package/dist/node_modules/detect-libc/README.md +0 -78
  159. package/dist/node_modules/detect-libc/bin/detect-libc.js +0 -18
  160. package/dist/node_modules/detect-libc/lib/detect-libc.js +0 -92
  161. package/dist/node_modules/detect-libc/package.json +0 -70
  162. package/dist/node_modules/end-of-stream/LICENSE +0 -21
  163. package/dist/node_modules/end-of-stream/README.md +0 -54
  164. package/dist/node_modules/end-of-stream/index.js +0 -94
  165. package/dist/node_modules/end-of-stream/package.json +0 -66
  166. package/dist/node_modules/expand-template/.travis.yml +0 -6
  167. package/dist/node_modules/expand-template/LICENSE +0 -21
  168. package/dist/node_modules/expand-template/README.md +0 -43
  169. package/dist/node_modules/expand-template/index.js +0 -26
  170. package/dist/node_modules/expand-template/package.json +0 -60
  171. package/dist/node_modules/expand-template/test.js +0 -67
  172. package/dist/node_modules/fs-constants/LICENSE +0 -21
  173. package/dist/node_modules/fs-constants/README.md +0 -26
  174. package/dist/node_modules/fs-constants/browser.js +0 -1
  175. package/dist/node_modules/fs-constants/index.js +0 -1
  176. package/dist/node_modules/fs-constants/package.json +0 -47
  177. package/dist/node_modules/gauge/CHANGELOG.md +0 -160
  178. package/dist/node_modules/gauge/LICENSE +0 -13
  179. package/dist/node_modules/gauge/README.md +0 -399
  180. package/dist/node_modules/gauge/base-theme.js +0 -14
  181. package/dist/node_modules/gauge/error.js +0 -24
  182. package/dist/node_modules/gauge/has-color.js +0 -12
  183. package/dist/node_modules/gauge/index.js +0 -233
  184. package/dist/node_modules/gauge/package.json +0 -91
  185. package/dist/node_modules/gauge/plumbing.js +0 -48
  186. package/dist/node_modules/gauge/process.js +0 -3
  187. package/dist/node_modules/gauge/progress-bar.js +0 -35
  188. package/dist/node_modules/gauge/render-template.js +0 -181
  189. package/dist/node_modules/gauge/set-immediate.js +0 -7
  190. package/dist/node_modules/gauge/set-interval.js +0 -3
  191. package/dist/node_modules/gauge/spin.js +0 -5
  192. package/dist/node_modules/gauge/template-item.js +0 -73
  193. package/dist/node_modules/gauge/theme-set.js +0 -115
  194. package/dist/node_modules/gauge/themes.js +0 -54
  195. package/dist/node_modules/gauge/wide-truncate.js +0 -25
  196. package/dist/node_modules/github-from-package/.travis.yml +0 -4
  197. package/dist/node_modules/github-from-package/LICENSE +0 -18
  198. package/dist/node_modules/github-from-package/example/package.json +0 -8
  199. package/dist/node_modules/github-from-package/example/url.js +0 -3
  200. package/dist/node_modules/github-from-package/index.js +0 -17
  201. package/dist/node_modules/github-from-package/package.json +0 -58
  202. package/dist/node_modules/github-from-package/readme.markdown +0 -53
  203. package/dist/node_modules/github-from-package/test/a.json +0 -8
  204. package/dist/node_modules/github-from-package/test/b.json +0 -5
  205. package/dist/node_modules/github-from-package/test/c.json +0 -5
  206. package/dist/node_modules/github-from-package/test/d.json +0 -7
  207. package/dist/node_modules/github-from-package/test/e.json +0 -5
  208. package/dist/node_modules/github-from-package/test/url.js +0 -19
  209. package/dist/node_modules/has-unicode/LICENSE +0 -14
  210. package/dist/node_modules/has-unicode/README.md +0 -43
  211. package/dist/node_modules/has-unicode/index.js +0 -16
  212. package/dist/node_modules/has-unicode/package.json +0 -58
  213. package/dist/node_modules/ieee754/LICENSE +0 -11
  214. package/dist/node_modules/ieee754/README.md +0 -51
  215. package/dist/node_modules/ieee754/index.d.ts +0 -10
  216. package/dist/node_modules/ieee754/index.js +0 -85
  217. package/dist/node_modules/ieee754/package.json +0 -84
  218. package/dist/node_modules/inherits/LICENSE +0 -16
  219. package/dist/node_modules/inherits/README.md +0 -42
  220. package/dist/node_modules/inherits/inherits.js +0 -9
  221. package/dist/node_modules/inherits/inherits_browser.js +0 -27
  222. package/dist/node_modules/inherits/package.json +0 -65
  223. package/dist/node_modules/ini/LICENSE +0 -15
  224. package/dist/node_modules/ini/README.md +0 -102
  225. package/dist/node_modules/ini/ini.js +0 -206
  226. package/dist/node_modules/ini/package.json +0 -66
  227. package/dist/node_modules/is-arrayish/LICENSE +0 -21
  228. package/dist/node_modules/is-arrayish/README.md +0 -16
  229. package/dist/node_modules/is-arrayish/index.js +0 -9
  230. package/dist/node_modules/is-arrayish/package.json +0 -77
  231. package/dist/node_modules/is-arrayish/yarn-error.log +0 -1443
  232. package/dist/node_modules/is-fullwidth-code-point/index.js +0 -46
  233. package/dist/node_modules/is-fullwidth-code-point/license +0 -21
  234. package/dist/node_modules/is-fullwidth-code-point/package.json +0 -77
  235. package/dist/node_modules/is-fullwidth-code-point/readme.md +0 -39
  236. package/dist/node_modules/isarray/.travis.yml +0 -4
  237. package/dist/node_modules/isarray/Makefile +0 -6
  238. package/dist/node_modules/isarray/README.md +0 -60
  239. package/dist/node_modules/isarray/component.json +0 -19
  240. package/dist/node_modules/isarray/index.js +0 -5
  241. package/dist/node_modules/isarray/package.json +0 -73
  242. package/dist/node_modules/isarray/test.js +0 -20
  243. package/dist/node_modules/lru-cache/LICENSE +0 -15
  244. package/dist/node_modules/lru-cache/README.md +0 -166
  245. package/dist/node_modules/lru-cache/index.js +0 -334
  246. package/dist/node_modules/lru-cache/package.json +0 -69
  247. package/dist/node_modules/mimic-response/index.d.ts +0 -17
  248. package/dist/node_modules/mimic-response/index.js +0 -77
  249. package/dist/node_modules/mimic-response/license +0 -9
  250. package/dist/node_modules/mimic-response/package.json +0 -74
  251. package/dist/node_modules/mimic-response/readme.md +0 -78
  252. package/dist/node_modules/minimist/.travis.yml +0 -8
  253. package/dist/node_modules/minimist/LICENSE +0 -18
  254. package/dist/node_modules/minimist/example/parse.js +0 -2
  255. package/dist/node_modules/minimist/index.js +0 -245
  256. package/dist/node_modules/minimist/package.json +0 -74
  257. package/dist/node_modules/minimist/readme.markdown +0 -95
  258. package/dist/node_modules/minimist/test/all_bool.js +0 -32
  259. package/dist/node_modules/minimist/test/bool.js +0 -178
  260. package/dist/node_modules/minimist/test/dash.js +0 -31
  261. package/dist/node_modules/minimist/test/default_bool.js +0 -35
  262. package/dist/node_modules/minimist/test/dotted.js +0 -22
  263. package/dist/node_modules/minimist/test/kv_short.js +0 -16
  264. package/dist/node_modules/minimist/test/long.js +0 -31
  265. package/dist/node_modules/minimist/test/num.js +0 -36
  266. package/dist/node_modules/minimist/test/parse.js +0 -197
  267. package/dist/node_modules/minimist/test/parse_modified.js +0 -9
  268. package/dist/node_modules/minimist/test/proto.js +0 -44
  269. package/dist/node_modules/minimist/test/short.js +0 -67
  270. package/dist/node_modules/minimist/test/stop_early.js +0 -15
  271. package/dist/node_modules/minimist/test/unknown.js +0 -102
  272. package/dist/node_modules/minimist/test/whitespace.js +0 -8
  273. package/dist/node_modules/mkdirp-classic/LICENSE +0 -21
  274. package/dist/node_modules/mkdirp-classic/README.md +0 -18
  275. package/dist/node_modules/mkdirp-classic/index.js +0 -98
  276. package/dist/node_modules/mkdirp-classic/package.json +0 -47
  277. package/dist/node_modules/napi-build-utils/LICENSE +0 -21
  278. package/dist/node_modules/napi-build-utils/README.md +0 -48
  279. package/dist/node_modules/napi-build-utils/index.js +0 -213
  280. package/dist/node_modules/napi-build-utils/index.md +0 -81
  281. package/dist/node_modules/napi-build-utils/package.json +0 -68
  282. package/dist/node_modules/node-abi/.circleci/config.yml +0 -63
  283. package/dist/node_modules/node-abi/.github/workflows/update-abi.yml +0 -41
  284. package/dist/node_modules/node-abi/.releaserc.json +0 -9
  285. package/dist/node_modules/node-abi/CODE_OF_CONDUCT.md +0 -73
  286. package/dist/node_modules/node-abi/CONTRIBUTING.md +0 -53
  287. package/dist/node_modules/node-abi/LICENSE +0 -21
  288. package/dist/node_modules/node-abi/README.md +0 -50
  289. package/dist/node_modules/node-abi/abi_registry.json +0 -179
  290. package/dist/node_modules/node-abi/index.js +0 -179
  291. package/dist/node_modules/node-abi/package.json +0 -66
  292. package/dist/node_modules/node-abi/scripts/update-abi-registry.js +0 -119
  293. package/dist/node_modules/node-abi/test/index.js +0 -166
  294. package/dist/node_modules/node-addon-api/LICENSE.md +0 -13
  295. package/dist/node_modules/node-addon-api/README.md +0 -293
  296. package/dist/node_modules/node-addon-api/common.gypi +0 -21
  297. package/dist/node_modules/node-addon-api/except.gypi +0 -25
  298. package/dist/node_modules/node-addon-api/index.js +0 -11
  299. package/dist/node_modules/node-addon-api/napi-inl.deprecated.h +0 -192
  300. package/dist/node_modules/node-addon-api/napi-inl.h +0 -6209
  301. package/dist/node_modules/node-addon-api/napi.h +0 -2983
  302. package/dist/node_modules/node-addon-api/node_api.gyp +0 -9
  303. package/dist/node_modules/node-addon-api/noexcept.gypi +0 -26
  304. package/dist/node_modules/node-addon-api/nothing.c +0 -0
  305. package/dist/node_modules/node-addon-api/package-support.json +0 -21
  306. package/dist/node_modules/node-addon-api/package.json +0 -422
  307. package/dist/node_modules/node-addon-api/tools/README.md +0 -73
  308. package/dist/node_modules/node-addon-api/tools/check-napi.js +0 -100
  309. package/dist/node_modules/node-addon-api/tools/clang-format.js +0 -68
  310. package/dist/node_modules/node-addon-api/tools/conversion.js +0 -309
  311. package/dist/node_modules/node-addon-api/tools/eslint-format.js +0 -71
  312. package/dist/node_modules/npmlog/CHANGELOG.md +0 -49
  313. package/dist/node_modules/npmlog/LICENSE +0 -15
  314. package/dist/node_modules/npmlog/README.md +0 -216
  315. package/dist/node_modules/npmlog/log.js +0 -309
  316. package/dist/node_modules/npmlog/package.json +0 -61
  317. package/dist/node_modules/number-is-nan/index.js +0 -4
  318. package/dist/node_modules/number-is-nan/license +0 -21
  319. package/dist/node_modules/number-is-nan/package.json +0 -67
  320. package/dist/node_modules/number-is-nan/readme.md +0 -28
  321. package/dist/node_modules/object-assign/index.js +0 -90
  322. package/dist/node_modules/object-assign/license +0 -21
  323. package/dist/node_modules/object-assign/package.json +0 -74
  324. package/dist/node_modules/object-assign/readme.md +0 -61
  325. package/dist/node_modules/once/LICENSE +0 -15
  326. package/dist/node_modules/once/README.md +0 -79
  327. package/dist/node_modules/once/once.js +0 -42
  328. package/dist/node_modules/once/package.json +0 -68
  329. package/dist/node_modules/prebuild-install/CHANGELOG.md +0 -98
  330. package/dist/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  331. package/dist/node_modules/prebuild-install/LICENSE +0 -21
  332. package/dist/node_modules/prebuild-install/README.md +0 -159
  333. package/dist/node_modules/prebuild-install/asset.js +0 -44
  334. package/dist/node_modules/prebuild-install/bin.js +0 -78
  335. package/dist/node_modules/prebuild-install/download.js +0 -142
  336. package/dist/node_modules/prebuild-install/error.js +0 -14
  337. package/dist/node_modules/prebuild-install/help.txt +0 -16
  338. package/dist/node_modules/prebuild-install/index.js +0 -1
  339. package/dist/node_modules/prebuild-install/log.js +0 -25
  340. package/dist/node_modules/prebuild-install/node_modules/detect-libc/LICENSE +0 -201
  341. package/dist/node_modules/prebuild-install/node_modules/detect-libc/README.md +0 -160
  342. package/dist/node_modules/prebuild-install/node_modules/detect-libc/index.d.ts +0 -11
  343. package/dist/node_modules/prebuild-install/node_modules/detect-libc/lib/detect-libc.js +0 -178
  344. package/dist/node_modules/prebuild-install/node_modules/detect-libc/lib/process.js +0 -16
  345. package/dist/node_modules/prebuild-install/node_modules/detect-libc/package.json +0 -71
  346. package/dist/node_modules/prebuild-install/package.json +0 -126
  347. package/dist/node_modules/prebuild-install/proxy.js +0 -35
  348. package/dist/node_modules/prebuild-install/rc.js +0 -60
  349. package/dist/node_modules/prebuild-install/util.js +0 -143
  350. package/dist/node_modules/process-nextick-args/index.js +0 -45
  351. package/dist/node_modules/process-nextick-args/license.md +0 -19
  352. package/dist/node_modules/process-nextick-args/package.json +0 -50
  353. package/dist/node_modules/process-nextick-args/readme.md +0 -18
  354. package/dist/node_modules/pump/.travis.yml +0 -5
  355. package/dist/node_modules/pump/LICENSE +0 -21
  356. package/dist/node_modules/pump/README.md +0 -65
  357. package/dist/node_modules/pump/index.js +0 -82
  358. package/dist/node_modules/pump/package.json +0 -60
  359. package/dist/node_modules/pump/test-browser.js +0 -66
  360. package/dist/node_modules/pump/test-node.js +0 -53
  361. package/dist/node_modules/rc/LICENSE.APACHE2 +0 -15
  362. package/dist/node_modules/rc/LICENSE.BSD +0 -26
  363. package/dist/node_modules/rc/LICENSE.MIT +0 -24
  364. package/dist/node_modules/rc/README.md +0 -227
  365. package/dist/node_modules/rc/browser.js +0 -7
  366. package/dist/node_modules/rc/cli.js +0 -4
  367. package/dist/node_modules/rc/index.js +0 -53
  368. package/dist/node_modules/rc/lib/utils.js +0 -104
  369. package/dist/node_modules/rc/package.json +0 -64
  370. package/dist/node_modules/rc/test/ini.js +0 -16
  371. package/dist/node_modules/rc/test/nested-env-vars.js +0 -50
  372. package/dist/node_modules/rc/test/test.js +0 -59
  373. package/dist/node_modules/readable-stream/.travis.yml +0 -34
  374. package/dist/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  375. package/dist/node_modules/readable-stream/GOVERNANCE.md +0 -136
  376. package/dist/node_modules/readable-stream/LICENSE +0 -47
  377. package/dist/node_modules/readable-stream/README.md +0 -58
  378. package/dist/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  379. package/dist/node_modules/readable-stream/duplex-browser.js +0 -1
  380. package/dist/node_modules/readable-stream/duplex.js +0 -1
  381. package/dist/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  382. package/dist/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  383. package/dist/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  384. package/dist/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  385. package/dist/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  386. package/dist/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  387. package/dist/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  388. package/dist/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  389. package/dist/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  390. package/dist/node_modules/readable-stream/package.json +0 -81
  391. package/dist/node_modules/readable-stream/passthrough.js +0 -1
  392. package/dist/node_modules/readable-stream/readable-browser.js +0 -7
  393. package/dist/node_modules/readable-stream/readable.js +0 -19
  394. package/dist/node_modules/readable-stream/transform.js +0 -1
  395. package/dist/node_modules/readable-stream/writable-browser.js +0 -1
  396. package/dist/node_modules/readable-stream/writable.js +0 -8
  397. package/dist/node_modules/safe-buffer/LICENSE +0 -21
  398. package/dist/node_modules/safe-buffer/README.md +0 -584
  399. package/dist/node_modules/safe-buffer/index.d.ts +0 -187
  400. package/dist/node_modules/safe-buffer/index.js +0 -62
  401. package/dist/node_modules/safe-buffer/package.json +0 -64
  402. package/dist/node_modules/semver/CHANGELOG.md +0 -111
  403. package/dist/node_modules/semver/LICENSE +0 -15
  404. package/dist/node_modules/semver/README.md +0 -566
  405. package/dist/node_modules/semver/bin/semver.js +0 -173
  406. package/dist/node_modules/semver/classes/comparator.js +0 -135
  407. package/dist/node_modules/semver/classes/index.js +0 -5
  408. package/dist/node_modules/semver/classes/range.js +0 -510
  409. package/dist/node_modules/semver/classes/semver.js +0 -287
  410. package/dist/node_modules/semver/functions/clean.js +0 -6
  411. package/dist/node_modules/semver/functions/cmp.js +0 -48
  412. package/dist/node_modules/semver/functions/coerce.js +0 -51
  413. package/dist/node_modules/semver/functions/compare-build.js +0 -7
  414. package/dist/node_modules/semver/functions/compare-loose.js +0 -3
  415. package/dist/node_modules/semver/functions/compare.js +0 -5
  416. package/dist/node_modules/semver/functions/diff.js +0 -23
  417. package/dist/node_modules/semver/functions/eq.js +0 -3
  418. package/dist/node_modules/semver/functions/gt.js +0 -3
  419. package/dist/node_modules/semver/functions/gte.js +0 -3
  420. package/dist/node_modules/semver/functions/inc.js +0 -15
  421. package/dist/node_modules/semver/functions/lt.js +0 -3
  422. package/dist/node_modules/semver/functions/lte.js +0 -3
  423. package/dist/node_modules/semver/functions/major.js +0 -3
  424. package/dist/node_modules/semver/functions/minor.js +0 -3
  425. package/dist/node_modules/semver/functions/neq.js +0 -3
  426. package/dist/node_modules/semver/functions/parse.js +0 -33
  427. package/dist/node_modules/semver/functions/patch.js +0 -3
  428. package/dist/node_modules/semver/functions/prerelease.js +0 -6
  429. package/dist/node_modules/semver/functions/rcompare.js +0 -3
  430. package/dist/node_modules/semver/functions/rsort.js +0 -3
  431. package/dist/node_modules/semver/functions/satisfies.js +0 -10
  432. package/dist/node_modules/semver/functions/sort.js +0 -3
  433. package/dist/node_modules/semver/functions/valid.js +0 -6
  434. package/dist/node_modules/semver/index.js +0 -48
  435. package/dist/node_modules/semver/internal/constants.js +0 -17
  436. package/dist/node_modules/semver/internal/debug.js +0 -9
  437. package/dist/node_modules/semver/internal/identifiers.js +0 -23
  438. package/dist/node_modules/semver/internal/parse-options.js +0 -11
  439. package/dist/node_modules/semver/internal/re.js +0 -182
  440. package/dist/node_modules/semver/package.json +0 -74
  441. package/dist/node_modules/semver/preload.js +0 -2
  442. package/dist/node_modules/semver/range.bnf +0 -16
  443. package/dist/node_modules/semver/ranges/gtr.js +0 -4
  444. package/dist/node_modules/semver/ranges/intersects.js +0 -7
  445. package/dist/node_modules/semver/ranges/ltr.js +0 -4
  446. package/dist/node_modules/semver/ranges/max-satisfying.js +0 -25
  447. package/dist/node_modules/semver/ranges/min-satisfying.js +0 -24
  448. package/dist/node_modules/semver/ranges/min-version.js +0 -60
  449. package/dist/node_modules/semver/ranges/outside.js +0 -80
  450. package/dist/node_modules/semver/ranges/simplify.js +0 -44
  451. package/dist/node_modules/semver/ranges/subset.js +0 -222
  452. package/dist/node_modules/semver/ranges/to-comparators.js +0 -8
  453. package/dist/node_modules/semver/ranges/valid.js +0 -11
  454. package/dist/node_modules/set-blocking/CHANGELOG.md +0 -26
  455. package/dist/node_modules/set-blocking/LICENSE.txt +0 -14
  456. package/dist/node_modules/set-blocking/README.md +0 -31
  457. package/dist/node_modules/set-blocking/index.js +0 -7
  458. package/dist/node_modules/set-blocking/package.json +0 -70
  459. package/dist/node_modules/sharp/LICENSE +0 -191
  460. package/dist/node_modules/sharp/README.md +0 -117
  461. package/dist/node_modules/sharp/binding.gyp +0 -233
  462. package/dist/node_modules/sharp/build/Release/sharp-linux-x64.node +0 -0
  463. package/dist/node_modules/sharp/install/can-compile.js +0 -11
  464. package/dist/node_modules/sharp/install/dll-copy.js +0 -37
  465. package/dist/node_modules/sharp/install/libvips.js +0 -176
  466. package/dist/node_modules/sharp/lib/agent.js +0 -40
  467. package/dist/node_modules/sharp/lib/channel.js +0 -171
  468. package/dist/node_modules/sharp/lib/colour.js +0 -171
  469. package/dist/node_modules/sharp/lib/composite.js +0 -178
  470. package/dist/node_modules/sharp/lib/constructor.js +0 -379
  471. package/dist/node_modules/sharp/lib/index.js +0 -13
  472. package/dist/node_modules/sharp/lib/input.js +0 -471
  473. package/dist/node_modules/sharp/lib/is.js +0 -143
  474. package/dist/node_modules/sharp/lib/libvips.js +0 -108
  475. package/dist/node_modules/sharp/lib/operation.js +0 -671
  476. package/dist/node_modules/sharp/lib/output.js +0 -1166
  477. package/dist/node_modules/sharp/lib/platform.js +0 -25
  478. package/dist/node_modules/sharp/lib/resize.js +0 -454
  479. package/dist/node_modules/sharp/lib/sharp.js +0 -31
  480. package/dist/node_modules/sharp/lib/utility.js +0 -180
  481. package/dist/node_modules/sharp/package.json +0 -436
  482. package/dist/node_modules/sharp/src/common.cc +0 -883
  483. package/dist/node_modules/sharp/src/common.h +0 -328
  484. package/dist/node_modules/sharp/src/libvips/cplusplus/VConnection.cpp +0 -152
  485. package/dist/node_modules/sharp/src/libvips/cplusplus/VError.cpp +0 -50
  486. package/dist/node_modules/sharp/src/libvips/cplusplus/VImage.cpp +0 -1505
  487. package/dist/node_modules/sharp/src/libvips/cplusplus/VInterpolate.cpp +0 -63
  488. package/dist/node_modules/sharp/src/libvips/cplusplus/vips-operators.cpp +0 -3710
  489. package/dist/node_modules/sharp/src/metadata.cc +0 -285
  490. package/dist/node_modules/sharp/src/metadata.h +0 -91
  491. package/dist/node_modules/sharp/src/operations.cc +0 -311
  492. package/dist/node_modules/sharp/src/operations.h +0 -113
  493. package/dist/node_modules/sharp/src/pipeline.cc +0 -1584
  494. package/dist/node_modules/sharp/src/pipeline.h +0 -345
  495. package/dist/node_modules/sharp/src/sharp.cc +0 -52
  496. package/dist/node_modules/sharp/src/stats.cc +0 -193
  497. package/dist/node_modules/sharp/src/stats.h +0 -70
  498. package/dist/node_modules/sharp/src/utilities.cc +0 -243
  499. package/dist/node_modules/sharp/src/utilities.h +0 -29
  500. package/dist/node_modules/sharp/vendor/8.11.3/linux-x64/THIRD-PARTY-NOTICES.md +0 -41
  501. package/dist/node_modules/sharp/vendor/8.11.3/linux-x64/lib/libvips-cpp.so.42 +0 -0
  502. package/dist/node_modules/sharp/vendor/8.11.3/linux-x64/platform.json +0 -1
  503. package/dist/node_modules/sharp/vendor/8.11.3/linux-x64/versions.json +0 -30
  504. package/dist/node_modules/signal-exit/LICENSE.txt +0 -16
  505. package/dist/node_modules/signal-exit/README.md +0 -39
  506. package/dist/node_modules/signal-exit/index.js +0 -200
  507. package/dist/node_modules/signal-exit/package.json +0 -66
  508. package/dist/node_modules/signal-exit/signals.js +0 -53
  509. package/dist/node_modules/simple-concat/.travis.yml +0 -3
  510. package/dist/node_modules/simple-concat/LICENSE +0 -20
  511. package/dist/node_modules/simple-concat/README.md +0 -44
  512. package/dist/node_modules/simple-concat/index.js +0 -15
  513. package/dist/node_modules/simple-concat/package.json +0 -72
  514. package/dist/node_modules/simple-concat/test/basic.js +0 -41
  515. package/dist/node_modules/simple-get/.github/dependabot.yml +0 -15
  516. package/dist/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  517. package/dist/node_modules/simple-get/LICENSE +0 -20
  518. package/dist/node_modules/simple-get/README.md +0 -333
  519. package/dist/node_modules/simple-get/index.js +0 -108
  520. package/dist/node_modules/simple-get/package.json +0 -93
  521. package/dist/node_modules/simple-swizzle/LICENSE +0 -21
  522. package/dist/node_modules/simple-swizzle/README.md +0 -39
  523. package/dist/node_modules/simple-swizzle/index.js +0 -29
  524. package/dist/node_modules/simple-swizzle/package.json +0 -71
  525. package/dist/node_modules/string-width/index.js +0 -37
  526. package/dist/node_modules/string-width/license +0 -21
  527. package/dist/node_modules/string-width/package.json +0 -89
  528. package/dist/node_modules/string-width/readme.md +0 -42
  529. package/dist/node_modules/string_decoder/.travis.yml +0 -50
  530. package/dist/node_modules/string_decoder/LICENSE +0 -48
  531. package/dist/node_modules/string_decoder/README.md +0 -47
  532. package/dist/node_modules/string_decoder/lib/string_decoder.js +0 -296
  533. package/dist/node_modules/string_decoder/package.json +0 -61
  534. package/dist/node_modules/strip-ansi/index.js +0 -6
  535. package/dist/node_modules/strip-ansi/license +0 -21
  536. package/dist/node_modules/strip-ansi/package.json +0 -102
  537. package/dist/node_modules/strip-ansi/readme.md +0 -33
  538. package/dist/node_modules/strip-json-comments/index.js +0 -70
  539. package/dist/node_modules/strip-json-comments/license +0 -21
  540. package/dist/node_modules/strip-json-comments/package.json +0 -74
  541. package/dist/node_modules/strip-json-comments/readme.md +0 -64
  542. package/dist/node_modules/tar-fs/.travis.yml +0 -6
  543. package/dist/node_modules/tar-fs/LICENSE +0 -21
  544. package/dist/node_modules/tar-fs/README.md +0 -165
  545. package/dist/node_modules/tar-fs/index.js +0 -351
  546. package/dist/node_modules/tar-fs/package.json +0 -69
  547. package/dist/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  548. package/dist/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  549. package/dist/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  550. package/dist/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  551. package/dist/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  552. package/dist/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  553. package/dist/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  554. package/dist/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  555. package/dist/node_modules/tar-fs/test/fixtures/e/file +0 -0
  556. package/dist/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  557. package/dist/node_modules/tar-fs/test/index.js +0 -346
  558. package/dist/node_modules/tar-stream/LICENSE +0 -21
  559. package/dist/node_modules/tar-stream/README.md +0 -168
  560. package/dist/node_modules/tar-stream/extract.js +0 -257
  561. package/dist/node_modules/tar-stream/headers.js +0 -295
  562. package/dist/node_modules/tar-stream/index.js +0 -2
  563. package/dist/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  564. package/dist/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
  565. package/dist/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
  566. package/dist/node_modules/tar-stream/node_modules/readable-stream/README.md +0 -106
  567. package/dist/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +0 -127
  568. package/dist/node_modules/tar-stream/node_modules/readable-stream/errors.js +0 -116
  569. package/dist/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +0 -17
  570. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +0 -139
  571. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -39
  572. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +0 -1124
  573. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +0 -201
  574. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +0 -697
  575. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -207
  576. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -210
  577. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -105
  578. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -104
  579. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  580. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +0 -64
  581. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -97
  582. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +0 -27
  583. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  584. package/dist/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  585. package/dist/node_modules/tar-stream/node_modules/readable-stream/package.json +0 -97
  586. package/dist/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +0 -9
  587. package/dist/node_modules/tar-stream/node_modules/readable-stream/readable.js +0 -16
  588. package/dist/node_modules/tar-stream/pack.js +0 -255
  589. package/dist/node_modules/tar-stream/package.json +0 -90
  590. package/dist/node_modules/tar-stream/sandbox.js +0 -11
  591. package/dist/node_modules/tunnel-agent/LICENSE +0 -55
  592. package/dist/node_modules/tunnel-agent/README.md +0 -4
  593. package/dist/node_modules/tunnel-agent/index.js +0 -244
  594. package/dist/node_modules/tunnel-agent/package.json +0 -56
  595. package/dist/node_modules/util-deprecate/History.md +0 -16
  596. package/dist/node_modules/util-deprecate/LICENSE +0 -24
  597. package/dist/node_modules/util-deprecate/README.md +0 -53
  598. package/dist/node_modules/util-deprecate/browser.js +0 -67
  599. package/dist/node_modules/util-deprecate/node.js +0 -6
  600. package/dist/node_modules/util-deprecate/package.json +0 -58
  601. package/dist/node_modules/wide-align/LICENSE +0 -14
  602. package/dist/node_modules/wide-align/README.md +0 -47
  603. package/dist/node_modules/wide-align/align.js +0 -65
  604. package/dist/node_modules/wide-align/package.json +0 -66
  605. package/dist/node_modules/wrappy/LICENSE +0 -15
  606. package/dist/node_modules/wrappy/README.md +0 -36
  607. package/dist/node_modules/wrappy/package.json +0 -58
  608. package/dist/node_modules/wrappy/wrappy.js +0 -33
  609. package/dist/node_modules/yallist/LICENSE +0 -15
  610. package/dist/node_modules/yallist/README.md +0 -204
  611. package/dist/node_modules/yallist/iterator.js +0 -8
  612. package/dist/node_modules/yallist/package.json +0 -62
  613. package/dist/node_modules/yallist/yallist.js +0 -426
  614. package/dist/package-lock.json +0 -507
  615. package/dist/package.json +0 -63
  616. package/dist/static/expected_tile_2193_153_255_z7.png +0 -0
  617. package/dist/static/expected_tile_NZTM2000Quad_30_33_z6.png +0 -0
  618. package/dist/static/expected_tile_WebMercatorQuad_252_156_z8.png +0 -0
@@ -1,1019 +0,0 @@
1
- // Copyright Joyent, Inc. and other Node contributors.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a
4
- // copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to permit
8
- // persons to whom the Software is furnished to do so, subject to the
9
- // following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included
12
- // in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- 'use strict';
23
-
24
- /*<replacement>*/
25
-
26
- var pna = require('process-nextick-args');
27
- /*</replacement>*/
28
-
29
- module.exports = Readable;
30
-
31
- /*<replacement>*/
32
- var isArray = require('isarray');
33
- /*</replacement>*/
34
-
35
- /*<replacement>*/
36
- var Duplex;
37
- /*</replacement>*/
38
-
39
- Readable.ReadableState = ReadableState;
40
-
41
- /*<replacement>*/
42
- var EE = require('events').EventEmitter;
43
-
44
- var EElistenerCount = function (emitter, type) {
45
- return emitter.listeners(type).length;
46
- };
47
- /*</replacement>*/
48
-
49
- /*<replacement>*/
50
- var Stream = require('./internal/streams/stream');
51
- /*</replacement>*/
52
-
53
- /*<replacement>*/
54
-
55
- var Buffer = require('safe-buffer').Buffer;
56
- var OurUint8Array = global.Uint8Array || function () {};
57
- function _uint8ArrayToBuffer(chunk) {
58
- return Buffer.from(chunk);
59
- }
60
- function _isUint8Array(obj) {
61
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
62
- }
63
-
64
- /*</replacement>*/
65
-
66
- /*<replacement>*/
67
- var util = Object.create(require('core-util-is'));
68
- util.inherits = require('inherits');
69
- /*</replacement>*/
70
-
71
- /*<replacement>*/
72
- var debugUtil = require('util');
73
- var debug = void 0;
74
- if (debugUtil && debugUtil.debuglog) {
75
- debug = debugUtil.debuglog('stream');
76
- } else {
77
- debug = function () {};
78
- }
79
- /*</replacement>*/
80
-
81
- var BufferList = require('./internal/streams/BufferList');
82
- var destroyImpl = require('./internal/streams/destroy');
83
- var StringDecoder;
84
-
85
- util.inherits(Readable, Stream);
86
-
87
- var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
88
-
89
- function prependListener(emitter, event, fn) {
90
- // Sadly this is not cacheable as some libraries bundle their own
91
- // event emitter implementation with them.
92
- if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
93
-
94
- // This is a hack to make sure that our error handler is attached before any
95
- // userland ones. NEVER DO THIS. This is here only because this code needs
96
- // to continue to work with older versions of Node.js that do not include
97
- // the prependListener() method. The goal is to eventually remove this hack.
98
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
99
- }
100
-
101
- function ReadableState(options, stream) {
102
- Duplex = Duplex || require('./_stream_duplex');
103
-
104
- options = options || {};
105
-
106
- // Duplex streams are both readable and writable, but share
107
- // the same options object.
108
- // However, some cases require setting options to different
109
- // values for the readable and the writable sides of the duplex stream.
110
- // These options can be provided separately as readableXXX and writableXXX.
111
- var isDuplex = stream instanceof Duplex;
112
-
113
- // object stream flag. Used to make read(n) ignore n and to
114
- // make all the buffer merging and length checks go away
115
- this.objectMode = !!options.objectMode;
116
-
117
- if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
118
-
119
- // the point at which it stops calling _read() to fill the buffer
120
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
121
- var hwm = options.highWaterMark;
122
- var readableHwm = options.readableHighWaterMark;
123
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
124
-
125
- if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
126
-
127
- // cast to ints.
128
- this.highWaterMark = Math.floor(this.highWaterMark);
129
-
130
- // A linked list is used to store data chunks instead of an array because the
131
- // linked list can remove elements from the beginning faster than
132
- // array.shift()
133
- this.buffer = new BufferList();
134
- this.length = 0;
135
- this.pipes = null;
136
- this.pipesCount = 0;
137
- this.flowing = null;
138
- this.ended = false;
139
- this.endEmitted = false;
140
- this.reading = false;
141
-
142
- // a flag to be able to tell if the event 'readable'/'data' is emitted
143
- // immediately, or on a later tick. We set this to true at first, because
144
- // any actions that shouldn't happen until "later" should generally also
145
- // not happen before the first read call.
146
- this.sync = true;
147
-
148
- // whenever we return null, then we set a flag to say
149
- // that we're awaiting a 'readable' event emission.
150
- this.needReadable = false;
151
- this.emittedReadable = false;
152
- this.readableListening = false;
153
- this.resumeScheduled = false;
154
-
155
- // has it been destroyed
156
- this.destroyed = false;
157
-
158
- // Crypto is kind of old and crusty. Historically, its default string
159
- // encoding is 'binary' so we have to make this configurable.
160
- // Everything else in the universe uses 'utf8', though.
161
- this.defaultEncoding = options.defaultEncoding || 'utf8';
162
-
163
- // the number of writers that are awaiting a drain event in .pipe()s
164
- this.awaitDrain = 0;
165
-
166
- // if true, a maybeReadMore has been scheduled
167
- this.readingMore = false;
168
-
169
- this.decoder = null;
170
- this.encoding = null;
171
- if (options.encoding) {
172
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
173
- this.decoder = new StringDecoder(options.encoding);
174
- this.encoding = options.encoding;
175
- }
176
- }
177
-
178
- function Readable(options) {
179
- Duplex = Duplex || require('./_stream_duplex');
180
-
181
- if (!(this instanceof Readable)) return new Readable(options);
182
-
183
- this._readableState = new ReadableState(options, this);
184
-
185
- // legacy
186
- this.readable = true;
187
-
188
- if (options) {
189
- if (typeof options.read === 'function') this._read = options.read;
190
-
191
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
192
- }
193
-
194
- Stream.call(this);
195
- }
196
-
197
- Object.defineProperty(Readable.prototype, 'destroyed', {
198
- get: function () {
199
- if (this._readableState === undefined) {
200
- return false;
201
- }
202
- return this._readableState.destroyed;
203
- },
204
- set: function (value) {
205
- // we ignore the value if the stream
206
- // has not been initialized yet
207
- if (!this._readableState) {
208
- return;
209
- }
210
-
211
- // backward compatibility, the user is explicitly
212
- // managing destroyed
213
- this._readableState.destroyed = value;
214
- }
215
- });
216
-
217
- Readable.prototype.destroy = destroyImpl.destroy;
218
- Readable.prototype._undestroy = destroyImpl.undestroy;
219
- Readable.prototype._destroy = function (err, cb) {
220
- this.push(null);
221
- cb(err);
222
- };
223
-
224
- // Manually shove something into the read() buffer.
225
- // This returns true if the highWaterMark has not been hit yet,
226
- // similar to how Writable.write() returns true if you should
227
- // write() some more.
228
- Readable.prototype.push = function (chunk, encoding) {
229
- var state = this._readableState;
230
- var skipChunkCheck;
231
-
232
- if (!state.objectMode) {
233
- if (typeof chunk === 'string') {
234
- encoding = encoding || state.defaultEncoding;
235
- if (encoding !== state.encoding) {
236
- chunk = Buffer.from(chunk, encoding);
237
- encoding = '';
238
- }
239
- skipChunkCheck = true;
240
- }
241
- } else {
242
- skipChunkCheck = true;
243
- }
244
-
245
- return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
246
- };
247
-
248
- // Unshift should *always* be something directly out of read()
249
- Readable.prototype.unshift = function (chunk) {
250
- return readableAddChunk(this, chunk, null, true, false);
251
- };
252
-
253
- function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
254
- var state = stream._readableState;
255
- if (chunk === null) {
256
- state.reading = false;
257
- onEofChunk(stream, state);
258
- } else {
259
- var er;
260
- if (!skipChunkCheck) er = chunkInvalid(state, chunk);
261
- if (er) {
262
- stream.emit('error', er);
263
- } else if (state.objectMode || chunk && chunk.length > 0) {
264
- if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
265
- chunk = _uint8ArrayToBuffer(chunk);
266
- }
267
-
268
- if (addToFront) {
269
- if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
270
- } else if (state.ended) {
271
- stream.emit('error', new Error('stream.push() after EOF'));
272
- } else {
273
- state.reading = false;
274
- if (state.decoder && !encoding) {
275
- chunk = state.decoder.write(chunk);
276
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
277
- } else {
278
- addChunk(stream, state, chunk, false);
279
- }
280
- }
281
- } else if (!addToFront) {
282
- state.reading = false;
283
- }
284
- }
285
-
286
- return needMoreData(state);
287
- }
288
-
289
- function addChunk(stream, state, chunk, addToFront) {
290
- if (state.flowing && state.length === 0 && !state.sync) {
291
- stream.emit('data', chunk);
292
- stream.read(0);
293
- } else {
294
- // update the buffer info.
295
- state.length += state.objectMode ? 1 : chunk.length;
296
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
297
-
298
- if (state.needReadable) emitReadable(stream);
299
- }
300
- maybeReadMore(stream, state);
301
- }
302
-
303
- function chunkInvalid(state, chunk) {
304
- var er;
305
- if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
306
- er = new TypeError('Invalid non-string/buffer chunk');
307
- }
308
- return er;
309
- }
310
-
311
- // if it's past the high water mark, we can push in some more.
312
- // Also, if we have no data yet, we can stand some
313
- // more bytes. This is to work around cases where hwm=0,
314
- // such as the repl. Also, if the push() triggered a
315
- // readable event, and the user called read(largeNumber) such that
316
- // needReadable was set, then we ought to push more, so that another
317
- // 'readable' event will be triggered.
318
- function needMoreData(state) {
319
- return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
320
- }
321
-
322
- Readable.prototype.isPaused = function () {
323
- return this._readableState.flowing === false;
324
- };
325
-
326
- // backwards compatibility.
327
- Readable.prototype.setEncoding = function (enc) {
328
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
329
- this._readableState.decoder = new StringDecoder(enc);
330
- this._readableState.encoding = enc;
331
- return this;
332
- };
333
-
334
- // Don't raise the hwm > 8MB
335
- var MAX_HWM = 0x800000;
336
- function computeNewHighWaterMark(n) {
337
- if (n >= MAX_HWM) {
338
- n = MAX_HWM;
339
- } else {
340
- // Get the next highest power of 2 to prevent increasing hwm excessively in
341
- // tiny amounts
342
- n--;
343
- n |= n >>> 1;
344
- n |= n >>> 2;
345
- n |= n >>> 4;
346
- n |= n >>> 8;
347
- n |= n >>> 16;
348
- n++;
349
- }
350
- return n;
351
- }
352
-
353
- // This function is designed to be inlinable, so please take care when making
354
- // changes to the function body.
355
- function howMuchToRead(n, state) {
356
- if (n <= 0 || state.length === 0 && state.ended) return 0;
357
- if (state.objectMode) return 1;
358
- if (n !== n) {
359
- // Only flow one buffer at a time
360
- if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
361
- }
362
- // If we're asking for more than the current hwm, then raise the hwm.
363
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
364
- if (n <= state.length) return n;
365
- // Don't have enough
366
- if (!state.ended) {
367
- state.needReadable = true;
368
- return 0;
369
- }
370
- return state.length;
371
- }
372
-
373
- // you can override either this method, or the async _read(n) below.
374
- Readable.prototype.read = function (n) {
375
- debug('read', n);
376
- n = parseInt(n, 10);
377
- var state = this._readableState;
378
- var nOrig = n;
379
-
380
- if (n !== 0) state.emittedReadable = false;
381
-
382
- // if we're doing read(0) to trigger a readable event, but we
383
- // already have a bunch of data in the buffer, then just trigger
384
- // the 'readable' event and move on.
385
- if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
386
- debug('read: emitReadable', state.length, state.ended);
387
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
388
- return null;
389
- }
390
-
391
- n = howMuchToRead(n, state);
392
-
393
- // if we've ended, and we're now clear, then finish it up.
394
- if (n === 0 && state.ended) {
395
- if (state.length === 0) endReadable(this);
396
- return null;
397
- }
398
-
399
- // All the actual chunk generation logic needs to be
400
- // *below* the call to _read. The reason is that in certain
401
- // synthetic stream cases, such as passthrough streams, _read
402
- // may be a completely synchronous operation which may change
403
- // the state of the read buffer, providing enough data when
404
- // before there was *not* enough.
405
- //
406
- // So, the steps are:
407
- // 1. Figure out what the state of things will be after we do
408
- // a read from the buffer.
409
- //
410
- // 2. If that resulting state will trigger a _read, then call _read.
411
- // Note that this may be asynchronous, or synchronous. Yes, it is
412
- // deeply ugly to write APIs this way, but that still doesn't mean
413
- // that the Readable class should behave improperly, as streams are
414
- // designed to be sync/async agnostic.
415
- // Take note if the _read call is sync or async (ie, if the read call
416
- // has returned yet), so that we know whether or not it's safe to emit
417
- // 'readable' etc.
418
- //
419
- // 3. Actually pull the requested chunks out of the buffer and return.
420
-
421
- // if we need a readable event, then we need to do some reading.
422
- var doRead = state.needReadable;
423
- debug('need readable', doRead);
424
-
425
- // if we currently have less than the highWaterMark, then also read some
426
- if (state.length === 0 || state.length - n < state.highWaterMark) {
427
- doRead = true;
428
- debug('length less than watermark', doRead);
429
- }
430
-
431
- // however, if we've ended, then there's no point, and if we're already
432
- // reading, then it's unnecessary.
433
- if (state.ended || state.reading) {
434
- doRead = false;
435
- debug('reading or ended', doRead);
436
- } else if (doRead) {
437
- debug('do read');
438
- state.reading = true;
439
- state.sync = true;
440
- // if the length is currently zero, then we *need* a readable event.
441
- if (state.length === 0) state.needReadable = true;
442
- // call internal read method
443
- this._read(state.highWaterMark);
444
- state.sync = false;
445
- // If _read pushed data synchronously, then `reading` will be false,
446
- // and we need to re-evaluate how much data we can return to the user.
447
- if (!state.reading) n = howMuchToRead(nOrig, state);
448
- }
449
-
450
- var ret;
451
- if (n > 0) ret = fromList(n, state);else ret = null;
452
-
453
- if (ret === null) {
454
- state.needReadable = true;
455
- n = 0;
456
- } else {
457
- state.length -= n;
458
- }
459
-
460
- if (state.length === 0) {
461
- // If we have nothing in the buffer, then we want to know
462
- // as soon as we *do* get something into the buffer.
463
- if (!state.ended) state.needReadable = true;
464
-
465
- // If we tried to read() past the EOF, then emit end on the next tick.
466
- if (nOrig !== n && state.ended) endReadable(this);
467
- }
468
-
469
- if (ret !== null) this.emit('data', ret);
470
-
471
- return ret;
472
- };
473
-
474
- function onEofChunk(stream, state) {
475
- if (state.ended) return;
476
- if (state.decoder) {
477
- var chunk = state.decoder.end();
478
- if (chunk && chunk.length) {
479
- state.buffer.push(chunk);
480
- state.length += state.objectMode ? 1 : chunk.length;
481
- }
482
- }
483
- state.ended = true;
484
-
485
- // emit 'readable' now to make sure it gets picked up.
486
- emitReadable(stream);
487
- }
488
-
489
- // Don't emit readable right away in sync mode, because this can trigger
490
- // another read() call => stack overflow. This way, it might trigger
491
- // a nextTick recursion warning, but that's not so bad.
492
- function emitReadable(stream) {
493
- var state = stream._readableState;
494
- state.needReadable = false;
495
- if (!state.emittedReadable) {
496
- debug('emitReadable', state.flowing);
497
- state.emittedReadable = true;
498
- if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
499
- }
500
- }
501
-
502
- function emitReadable_(stream) {
503
- debug('emit readable');
504
- stream.emit('readable');
505
- flow(stream);
506
- }
507
-
508
- // at this point, the user has presumably seen the 'readable' event,
509
- // and called read() to consume some data. that may have triggered
510
- // in turn another _read(n) call, in which case reading = true if
511
- // it's in progress.
512
- // However, if we're not ended, or reading, and the length < hwm,
513
- // then go ahead and try to read some more preemptively.
514
- function maybeReadMore(stream, state) {
515
- if (!state.readingMore) {
516
- state.readingMore = true;
517
- pna.nextTick(maybeReadMore_, stream, state);
518
- }
519
- }
520
-
521
- function maybeReadMore_(stream, state) {
522
- var len = state.length;
523
- while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
524
- debug('maybeReadMore read 0');
525
- stream.read(0);
526
- if (len === state.length)
527
- // didn't get any data, stop spinning.
528
- break;else len = state.length;
529
- }
530
- state.readingMore = false;
531
- }
532
-
533
- // abstract method. to be overridden in specific implementation classes.
534
- // call cb(er, data) where data is <= n in length.
535
- // for virtual (non-string, non-buffer) streams, "length" is somewhat
536
- // arbitrary, and perhaps not very meaningful.
537
- Readable.prototype._read = function (n) {
538
- this.emit('error', new Error('_read() is not implemented'));
539
- };
540
-
541
- Readable.prototype.pipe = function (dest, pipeOpts) {
542
- var src = this;
543
- var state = this._readableState;
544
-
545
- switch (state.pipesCount) {
546
- case 0:
547
- state.pipes = dest;
548
- break;
549
- case 1:
550
- state.pipes = [state.pipes, dest];
551
- break;
552
- default:
553
- state.pipes.push(dest);
554
- break;
555
- }
556
- state.pipesCount += 1;
557
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
558
-
559
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
560
-
561
- var endFn = doEnd ? onend : unpipe;
562
- if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
563
-
564
- dest.on('unpipe', onunpipe);
565
- function onunpipe(readable, unpipeInfo) {
566
- debug('onunpipe');
567
- if (readable === src) {
568
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
569
- unpipeInfo.hasUnpiped = true;
570
- cleanup();
571
- }
572
- }
573
- }
574
-
575
- function onend() {
576
- debug('onend');
577
- dest.end();
578
- }
579
-
580
- // when the dest drains, it reduces the awaitDrain counter
581
- // on the source. This would be more elegant with a .once()
582
- // handler in flow(), but adding and removing repeatedly is
583
- // too slow.
584
- var ondrain = pipeOnDrain(src);
585
- dest.on('drain', ondrain);
586
-
587
- var cleanedUp = false;
588
- function cleanup() {
589
- debug('cleanup');
590
- // cleanup event handlers once the pipe is broken
591
- dest.removeListener('close', onclose);
592
- dest.removeListener('finish', onfinish);
593
- dest.removeListener('drain', ondrain);
594
- dest.removeListener('error', onerror);
595
- dest.removeListener('unpipe', onunpipe);
596
- src.removeListener('end', onend);
597
- src.removeListener('end', unpipe);
598
- src.removeListener('data', ondata);
599
-
600
- cleanedUp = true;
601
-
602
- // if the reader is waiting for a drain event from this
603
- // specific writer, then it would cause it to never start
604
- // flowing again.
605
- // So, if this is awaiting a drain, then we just call it now.
606
- // If we don't know, then assume that we are waiting for one.
607
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
608
- }
609
-
610
- // If the user pushes more data while we're writing to dest then we'll end up
611
- // in ondata again. However, we only want to increase awaitDrain once because
612
- // dest will only emit one 'drain' event for the multiple writes.
613
- // => Introduce a guard on increasing awaitDrain.
614
- var increasedAwaitDrain = false;
615
- src.on('data', ondata);
616
- function ondata(chunk) {
617
- debug('ondata');
618
- increasedAwaitDrain = false;
619
- var ret = dest.write(chunk);
620
- if (false === ret && !increasedAwaitDrain) {
621
- // If the user unpiped during `dest.write()`, it is possible
622
- // to get stuck in a permanently paused state if that write
623
- // also returned false.
624
- // => Check whether `dest` is still a piping destination.
625
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
626
- debug('false write response, pause', src._readableState.awaitDrain);
627
- src._readableState.awaitDrain++;
628
- increasedAwaitDrain = true;
629
- }
630
- src.pause();
631
- }
632
- }
633
-
634
- // if the dest has an error, then stop piping into it.
635
- // however, don't suppress the throwing behavior for this.
636
- function onerror(er) {
637
- debug('onerror', er);
638
- unpipe();
639
- dest.removeListener('error', onerror);
640
- if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
641
- }
642
-
643
- // Make sure our error handler is attached before userland ones.
644
- prependListener(dest, 'error', onerror);
645
-
646
- // Both close and finish should trigger unpipe, but only once.
647
- function onclose() {
648
- dest.removeListener('finish', onfinish);
649
- unpipe();
650
- }
651
- dest.once('close', onclose);
652
- function onfinish() {
653
- debug('onfinish');
654
- dest.removeListener('close', onclose);
655
- unpipe();
656
- }
657
- dest.once('finish', onfinish);
658
-
659
- function unpipe() {
660
- debug('unpipe');
661
- src.unpipe(dest);
662
- }
663
-
664
- // tell the dest that it's being piped to
665
- dest.emit('pipe', src);
666
-
667
- // start the flow if it hasn't been started already.
668
- if (!state.flowing) {
669
- debug('pipe resume');
670
- src.resume();
671
- }
672
-
673
- return dest;
674
- };
675
-
676
- function pipeOnDrain(src) {
677
- return function () {
678
- var state = src._readableState;
679
- debug('pipeOnDrain', state.awaitDrain);
680
- if (state.awaitDrain) state.awaitDrain--;
681
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
682
- state.flowing = true;
683
- flow(src);
684
- }
685
- };
686
- }
687
-
688
- Readable.prototype.unpipe = function (dest) {
689
- var state = this._readableState;
690
- var unpipeInfo = { hasUnpiped: false };
691
-
692
- // if we're not piping anywhere, then do nothing.
693
- if (state.pipesCount === 0) return this;
694
-
695
- // just one destination. most common case.
696
- if (state.pipesCount === 1) {
697
- // passed in one, but it's not the right one.
698
- if (dest && dest !== state.pipes) return this;
699
-
700
- if (!dest) dest = state.pipes;
701
-
702
- // got a match.
703
- state.pipes = null;
704
- state.pipesCount = 0;
705
- state.flowing = false;
706
- if (dest) dest.emit('unpipe', this, unpipeInfo);
707
- return this;
708
- }
709
-
710
- // slow case. multiple pipe destinations.
711
-
712
- if (!dest) {
713
- // remove all.
714
- var dests = state.pipes;
715
- var len = state.pipesCount;
716
- state.pipes = null;
717
- state.pipesCount = 0;
718
- state.flowing = false;
719
-
720
- for (var i = 0; i < len; i++) {
721
- dests[i].emit('unpipe', this, unpipeInfo);
722
- }return this;
723
- }
724
-
725
- // try to find the right one.
726
- var index = indexOf(state.pipes, dest);
727
- if (index === -1) return this;
728
-
729
- state.pipes.splice(index, 1);
730
- state.pipesCount -= 1;
731
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
732
-
733
- dest.emit('unpipe', this, unpipeInfo);
734
-
735
- return this;
736
- };
737
-
738
- // set up data events if they are asked for
739
- // Ensure readable listeners eventually get something
740
- Readable.prototype.on = function (ev, fn) {
741
- var res = Stream.prototype.on.call(this, ev, fn);
742
-
743
- if (ev === 'data') {
744
- // Start flowing on next tick if stream isn't explicitly paused
745
- if (this._readableState.flowing !== false) this.resume();
746
- } else if (ev === 'readable') {
747
- var state = this._readableState;
748
- if (!state.endEmitted && !state.readableListening) {
749
- state.readableListening = state.needReadable = true;
750
- state.emittedReadable = false;
751
- if (!state.reading) {
752
- pna.nextTick(nReadingNextTick, this);
753
- } else if (state.length) {
754
- emitReadable(this);
755
- }
756
- }
757
- }
758
-
759
- return res;
760
- };
761
- Readable.prototype.addListener = Readable.prototype.on;
762
-
763
- function nReadingNextTick(self) {
764
- debug('readable nexttick read 0');
765
- self.read(0);
766
- }
767
-
768
- // pause() and resume() are remnants of the legacy readable stream API
769
- // If the user uses them, then switch into old mode.
770
- Readable.prototype.resume = function () {
771
- var state = this._readableState;
772
- if (!state.flowing) {
773
- debug('resume');
774
- state.flowing = true;
775
- resume(this, state);
776
- }
777
- return this;
778
- };
779
-
780
- function resume(stream, state) {
781
- if (!state.resumeScheduled) {
782
- state.resumeScheduled = true;
783
- pna.nextTick(resume_, stream, state);
784
- }
785
- }
786
-
787
- function resume_(stream, state) {
788
- if (!state.reading) {
789
- debug('resume read 0');
790
- stream.read(0);
791
- }
792
-
793
- state.resumeScheduled = false;
794
- state.awaitDrain = 0;
795
- stream.emit('resume');
796
- flow(stream);
797
- if (state.flowing && !state.reading) stream.read(0);
798
- }
799
-
800
- Readable.prototype.pause = function () {
801
- debug('call pause flowing=%j', this._readableState.flowing);
802
- if (false !== this._readableState.flowing) {
803
- debug('pause');
804
- this._readableState.flowing = false;
805
- this.emit('pause');
806
- }
807
- return this;
808
- };
809
-
810
- function flow(stream) {
811
- var state = stream._readableState;
812
- debug('flow', state.flowing);
813
- while (state.flowing && stream.read() !== null) {}
814
- }
815
-
816
- // wrap an old-style stream as the async data source.
817
- // This is *not* part of the readable stream interface.
818
- // It is an ugly unfortunate mess of history.
819
- Readable.prototype.wrap = function (stream) {
820
- var _this = this;
821
-
822
- var state = this._readableState;
823
- var paused = false;
824
-
825
- stream.on('end', function () {
826
- debug('wrapped end');
827
- if (state.decoder && !state.ended) {
828
- var chunk = state.decoder.end();
829
- if (chunk && chunk.length) _this.push(chunk);
830
- }
831
-
832
- _this.push(null);
833
- });
834
-
835
- stream.on('data', function (chunk) {
836
- debug('wrapped data');
837
- if (state.decoder) chunk = state.decoder.write(chunk);
838
-
839
- // don't skip over falsy values in objectMode
840
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
841
-
842
- var ret = _this.push(chunk);
843
- if (!ret) {
844
- paused = true;
845
- stream.pause();
846
- }
847
- });
848
-
849
- // proxy all the other methods.
850
- // important when wrapping filters and duplexes.
851
- for (var i in stream) {
852
- if (this[i] === undefined && typeof stream[i] === 'function') {
853
- this[i] = function (method) {
854
- return function () {
855
- return stream[method].apply(stream, arguments);
856
- };
857
- }(i);
858
- }
859
- }
860
-
861
- // proxy certain important events.
862
- for (var n = 0; n < kProxyEvents.length; n++) {
863
- stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
864
- }
865
-
866
- // when we try to consume some more bytes, simply unpause the
867
- // underlying stream.
868
- this._read = function (n) {
869
- debug('wrapped _read', n);
870
- if (paused) {
871
- paused = false;
872
- stream.resume();
873
- }
874
- };
875
-
876
- return this;
877
- };
878
-
879
- Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
880
- // making it explicit this property is not enumerable
881
- // because otherwise some prototype manipulation in
882
- // userland will fail
883
- enumerable: false,
884
- get: function () {
885
- return this._readableState.highWaterMark;
886
- }
887
- });
888
-
889
- // exposed for testing purposes only.
890
- Readable._fromList = fromList;
891
-
892
- // Pluck off n bytes from an array of buffers.
893
- // Length is the combined lengths of all the buffers in the list.
894
- // This function is designed to be inlinable, so please take care when making
895
- // changes to the function body.
896
- function fromList(n, state) {
897
- // nothing buffered
898
- if (state.length === 0) return null;
899
-
900
- var ret;
901
- if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
902
- // read it all, truncate the list
903
- if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
904
- state.buffer.clear();
905
- } else {
906
- // read part of list
907
- ret = fromListPartial(n, state.buffer, state.decoder);
908
- }
909
-
910
- return ret;
911
- }
912
-
913
- // Extracts only enough buffered data to satisfy the amount requested.
914
- // This function is designed to be inlinable, so please take care when making
915
- // changes to the function body.
916
- function fromListPartial(n, list, hasStrings) {
917
- var ret;
918
- if (n < list.head.data.length) {
919
- // slice is the same for buffers and strings
920
- ret = list.head.data.slice(0, n);
921
- list.head.data = list.head.data.slice(n);
922
- } else if (n === list.head.data.length) {
923
- // first chunk is a perfect match
924
- ret = list.shift();
925
- } else {
926
- // result spans more than one buffer
927
- ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
928
- }
929
- return ret;
930
- }
931
-
932
- // Copies a specified amount of characters from the list of buffered data
933
- // chunks.
934
- // This function is designed to be inlinable, so please take care when making
935
- // changes to the function body.
936
- function copyFromBufferString(n, list) {
937
- var p = list.head;
938
- var c = 1;
939
- var ret = p.data;
940
- n -= ret.length;
941
- while (p = p.next) {
942
- var str = p.data;
943
- var nb = n > str.length ? str.length : n;
944
- if (nb === str.length) ret += str;else ret += str.slice(0, n);
945
- n -= nb;
946
- if (n === 0) {
947
- if (nb === str.length) {
948
- ++c;
949
- if (p.next) list.head = p.next;else list.head = list.tail = null;
950
- } else {
951
- list.head = p;
952
- p.data = str.slice(nb);
953
- }
954
- break;
955
- }
956
- ++c;
957
- }
958
- list.length -= c;
959
- return ret;
960
- }
961
-
962
- // Copies a specified amount of bytes from the list of buffered data chunks.
963
- // This function is designed to be inlinable, so please take care when making
964
- // changes to the function body.
965
- function copyFromBuffer(n, list) {
966
- var ret = Buffer.allocUnsafe(n);
967
- var p = list.head;
968
- var c = 1;
969
- p.data.copy(ret);
970
- n -= p.data.length;
971
- while (p = p.next) {
972
- var buf = p.data;
973
- var nb = n > buf.length ? buf.length : n;
974
- buf.copy(ret, ret.length - n, 0, nb);
975
- n -= nb;
976
- if (n === 0) {
977
- if (nb === buf.length) {
978
- ++c;
979
- if (p.next) list.head = p.next;else list.head = list.tail = null;
980
- } else {
981
- list.head = p;
982
- p.data = buf.slice(nb);
983
- }
984
- break;
985
- }
986
- ++c;
987
- }
988
- list.length -= c;
989
- return ret;
990
- }
991
-
992
- function endReadable(stream) {
993
- var state = stream._readableState;
994
-
995
- // If we get here before consuming all the bytes, then that is a
996
- // bug in node. Should never happen.
997
- if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
998
-
999
- if (!state.endEmitted) {
1000
- state.ended = true;
1001
- pna.nextTick(endReadableNT, state, stream);
1002
- }
1003
- }
1004
-
1005
- function endReadableNT(state, stream) {
1006
- // Check that we didn't get one last unshift.
1007
- if (!state.endEmitted && state.length === 0) {
1008
- state.endEmitted = true;
1009
- stream.readable = false;
1010
- stream.emit('end');
1011
- }
1012
- }
1013
-
1014
- function indexOf(xs, x) {
1015
- for (var i = 0, l = xs.length; i < l; i++) {
1016
- if (xs[i] === x) return i;
1017
- }
1018
- return -1;
1019
- }