@basemaps/lambda-tiler 6.28.1 → 6.31.0

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 (570) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/build/__tests__/config.data.d.ts +6 -0
  3. package/build/__tests__/config.data.d.ts.map +1 -0
  4. package/build/__tests__/config.data.js +81 -0
  5. package/build/__tests__/config.data.js.map +1 -0
  6. package/build/__tests__/index.test.js +4 -3
  7. package/build/__tests__/index.test.js.map +1 -0
  8. package/build/__tests__/route.test.js +1 -0
  9. package/build/__tests__/route.test.js.map +1 -0
  10. package/build/__tests__/tiff.cache.test.js +1 -0
  11. package/build/__tests__/tiff.cache.test.js.map +1 -0
  12. package/build/__tests__/tile.cache.key.test.js +1 -0
  13. package/build/__tests__/tile.cache.key.test.js.map +1 -0
  14. package/build/__tests__/tile.set.cache.test.js +2 -53
  15. package/build/__tests__/tile.set.cache.test.js.map +1 -0
  16. package/build/__tests__/tile.set.test.js +1 -0
  17. package/build/__tests__/tile.set.test.js.map +1 -0
  18. package/build/__tests__/tile.style.json.test.js +1 -0
  19. package/build/__tests__/tile.style.json.test.js.map +1 -0
  20. package/build/__tests__/wmts.capability.test.d.ts +1 -1
  21. package/build/__tests__/wmts.capability.test.d.ts.map +1 -1
  22. package/build/__tests__/wmts.capability.test.js +286 -125
  23. package/build/__tests__/wmts.capability.test.js.map +1 -0
  24. package/build/__tests__/xyz.test.js +6 -37
  25. package/build/__tests__/xyz.test.js.map +1 -0
  26. package/build/__tests__/xyz.util.d.ts +0 -2
  27. package/build/__tests__/xyz.util.d.ts.map +1 -1
  28. package/build/__tests__/xyz.util.js +7 -30
  29. package/build/__tests__/xyz.util.js.map +1 -0
  30. package/build/api.key.js +1 -0
  31. package/build/api.key.js.map +1 -0
  32. package/build/cli/dump.js +1 -0
  33. package/build/cli/dump.js.map +1 -0
  34. package/build/cli/tile.set.local.js +1 -0
  35. package/build/cli/tile.set.local.js.map +1 -0
  36. package/build/cotar.cache.d.ts +25 -0
  37. package/build/cotar.cache.d.ts.map +1 -0
  38. package/build/cotar.cache.js +50 -0
  39. package/build/cotar.cache.js.map +1 -0
  40. package/build/index.d.ts.map +1 -1
  41. package/build/index.js +34 -33
  42. package/build/index.js.map +1 -0
  43. package/build/router.js +1 -0
  44. package/build/router.js.map +1 -0
  45. package/build/routes/__tests__/attribution.test.js +9 -8
  46. package/build/routes/__tests__/attribution.test.js.map +1 -0
  47. package/build/routes/__tests__/fonts.test.d.ts +2 -0
  48. package/build/routes/__tests__/fonts.test.d.ts.map +1 -0
  49. package/build/routes/__tests__/fonts.test.js +68 -0
  50. package/build/routes/__tests__/fonts.test.js.map +1 -0
  51. package/build/routes/__tests__/health.test.js +1 -0
  52. package/build/routes/__tests__/health.test.js.map +1 -0
  53. package/build/routes/__tests__/imagery.test.js +1 -0
  54. package/build/routes/__tests__/imagery.test.js.map +1 -0
  55. package/build/routes/__tests__/memory.fs.d.ts +18 -0
  56. package/build/routes/__tests__/memory.fs.d.ts.map +1 -0
  57. package/build/routes/__tests__/memory.fs.js +74 -0
  58. package/build/routes/__tests__/memory.fs.js.map +1 -0
  59. package/build/routes/__tests__/sprites.test.d.ts +2 -0
  60. package/build/routes/__tests__/sprites.test.d.ts.map +1 -0
  61. package/build/routes/__tests__/sprites.test.js +56 -0
  62. package/build/routes/__tests__/sprites.test.js.map +1 -0
  63. package/build/routes/__tests__/wmts.test.js +59 -10
  64. package/build/routes/__tests__/wmts.test.js.map +1 -0
  65. package/build/routes/api.d.ts +0 -1
  66. package/build/routes/api.d.ts.map +1 -1
  67. package/build/routes/api.js +1 -3
  68. package/build/routes/api.js.map +1 -0
  69. package/build/routes/attribution.d.ts +2 -2
  70. package/build/routes/attribution.d.ts.map +1 -1
  71. package/build/routes/attribution.js +16 -19
  72. package/build/routes/attribution.js.map +1 -0
  73. package/build/routes/esri/rest.js +1 -0
  74. package/build/routes/esri/rest.js.map +1 -0
  75. package/build/routes/fonts.d.ts +13 -0
  76. package/build/routes/fonts.d.ts.map +1 -0
  77. package/build/routes/fonts.js +58 -0
  78. package/build/routes/fonts.js.map +1 -0
  79. package/build/routes/health.js +1 -0
  80. package/build/routes/health.js.map +1 -0
  81. package/build/routes/imagery.d.ts +8 -1
  82. package/build/routes/imagery.d.ts.map +1 -1
  83. package/build/routes/imagery.js +6 -7
  84. package/build/routes/imagery.js.map +1 -0
  85. package/build/routes/response.js +1 -0
  86. package/build/routes/response.js.map +1 -0
  87. package/build/routes/sprites.d.ts +9 -0
  88. package/build/routes/sprites.d.ts.map +1 -0
  89. package/build/routes/sprites.js +36 -0
  90. package/build/routes/sprites.js.map +1 -0
  91. package/build/routes/tile.etag.js +1 -0
  92. package/build/routes/tile.etag.js.map +1 -0
  93. package/build/routes/tile.js +1 -0
  94. package/build/routes/tile.js.map +1 -0
  95. package/build/routes/tile.json.d.ts.map +1 -1
  96. package/build/routes/tile.json.js +2 -2
  97. package/build/routes/tile.json.js.map +1 -0
  98. package/build/routes/tile.style.json.js +1 -0
  99. package/build/routes/tile.style.json.js.map +1 -0
  100. package/build/routes/tile.wmts.d.ts.map +1 -1
  101. package/build/routes/tile.wmts.js +19 -23
  102. package/build/routes/tile.wmts.js.map +1 -0
  103. package/build/routes/tile.xyz.js +1 -0
  104. package/build/routes/tile.xyz.js.map +1 -0
  105. package/build/source.tracer.js +1 -0
  106. package/build/source.tracer.js.map +1 -0
  107. package/build/tiff.cache.js +1 -0
  108. package/build/tiff.cache.js.map +1 -0
  109. package/build/tile.set.cache.d.ts +0 -1
  110. package/build/tile.set.cache.d.ts.map +1 -1
  111. package/build/tile.set.cache.js +1 -29
  112. package/build/tile.set.cache.js.map +1 -0
  113. package/build/tile.set.js +1 -0
  114. package/build/tile.set.js.map +1 -0
  115. package/build/tile.set.raster.d.ts.map +1 -1
  116. package/build/tile.set.raster.js +6 -3
  117. package/build/tile.set.raster.js.map +1 -0
  118. package/build/tile.set.vector.d.ts +0 -7
  119. package/build/tile.set.vector.d.ts.map +1 -1
  120. package/build/tile.set.vector.js +3 -20
  121. package/build/tile.set.vector.js.map +1 -0
  122. package/build/validate.js +1 -0
  123. package/build/validate.js.map +1 -0
  124. package/build/wmts.capability.d.ts +26 -12
  125. package/build/wmts.capability.d.ts.map +1 -1
  126. package/build/wmts.capability.js +156 -55
  127. package/build/wmts.capability.js.map +1 -0
  128. package/dist/index.js +197 -0
  129. package/dist/node_modules/.package-lock.json +488 -0
  130. package/dist/node_modules/base64-js/LICENSE +21 -0
  131. package/dist/node_modules/base64-js/README.md +34 -0
  132. package/dist/node_modules/base64-js/base64js.min.js +1 -0
  133. package/dist/node_modules/base64-js/index.d.ts +3 -0
  134. package/dist/node_modules/base64-js/index.js +150 -0
  135. package/dist/node_modules/base64-js/package.json +47 -0
  136. package/dist/node_modules/bl/.travis.yml +17 -0
  137. package/dist/node_modules/bl/BufferList.js +396 -0
  138. package/dist/node_modules/bl/LICENSE.md +13 -0
  139. package/dist/node_modules/bl/README.md +247 -0
  140. package/dist/node_modules/bl/bl.js +84 -0
  141. package/dist/node_modules/bl/package.json +37 -0
  142. package/dist/node_modules/bl/test/convert.js +21 -0
  143. package/dist/node_modules/bl/test/indexOf.js +492 -0
  144. package/dist/node_modules/bl/test/isBufferList.js +32 -0
  145. package/dist/node_modules/bl/test/test.js +869 -0
  146. package/dist/node_modules/buffer/AUTHORS.md +70 -0
  147. package/dist/node_modules/buffer/LICENSE +21 -0
  148. package/dist/node_modules/buffer/README.md +410 -0
  149. package/dist/node_modules/buffer/index.d.ts +186 -0
  150. package/dist/node_modules/buffer/index.js +1817 -0
  151. package/dist/node_modules/buffer/package.json +96 -0
  152. package/dist/node_modules/chownr/LICENSE +15 -0
  153. package/dist/node_modules/chownr/README.md +3 -0
  154. package/dist/node_modules/chownr/chownr.js +167 -0
  155. package/dist/node_modules/chownr/package.json +29 -0
  156. package/dist/node_modules/color/LICENSE +21 -0
  157. package/dist/node_modules/color/README.md +123 -0
  158. package/dist/node_modules/color/index.js +496 -0
  159. package/dist/node_modules/color/package.json +47 -0
  160. package/dist/node_modules/color-convert/CHANGELOG.md +54 -0
  161. package/dist/node_modules/color-convert/LICENSE +21 -0
  162. package/dist/node_modules/color-convert/README.md +68 -0
  163. package/dist/node_modules/color-convert/conversions.js +839 -0
  164. package/dist/node_modules/color-convert/index.js +81 -0
  165. package/dist/node_modules/color-convert/package.json +48 -0
  166. package/dist/node_modules/color-convert/route.js +97 -0
  167. package/dist/node_modules/color-name/LICENSE +8 -0
  168. package/dist/node_modules/color-name/README.md +11 -0
  169. package/dist/node_modules/color-name/index.js +152 -0
  170. package/dist/node_modules/color-name/package.json +28 -0
  171. package/dist/node_modules/color-string/LICENSE +21 -0
  172. package/dist/node_modules/color-string/README.md +62 -0
  173. package/dist/node_modules/color-string/index.js +242 -0
  174. package/dist/node_modules/color-string/package.json +39 -0
  175. package/dist/node_modules/decompress-response/index.d.ts +22 -0
  176. package/dist/node_modules/decompress-response/index.js +58 -0
  177. package/dist/node_modules/decompress-response/license +9 -0
  178. package/dist/node_modules/decompress-response/package.json +56 -0
  179. package/dist/node_modules/decompress-response/readme.md +48 -0
  180. package/dist/node_modules/deep-extend/CHANGELOG.md +46 -0
  181. package/dist/node_modules/deep-extend/LICENSE +20 -0
  182. package/dist/node_modules/deep-extend/README.md +91 -0
  183. package/dist/node_modules/deep-extend/index.js +1 -0
  184. package/dist/node_modules/deep-extend/lib/deep-extend.js +150 -0
  185. package/dist/node_modules/deep-extend/package.json +62 -0
  186. package/dist/node_modules/detect-libc/LICENSE +201 -0
  187. package/dist/node_modules/detect-libc/README.md +160 -0
  188. package/dist/node_modules/detect-libc/index.d.ts +11 -0
  189. package/dist/node_modules/detect-libc/lib/detect-libc.js +178 -0
  190. package/dist/node_modules/detect-libc/lib/process.js +16 -0
  191. package/dist/node_modules/detect-libc/package.json +36 -0
  192. package/dist/node_modules/end-of-stream/LICENSE +21 -0
  193. package/dist/node_modules/end-of-stream/README.md +54 -0
  194. package/dist/node_modules/end-of-stream/index.js +94 -0
  195. package/dist/node_modules/end-of-stream/package.json +37 -0
  196. package/dist/node_modules/expand-template/.travis.yml +6 -0
  197. package/dist/node_modules/expand-template/LICENSE +21 -0
  198. package/dist/node_modules/expand-template/README.md +43 -0
  199. package/dist/node_modules/expand-template/index.js +26 -0
  200. package/dist/node_modules/expand-template/package.json +29 -0
  201. package/dist/node_modules/expand-template/test.js +67 -0
  202. package/dist/node_modules/fs-constants/LICENSE +21 -0
  203. package/dist/node_modules/fs-constants/README.md +26 -0
  204. package/dist/node_modules/fs-constants/browser.js +1 -0
  205. package/dist/node_modules/fs-constants/index.js +1 -0
  206. package/dist/node_modules/fs-constants/package.json +19 -0
  207. package/dist/node_modules/github-from-package/.travis.yml +4 -0
  208. package/dist/node_modules/github-from-package/LICENSE +18 -0
  209. package/dist/node_modules/github-from-package/example/package.json +8 -0
  210. package/dist/node_modules/github-from-package/example/url.js +3 -0
  211. package/dist/node_modules/github-from-package/index.js +17 -0
  212. package/dist/node_modules/github-from-package/package.json +30 -0
  213. package/dist/node_modules/github-from-package/readme.markdown +53 -0
  214. package/dist/node_modules/github-from-package/test/a.json +8 -0
  215. package/dist/node_modules/github-from-package/test/b.json +5 -0
  216. package/dist/node_modules/github-from-package/test/c.json +5 -0
  217. package/dist/node_modules/github-from-package/test/d.json +7 -0
  218. package/dist/node_modules/github-from-package/test/e.json +5 -0
  219. package/dist/node_modules/github-from-package/test/url.js +19 -0
  220. package/dist/node_modules/ieee754/LICENSE +11 -0
  221. package/dist/node_modules/ieee754/README.md +51 -0
  222. package/dist/node_modules/ieee754/index.d.ts +10 -0
  223. package/dist/node_modules/ieee754/index.js +85 -0
  224. package/dist/node_modules/ieee754/package.json +52 -0
  225. package/dist/node_modules/inherits/LICENSE +16 -0
  226. package/dist/node_modules/inherits/README.md +42 -0
  227. package/dist/node_modules/inherits/inherits.js +9 -0
  228. package/dist/node_modules/inherits/inherits_browser.js +27 -0
  229. package/dist/node_modules/inherits/package.json +29 -0
  230. package/dist/node_modules/ini/LICENSE +15 -0
  231. package/dist/node_modules/ini/README.md +102 -0
  232. package/dist/node_modules/ini/ini.js +206 -0
  233. package/dist/node_modules/ini/package.json +33 -0
  234. package/dist/node_modules/is-arrayish/LICENSE +21 -0
  235. package/dist/node_modules/is-arrayish/README.md +16 -0
  236. package/dist/node_modules/is-arrayish/index.js +9 -0
  237. package/dist/node_modules/is-arrayish/package.json +45 -0
  238. package/dist/node_modules/is-arrayish/yarn-error.log +1443 -0
  239. package/dist/node_modules/lru-cache/LICENSE +15 -0
  240. package/dist/node_modules/lru-cache/README.md +166 -0
  241. package/dist/node_modules/lru-cache/index.js +334 -0
  242. package/dist/node_modules/lru-cache/package.json +34 -0
  243. package/dist/node_modules/mimic-response/index.d.ts +17 -0
  244. package/dist/node_modules/mimic-response/index.js +77 -0
  245. package/dist/node_modules/mimic-response/license +9 -0
  246. package/dist/node_modules/mimic-response/package.json +42 -0
  247. package/dist/node_modules/mimic-response/readme.md +78 -0
  248. package/dist/node_modules/minimist/.travis.yml +8 -0
  249. package/dist/node_modules/minimist/LICENSE +18 -0
  250. package/dist/node_modules/minimist/example/parse.js +2 -0
  251. package/dist/node_modules/minimist/index.js +249 -0
  252. package/dist/node_modules/minimist/package.json +45 -0
  253. package/dist/node_modules/minimist/readme.markdown +98 -0
  254. package/dist/node_modules/minimist/test/all_bool.js +32 -0
  255. package/dist/node_modules/minimist/test/bool.js +178 -0
  256. package/dist/node_modules/minimist/test/dash.js +31 -0
  257. package/dist/node_modules/minimist/test/default_bool.js +35 -0
  258. package/dist/node_modules/minimist/test/dotted.js +22 -0
  259. package/dist/node_modules/minimist/test/kv_short.js +16 -0
  260. package/dist/node_modules/minimist/test/long.js +31 -0
  261. package/dist/node_modules/minimist/test/num.js +36 -0
  262. package/dist/node_modules/minimist/test/parse.js +197 -0
  263. package/dist/node_modules/minimist/test/parse_modified.js +9 -0
  264. package/dist/node_modules/minimist/test/proto.js +60 -0
  265. package/dist/node_modules/minimist/test/short.js +67 -0
  266. package/dist/node_modules/minimist/test/stop_early.js +15 -0
  267. package/dist/node_modules/minimist/test/unknown.js +102 -0
  268. package/dist/node_modules/minimist/test/whitespace.js +8 -0
  269. package/dist/node_modules/mkdirp-classic/LICENSE +21 -0
  270. package/dist/node_modules/mkdirp-classic/README.md +18 -0
  271. package/dist/node_modules/mkdirp-classic/index.js +98 -0
  272. package/dist/node_modules/mkdirp-classic/package.json +18 -0
  273. package/dist/node_modules/napi-build-utils/LICENSE +21 -0
  274. package/dist/node_modules/napi-build-utils/README.md +48 -0
  275. package/dist/node_modules/napi-build-utils/index.js +213 -0
  276. package/dist/node_modules/napi-build-utils/index.md +81 -0
  277. package/dist/node_modules/napi-build-utils/package.json +41 -0
  278. package/dist/node_modules/node-abi/.circleci/config.yml +63 -0
  279. package/dist/node_modules/node-abi/.github/workflows/update-abi.yml +41 -0
  280. package/dist/node_modules/node-abi/.releaserc.json +9 -0
  281. package/dist/node_modules/node-abi/CODE_OF_CONDUCT.md +73 -0
  282. package/dist/node_modules/node-abi/CONTRIBUTING.md +62 -0
  283. package/dist/node_modules/node-abi/LICENSE +21 -0
  284. package/dist/node_modules/node-abi/README.md +50 -0
  285. package/dist/node_modules/node-abi/abi_registry.json +210 -0
  286. package/dist/node_modules/node-abi/index.js +179 -0
  287. package/dist/node_modules/node-abi/package.json +39 -0
  288. package/dist/node_modules/node-abi/scripts/update-abi-registry.js +119 -0
  289. package/dist/node_modules/node-abi/test/index.js +166 -0
  290. package/dist/node_modules/node-addon-api/LICENSE.md +13 -0
  291. package/dist/node_modules/node-addon-api/README.md +293 -0
  292. package/dist/node_modules/node-addon-api/common.gypi +21 -0
  293. package/dist/node_modules/node-addon-api/except.gypi +25 -0
  294. package/dist/node_modules/node-addon-api/index.js +11 -0
  295. package/dist/node_modules/node-addon-api/napi-inl.deprecated.h +192 -0
  296. package/dist/node_modules/node-addon-api/napi-inl.h +6259 -0
  297. package/dist/node_modules/node-addon-api/napi.h +3003 -0
  298. package/dist/node_modules/node-addon-api/node_api.gyp +9 -0
  299. package/dist/node_modules/node-addon-api/noexcept.gypi +26 -0
  300. package/dist/node_modules/node-addon-api/nothing.c +0 -0
  301. package/dist/node_modules/node-addon-api/package-support.json +21 -0
  302. package/dist/node_modules/node-addon-api/package.json +415 -0
  303. package/dist/node_modules/node-addon-api/tools/README.md +73 -0
  304. package/dist/node_modules/node-addon-api/tools/check-napi.js +100 -0
  305. package/dist/node_modules/node-addon-api/tools/clang-format.js +71 -0
  306. package/dist/node_modules/node-addon-api/tools/conversion.js +309 -0
  307. package/dist/node_modules/node-addon-api/tools/eslint-format.js +71 -0
  308. package/dist/node_modules/once/LICENSE +15 -0
  309. package/dist/node_modules/once/README.md +79 -0
  310. package/dist/node_modules/once/once.js +42 -0
  311. package/dist/node_modules/once/package.json +33 -0
  312. package/dist/node_modules/prebuild-install/CHANGELOG.md +116 -0
  313. package/dist/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  314. package/dist/node_modules/prebuild-install/LICENSE +21 -0
  315. package/dist/node_modules/prebuild-install/README.md +163 -0
  316. package/dist/node_modules/prebuild-install/asset.js +44 -0
  317. package/dist/node_modules/prebuild-install/bin.js +78 -0
  318. package/dist/node_modules/prebuild-install/download.js +142 -0
  319. package/dist/node_modules/prebuild-install/error.js +14 -0
  320. package/dist/node_modules/prebuild-install/help.txt +16 -0
  321. package/dist/node_modules/prebuild-install/index.js +1 -0
  322. package/dist/node_modules/prebuild-install/log.js +33 -0
  323. package/dist/node_modules/prebuild-install/package.json +67 -0
  324. package/dist/node_modules/prebuild-install/proxy.js +35 -0
  325. package/dist/node_modules/prebuild-install/rc.js +64 -0
  326. package/dist/node_modules/prebuild-install/util.js +143 -0
  327. package/dist/node_modules/pump/.travis.yml +5 -0
  328. package/dist/node_modules/pump/LICENSE +21 -0
  329. package/dist/node_modules/pump/README.md +65 -0
  330. package/dist/node_modules/pump/index.js +82 -0
  331. package/dist/node_modules/pump/package.json +24 -0
  332. package/dist/node_modules/pump/test-browser.js +66 -0
  333. package/dist/node_modules/pump/test-node.js +53 -0
  334. package/dist/node_modules/rc/LICENSE.APACHE2 +15 -0
  335. package/dist/node_modules/rc/LICENSE.BSD +26 -0
  336. package/dist/node_modules/rc/LICENSE.MIT +24 -0
  337. package/dist/node_modules/rc/README.md +227 -0
  338. package/dist/node_modules/rc/browser.js +7 -0
  339. package/dist/node_modules/rc/cli.js +4 -0
  340. package/dist/node_modules/rc/index.js +53 -0
  341. package/dist/node_modules/rc/lib/utils.js +104 -0
  342. package/dist/node_modules/rc/package.json +29 -0
  343. package/dist/node_modules/rc/test/ini.js +16 -0
  344. package/dist/node_modules/rc/test/nested-env-vars.js +50 -0
  345. package/dist/node_modules/rc/test/test.js +59 -0
  346. package/dist/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  347. package/dist/node_modules/readable-stream/GOVERNANCE.md +136 -0
  348. package/dist/node_modules/readable-stream/LICENSE +47 -0
  349. package/dist/node_modules/readable-stream/README.md +106 -0
  350. package/dist/node_modules/readable-stream/errors-browser.js +127 -0
  351. package/dist/node_modules/readable-stream/errors.js +116 -0
  352. package/dist/node_modules/readable-stream/experimentalWarning.js +17 -0
  353. package/dist/node_modules/readable-stream/lib/_stream_duplex.js +139 -0
  354. package/dist/node_modules/readable-stream/lib/_stream_passthrough.js +39 -0
  355. package/dist/node_modules/readable-stream/lib/_stream_readable.js +1124 -0
  356. package/dist/node_modules/readable-stream/lib/_stream_transform.js +201 -0
  357. package/dist/node_modules/readable-stream/lib/_stream_writable.js +697 -0
  358. package/dist/node_modules/readable-stream/lib/internal/streams/async_iterator.js +207 -0
  359. package/dist/node_modules/readable-stream/lib/internal/streams/buffer_list.js +210 -0
  360. package/dist/node_modules/readable-stream/lib/internal/streams/destroy.js +105 -0
  361. package/dist/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +104 -0
  362. package/dist/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  363. package/dist/node_modules/readable-stream/lib/internal/streams/from.js +64 -0
  364. package/dist/node_modules/readable-stream/lib/internal/streams/pipeline.js +97 -0
  365. package/dist/node_modules/readable-stream/lib/internal/streams/state.js +27 -0
  366. package/dist/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  367. package/dist/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  368. package/dist/node_modules/readable-stream/package.json +68 -0
  369. package/dist/node_modules/readable-stream/readable-browser.js +9 -0
  370. package/dist/node_modules/readable-stream/readable.js +16 -0
  371. package/dist/node_modules/safe-buffer/LICENSE +21 -0
  372. package/dist/node_modules/safe-buffer/README.md +584 -0
  373. package/dist/node_modules/safe-buffer/index.d.ts +187 -0
  374. package/dist/node_modules/safe-buffer/index.js +65 -0
  375. package/dist/node_modules/safe-buffer/package.json +51 -0
  376. package/dist/node_modules/semver/LICENSE +15 -0
  377. package/dist/node_modules/semver/README.md +568 -0
  378. package/dist/node_modules/semver/bin/semver.js +183 -0
  379. package/dist/node_modules/semver/classes/comparator.js +136 -0
  380. package/dist/node_modules/semver/classes/index.js +5 -0
  381. package/dist/node_modules/semver/classes/range.js +519 -0
  382. package/dist/node_modules/semver/classes/semver.js +287 -0
  383. package/dist/node_modules/semver/functions/clean.js +6 -0
  384. package/dist/node_modules/semver/functions/cmp.js +52 -0
  385. package/dist/node_modules/semver/functions/coerce.js +52 -0
  386. package/dist/node_modules/semver/functions/compare-build.js +7 -0
  387. package/dist/node_modules/semver/functions/compare-loose.js +3 -0
  388. package/dist/node_modules/semver/functions/compare.js +5 -0
  389. package/dist/node_modules/semver/functions/diff.js +23 -0
  390. package/dist/node_modules/semver/functions/eq.js +3 -0
  391. package/dist/node_modules/semver/functions/gt.js +3 -0
  392. package/dist/node_modules/semver/functions/gte.js +3 -0
  393. package/dist/node_modules/semver/functions/inc.js +18 -0
  394. package/dist/node_modules/semver/functions/lt.js +3 -0
  395. package/dist/node_modules/semver/functions/lte.js +3 -0
  396. package/dist/node_modules/semver/functions/major.js +3 -0
  397. package/dist/node_modules/semver/functions/minor.js +3 -0
  398. package/dist/node_modules/semver/functions/neq.js +3 -0
  399. package/dist/node_modules/semver/functions/parse.js +33 -0
  400. package/dist/node_modules/semver/functions/patch.js +3 -0
  401. package/dist/node_modules/semver/functions/prerelease.js +6 -0
  402. package/dist/node_modules/semver/functions/rcompare.js +3 -0
  403. package/dist/node_modules/semver/functions/rsort.js +3 -0
  404. package/dist/node_modules/semver/functions/satisfies.js +10 -0
  405. package/dist/node_modules/semver/functions/sort.js +3 -0
  406. package/dist/node_modules/semver/functions/valid.js +6 -0
  407. package/dist/node_modules/semver/index.js +48 -0
  408. package/dist/node_modules/semver/internal/constants.js +17 -0
  409. package/dist/node_modules/semver/internal/debug.js +9 -0
  410. package/dist/node_modules/semver/internal/identifiers.js +23 -0
  411. package/dist/node_modules/semver/internal/parse-options.js +11 -0
  412. package/dist/node_modules/semver/internal/re.js +182 -0
  413. package/dist/node_modules/semver/package.json +75 -0
  414. package/dist/node_modules/semver/preload.js +2 -0
  415. package/dist/node_modules/semver/range.bnf +16 -0
  416. package/dist/node_modules/semver/ranges/gtr.js +4 -0
  417. package/dist/node_modules/semver/ranges/intersects.js +7 -0
  418. package/dist/node_modules/semver/ranges/ltr.js +4 -0
  419. package/dist/node_modules/semver/ranges/max-satisfying.js +25 -0
  420. package/dist/node_modules/semver/ranges/min-satisfying.js +24 -0
  421. package/dist/node_modules/semver/ranges/min-version.js +61 -0
  422. package/dist/node_modules/semver/ranges/outside.js +80 -0
  423. package/dist/node_modules/semver/ranges/simplify.js +47 -0
  424. package/dist/node_modules/semver/ranges/subset.js +244 -0
  425. package/dist/node_modules/semver/ranges/to-comparators.js +8 -0
  426. package/dist/node_modules/semver/ranges/valid.js +11 -0
  427. package/dist/node_modules/sharp/LICENSE +191 -0
  428. package/dist/node_modules/sharp/README.md +117 -0
  429. package/dist/node_modules/sharp/binding.gyp +233 -0
  430. package/dist/node_modules/sharp/build/Release/sharp-linux-x64.node +0 -0
  431. package/dist/node_modules/sharp/install/can-compile.js +11 -0
  432. package/dist/node_modules/sharp/install/dll-copy.js +37 -0
  433. package/dist/node_modules/sharp/install/libvips.js +215 -0
  434. package/dist/node_modules/sharp/lib/agent.js +40 -0
  435. package/dist/node_modules/sharp/lib/channel.js +171 -0
  436. package/dist/node_modules/sharp/lib/colour.js +180 -0
  437. package/dist/node_modules/sharp/lib/composite.js +193 -0
  438. package/dist/node_modules/sharp/lib/constructor.js +386 -0
  439. package/dist/node_modules/sharp/lib/index.js +13 -0
  440. package/dist/node_modules/sharp/lib/input.js +507 -0
  441. package/dist/node_modules/sharp/lib/is.js +143 -0
  442. package/dist/node_modules/sharp/lib/libvips.js +136 -0
  443. package/dist/node_modules/sharp/lib/operation.js +803 -0
  444. package/dist/node_modules/sharp/lib/output.js +1231 -0
  445. package/dist/node_modules/sharp/lib/platform.js +27 -0
  446. package/dist/node_modules/sharp/lib/resize.js +473 -0
  447. package/dist/node_modules/sharp/lib/sharp.js +35 -0
  448. package/dist/node_modules/sharp/lib/utility.js +211 -0
  449. package/dist/node_modules/sharp/package.json +196 -0
  450. package/dist/node_modules/sharp/src/common.cc +966 -0
  451. package/dist/node_modules/sharp/src/common.h +352 -0
  452. package/dist/node_modules/sharp/src/libvips/cplusplus/VConnection.cpp +152 -0
  453. package/dist/node_modules/sharp/src/libvips/cplusplus/VError.cpp +50 -0
  454. package/dist/node_modules/sharp/src/libvips/cplusplus/VImage.cpp +1523 -0
  455. package/dist/node_modules/sharp/src/libvips/cplusplus/VInterpolate.cpp +63 -0
  456. package/dist/node_modules/sharp/src/libvips/cplusplus/vips-operators.cpp +3738 -0
  457. package/dist/node_modules/sharp/src/metadata.cc +291 -0
  458. package/dist/node_modules/sharp/src/metadata.h +92 -0
  459. package/dist/node_modules/sharp/src/operations.cc +412 -0
  460. package/dist/node_modules/sharp/src/operations.h +126 -0
  461. package/dist/node_modules/sharp/src/pipeline.cc +1624 -0
  462. package/dist/node_modules/sharp/src/pipeline.h +349 -0
  463. package/dist/node_modules/sharp/src/sharp.cc +52 -0
  464. package/dist/node_modules/sharp/src/stats.cc +193 -0
  465. package/dist/node_modules/sharp/src/stats.h +70 -0
  466. package/dist/node_modules/sharp/src/utilities.cc +243 -0
  467. package/dist/node_modules/sharp/src/utilities.h +29 -0
  468. package/dist/node_modules/sharp/vendor/8.12.2/linux-x64/THIRD-PARTY-NOTICES.md +43 -0
  469. package/dist/node_modules/sharp/vendor/8.12.2/linux-x64/lib/libvips-cpp.so.42 +0 -0
  470. package/dist/node_modules/sharp/vendor/8.12.2/linux-x64/platform.json +1 -0
  471. package/dist/node_modules/sharp/vendor/8.12.2/linux-x64/versions.json +31 -0
  472. package/dist/node_modules/simple-concat/.travis.yml +3 -0
  473. package/dist/node_modules/simple-concat/LICENSE +20 -0
  474. package/dist/node_modules/simple-concat/README.md +44 -0
  475. package/dist/node_modules/simple-concat/index.js +15 -0
  476. package/dist/node_modules/simple-concat/package.json +47 -0
  477. package/dist/node_modules/simple-concat/test/basic.js +41 -0
  478. package/dist/node_modules/simple-get/.github/dependabot.yml +15 -0
  479. package/dist/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  480. package/dist/node_modules/simple-get/LICENSE +20 -0
  481. package/dist/node_modules/simple-get/README.md +333 -0
  482. package/dist/node_modules/simple-get/index.js +108 -0
  483. package/dist/node_modules/simple-get/package.json +67 -0
  484. package/dist/node_modules/simple-swizzle/LICENSE +21 -0
  485. package/dist/node_modules/simple-swizzle/README.md +39 -0
  486. package/dist/node_modules/simple-swizzle/index.js +29 -0
  487. package/dist/node_modules/simple-swizzle/package.json +36 -0
  488. package/dist/node_modules/string_decoder/LICENSE +48 -0
  489. package/dist/node_modules/string_decoder/README.md +47 -0
  490. package/dist/node_modules/string_decoder/lib/string_decoder.js +296 -0
  491. package/dist/node_modules/string_decoder/package.json +34 -0
  492. package/dist/node_modules/strip-json-comments/index.js +70 -0
  493. package/dist/node_modules/strip-json-comments/license +21 -0
  494. package/dist/node_modules/strip-json-comments/package.json +42 -0
  495. package/dist/node_modules/strip-json-comments/readme.md +64 -0
  496. package/dist/node_modules/tar-fs/.travis.yml +6 -0
  497. package/dist/node_modules/tar-fs/LICENSE +21 -0
  498. package/dist/node_modules/tar-fs/README.md +165 -0
  499. package/dist/node_modules/tar-fs/index.js +351 -0
  500. package/dist/node_modules/tar-fs/package.json +41 -0
  501. package/dist/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  502. package/dist/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  503. package/dist/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  504. package/dist/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  505. package/dist/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  506. package/dist/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  507. package/dist/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  508. package/dist/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  509. package/dist/node_modules/tar-fs/test/fixtures/e/file +0 -0
  510. package/dist/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  511. package/dist/node_modules/tar-fs/test/index.js +346 -0
  512. package/dist/node_modules/tar-stream/LICENSE +21 -0
  513. package/dist/node_modules/tar-stream/README.md +168 -0
  514. package/dist/node_modules/tar-stream/extract.js +257 -0
  515. package/dist/node_modules/tar-stream/headers.js +295 -0
  516. package/dist/node_modules/tar-stream/index.js +2 -0
  517. package/dist/node_modules/tar-stream/pack.js +255 -0
  518. package/dist/node_modules/tar-stream/package.json +58 -0
  519. package/dist/node_modules/tar-stream/sandbox.js +11 -0
  520. package/dist/node_modules/tunnel-agent/LICENSE +55 -0
  521. package/dist/node_modules/tunnel-agent/README.md +4 -0
  522. package/dist/node_modules/tunnel-agent/index.js +244 -0
  523. package/dist/node_modules/tunnel-agent/package.json +22 -0
  524. package/dist/node_modules/util-deprecate/History.md +16 -0
  525. package/dist/node_modules/util-deprecate/LICENSE +24 -0
  526. package/dist/node_modules/util-deprecate/README.md +53 -0
  527. package/dist/node_modules/util-deprecate/browser.js +67 -0
  528. package/dist/node_modules/util-deprecate/node.js +6 -0
  529. package/dist/node_modules/util-deprecate/package.json +27 -0
  530. package/dist/node_modules/wrappy/LICENSE +15 -0
  531. package/dist/node_modules/wrappy/README.md +36 -0
  532. package/dist/node_modules/wrappy/package.json +29 -0
  533. package/dist/node_modules/wrappy/wrappy.js +33 -0
  534. package/dist/node_modules/yallist/LICENSE +15 -0
  535. package/dist/node_modules/yallist/README.md +204 -0
  536. package/dist/node_modules/yallist/iterator.js +8 -0
  537. package/dist/node_modules/yallist/package.json +29 -0
  538. package/dist/node_modules/yallist/yallist.js +426 -0
  539. package/dist/package-lock.json +830 -0
  540. package/dist/package.json +39 -0
  541. package/dist/static/expected_tile_2193_153_255_z7.png +0 -0
  542. package/dist/static/expected_tile_NZTM2000Quad_30_33_z6.png +0 -0
  543. package/dist/static/expected_tile_WebMercatorQuad_252_156_z8.png +0 -0
  544. package/package.json +13 -13
  545. package/scripts/create.deployment.package.mjs +1 -1
  546. package/src/__tests__/config.data.ts +82 -0
  547. package/src/__tests__/index.test.ts +3 -3
  548. package/src/__tests__/tile.set.cache.test.ts +1 -67
  549. package/src/__tests__/wmts.capability.test.ts +312 -139
  550. package/src/__tests__/xyz.test.ts +5 -49
  551. package/src/__tests__/xyz.util.ts +6 -32
  552. package/src/cotar.cache.ts +54 -0
  553. package/src/index.ts +36 -32
  554. package/src/routes/__tests__/attribution.test.ts +8 -9
  555. package/src/routes/__tests__/fonts.test.ts +80 -0
  556. package/src/routes/__tests__/memory.fs.ts +77 -0
  557. package/src/routes/__tests__/sprites.test.ts +64 -0
  558. package/src/routes/__tests__/wmts.test.ts +75 -15
  559. package/src/routes/api.ts +0 -4
  560. package/src/routes/attribution.ts +12 -18
  561. package/src/routes/fonts.ts +62 -0
  562. package/src/routes/imagery.ts +9 -7
  563. package/src/routes/sprites.ts +41 -0
  564. package/src/routes/tile.json.ts +1 -2
  565. package/src/routes/tile.wmts.ts +20 -22
  566. package/src/tile.set.cache.ts +1 -28
  567. package/src/tile.set.raster.ts +4 -2
  568. package/src/tile.set.vector.ts +3 -21
  569. package/src/wmts.capability.ts +169 -67
  570. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ const detectLibc = require('detect-libc');
4
+
5
+ const env = process.env;
6
+
7
+ module.exports = function () {
8
+ const arch = env.npm_config_arch || process.arch;
9
+ const platform = env.npm_config_platform || process.platform;
10
+ const libc = process.env.npm_config_libc ||
11
+ /* istanbul ignore next */
12
+ (detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : '');
13
+ const libcId = platform !== 'linux' || libc === detectLibc.GLIBC ? '' : libc;
14
+
15
+ const platformId = [`${platform}${libcId}`];
16
+
17
+ if (arch === 'arm') {
18
+ const fallback = process.versions.electron ? '7' : '6';
19
+ platformId.push(`armv${env.npm_config_arm_version || process.config.variables.arm_version || fallback}`);
20
+ } else if (arch === 'arm64') {
21
+ platformId.push(`arm64v${env.npm_config_arm_version || '8'}`);
22
+ } else {
23
+ platformId.push(arch);
24
+ }
25
+
26
+ return platformId.join('-');
27
+ };
@@ -0,0 +1,473 @@
1
+ 'use strict';
2
+
3
+ const is = require('./is');
4
+
5
+ /**
6
+ * Weighting to apply when using contain/cover fit.
7
+ * @member
8
+ * @private
9
+ */
10
+ const gravity = {
11
+ center: 0,
12
+ centre: 0,
13
+ north: 1,
14
+ east: 2,
15
+ south: 3,
16
+ west: 4,
17
+ northeast: 5,
18
+ southeast: 6,
19
+ southwest: 7,
20
+ northwest: 8
21
+ };
22
+
23
+ /**
24
+ * Position to apply when using contain/cover fit.
25
+ * @member
26
+ * @private
27
+ */
28
+ const position = {
29
+ top: 1,
30
+ right: 2,
31
+ bottom: 3,
32
+ left: 4,
33
+ 'right top': 5,
34
+ 'right bottom': 6,
35
+ 'left bottom': 7,
36
+ 'left top': 8
37
+ };
38
+
39
+ /**
40
+ * Strategies for automagic cover behaviour.
41
+ * @member
42
+ * @private
43
+ */
44
+ const strategy = {
45
+ entropy: 16,
46
+ attention: 17
47
+ };
48
+
49
+ /**
50
+ * Reduction kernels.
51
+ * @member
52
+ * @private
53
+ */
54
+ const kernel = {
55
+ nearest: 'nearest',
56
+ cubic: 'cubic',
57
+ mitchell: 'mitchell',
58
+ lanczos2: 'lanczos2',
59
+ lanczos3: 'lanczos3'
60
+ };
61
+
62
+ /**
63
+ * Methods by which an image can be resized to fit the provided dimensions.
64
+ * @member
65
+ * @private
66
+ */
67
+ const fit = {
68
+ contain: 'contain',
69
+ cover: 'cover',
70
+ fill: 'fill',
71
+ inside: 'inside',
72
+ outside: 'outside'
73
+ };
74
+
75
+ /**
76
+ * Map external fit property to internal canvas property.
77
+ * @member
78
+ * @private
79
+ */
80
+ const mapFitToCanvas = {
81
+ contain: 'embed',
82
+ cover: 'crop',
83
+ fill: 'ignore_aspect',
84
+ inside: 'max',
85
+ outside: 'min'
86
+ };
87
+
88
+ /**
89
+ * @private
90
+ */
91
+ function isRotationExpected (options) {
92
+ return (options.angle % 360) !== 0 || options.useExifOrientation === true || options.rotationAngle !== 0;
93
+ }
94
+
95
+ /**
96
+ * Resize image to `width`, `height` or `width x height`.
97
+ *
98
+ * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are:
99
+ * - `cover`: (default) Preserving aspect ratio, ensure the image covers both provided dimensions by cropping/clipping to fit.
100
+ * - `contain`: Preserving aspect ratio, contain within both provided dimensions using "letterboxing" where necessary.
101
+ * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions.
102
+ * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified.
103
+ * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified.
104
+ *
105
+ * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.
106
+ *
107
+ * When using a `fit` of `cover` or `contain`, the default **position** is `centre`. Other options are:
108
+ * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`.
109
+ * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`.
110
+ * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy.
111
+ *
112
+ * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.
113
+ *
114
+ * The experimental strategy-based approach resizes so one dimension is at its target length
115
+ * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy.
116
+ * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29).
117
+ * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones.
118
+ *
119
+ * Possible interpolation kernels are:
120
+ * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation).
121
+ * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline).
122
+ * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf).
123
+ * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`.
124
+ * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default).
125
+ *
126
+ * @example
127
+ * sharp(input)
128
+ * .resize({ width: 100 })
129
+ * .toBuffer()
130
+ * .then(data => {
131
+ * // 100 pixels wide, auto-scaled height
132
+ * });
133
+ *
134
+ * @example
135
+ * sharp(input)
136
+ * .resize({ height: 100 })
137
+ * .toBuffer()
138
+ * .then(data => {
139
+ * // 100 pixels high, auto-scaled width
140
+ * });
141
+ *
142
+ * @example
143
+ * sharp(input)
144
+ * .resize(200, 300, {
145
+ * kernel: sharp.kernel.nearest,
146
+ * fit: 'contain',
147
+ * position: 'right top',
148
+ * background: { r: 255, g: 255, b: 255, alpha: 0.5 }
149
+ * })
150
+ * .toFile('output.png')
151
+ * .then(() => {
152
+ * // output.png is a 200 pixels wide and 300 pixels high image
153
+ * // containing a nearest-neighbour scaled version
154
+ * // contained within the north-east corner of a semi-transparent white canvas
155
+ * });
156
+ *
157
+ * @example
158
+ * const transformer = sharp()
159
+ * .resize({
160
+ * width: 200,
161
+ * height: 200,
162
+ * fit: sharp.fit.cover,
163
+ * position: sharp.strategy.entropy
164
+ * });
165
+ * // Read image data from readableStream
166
+ * // Write 200px square auto-cropped image data to writableStream
167
+ * readableStream
168
+ * .pipe(transformer)
169
+ * .pipe(writableStream);
170
+ *
171
+ * @example
172
+ * sharp(input)
173
+ * .resize(200, 200, {
174
+ * fit: sharp.fit.inside,
175
+ * withoutEnlargement: true
176
+ * })
177
+ * .toFormat('jpeg')
178
+ * .toBuffer()
179
+ * .then(function(outputBuffer) {
180
+ * // outputBuffer contains JPEG image data
181
+ * // no wider and no higher than 200 pixels
182
+ * // and no larger than the input image
183
+ * });
184
+ *
185
+ * @example
186
+ * sharp(input)
187
+ * .resize(200, 200, {
188
+ * fit: sharp.fit.outside,
189
+ * withoutReduction: true
190
+ * })
191
+ * .toFormat('jpeg')
192
+ * .toBuffer()
193
+ * .then(function(outputBuffer) {
194
+ * // outputBuffer contains JPEG image data
195
+ * // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio
196
+ * // and no smaller than the input image
197
+ * });
198
+ *
199
+ * @example
200
+ * const scaleByHalf = await sharp(input)
201
+ * .metadata()
202
+ * .then(({ width }) => sharp(input)
203
+ * .resize(Math.round(width * 0.5))
204
+ * .toBuffer()
205
+ * );
206
+ *
207
+ * @param {number} [width] - pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height.
208
+ * @param {number} [height] - pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width.
209
+ * @param {Object} [options]
210
+ * @param {String} [options.width] - alternative means of specifying `width`. If both are present this take priority.
211
+ * @param {String} [options.height] - alternative means of specifying `height`. If both are present this take priority.
212
+ * @param {String} [options.fit='cover'] - how the image should be resized to fit both provided dimensions, one of `cover`, `contain`, `fill`, `inside` or `outside`.
213
+ * @param {String} [options.position='centre'] - position, gravity or strategy to use when `fit` is `cover` or `contain`.
214
+ * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.
215
+ * @param {String} [options.kernel='lanczos3'] - the kernel to use for image reduction.
216
+ * @param {Boolean} [options.withoutEnlargement=false] - do not enlarge if the width *or* height are already less than the specified dimensions, equivalent to GraphicsMagick's `>` geometry option.
217
+ * @param {Boolean} [options.withoutReduction=false] - do not reduce if the width *or* height are already greater than the specified dimensions, equivalent to GraphicsMagick's `<` geometry option.
218
+ * @param {Boolean} [options.fastShrinkOnLoad=true] - take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern on some images.
219
+ * @returns {Sharp}
220
+ * @throws {Error} Invalid parameters
221
+ */
222
+ function resize (width, height, options) {
223
+ if (is.defined(width)) {
224
+ if (is.object(width) && !is.defined(options)) {
225
+ options = width;
226
+ } else if (is.integer(width) && width > 0) {
227
+ this.options.width = width;
228
+ } else {
229
+ throw is.invalidParameterError('width', 'positive integer', width);
230
+ }
231
+ } else {
232
+ this.options.width = -1;
233
+ }
234
+ if (is.defined(height)) {
235
+ if (is.integer(height) && height > 0) {
236
+ this.options.height = height;
237
+ } else {
238
+ throw is.invalidParameterError('height', 'positive integer', height);
239
+ }
240
+ } else {
241
+ this.options.height = -1;
242
+ }
243
+ if (is.object(options)) {
244
+ // Width
245
+ if (is.defined(options.width)) {
246
+ if (is.integer(options.width) && options.width > 0) {
247
+ this.options.width = options.width;
248
+ } else {
249
+ throw is.invalidParameterError('width', 'positive integer', options.width);
250
+ }
251
+ }
252
+ // Height
253
+ if (is.defined(options.height)) {
254
+ if (is.integer(options.height) && options.height > 0) {
255
+ this.options.height = options.height;
256
+ } else {
257
+ throw is.invalidParameterError('height', 'positive integer', options.height);
258
+ }
259
+ }
260
+ // Fit
261
+ if (is.defined(options.fit)) {
262
+ const canvas = mapFitToCanvas[options.fit];
263
+ if (is.string(canvas)) {
264
+ this.options.canvas = canvas;
265
+ } else {
266
+ throw is.invalidParameterError('fit', 'valid fit', options.fit);
267
+ }
268
+ }
269
+ // Position
270
+ if (is.defined(options.position)) {
271
+ const pos = is.integer(options.position)
272
+ ? options.position
273
+ : strategy[options.position] || position[options.position] || gravity[options.position];
274
+ if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) {
275
+ this.options.position = pos;
276
+ } else {
277
+ throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position);
278
+ }
279
+ }
280
+ // Background
281
+ this._setBackgroundColourOption('resizeBackground', options.background);
282
+ // Kernel
283
+ if (is.defined(options.kernel)) {
284
+ if (is.string(kernel[options.kernel])) {
285
+ this.options.kernel = kernel[options.kernel];
286
+ } else {
287
+ throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel);
288
+ }
289
+ }
290
+ // Without enlargement
291
+ if (is.defined(options.withoutEnlargement)) {
292
+ this._setBooleanOption('withoutEnlargement', options.withoutEnlargement);
293
+ }
294
+ // Without reduction
295
+ if (is.defined(options.withoutReduction)) {
296
+ this._setBooleanOption('withoutReduction', options.withoutReduction);
297
+ }
298
+ // Shrink on load
299
+ if (is.defined(options.fastShrinkOnLoad)) {
300
+ this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad);
301
+ }
302
+ }
303
+ return this;
304
+ }
305
+
306
+ /**
307
+ * Extends/pads the edges of the image with the provided background colour.
308
+ * This operation will always occur after resizing and extraction, if any.
309
+ *
310
+ * @example
311
+ * // Resize to 140 pixels wide, then add 10 transparent pixels
312
+ * // to the top, left and right edges and 20 to the bottom edge
313
+ * sharp(input)
314
+ * .resize(140)
315
+ * .extend({
316
+ * top: 10,
317
+ * bottom: 20,
318
+ * left: 10,
319
+ * right: 10,
320
+ * background: { r: 0, g: 0, b: 0, alpha: 0 }
321
+ * })
322
+ * ...
323
+ *
324
+ * @example
325
+ * // Add a row of 10 red pixels to the bottom
326
+ * sharp(input)
327
+ * .extend({
328
+ * bottom: 10,
329
+ * background: 'red'
330
+ * })
331
+ * ...
332
+ *
333
+ * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts
334
+ * @param {number} [extend.top=0]
335
+ * @param {number} [extend.left=0]
336
+ * @param {number} [extend.bottom=0]
337
+ * @param {number} [extend.right=0]
338
+ * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.
339
+ * @returns {Sharp}
340
+ * @throws {Error} Invalid parameters
341
+ */
342
+ function extend (extend) {
343
+ if (is.integer(extend) && extend > 0) {
344
+ this.options.extendTop = extend;
345
+ this.options.extendBottom = extend;
346
+ this.options.extendLeft = extend;
347
+ this.options.extendRight = extend;
348
+ } else if (is.object(extend)) {
349
+ if (is.defined(extend.top)) {
350
+ if (is.integer(extend.top) && extend.top >= 0) {
351
+ this.options.extendTop = extend.top;
352
+ } else {
353
+ throw is.invalidParameterError('top', 'positive integer', extend.top);
354
+ }
355
+ }
356
+ if (is.defined(extend.bottom)) {
357
+ if (is.integer(extend.bottom) && extend.bottom >= 0) {
358
+ this.options.extendBottom = extend.bottom;
359
+ } else {
360
+ throw is.invalidParameterError('bottom', 'positive integer', extend.bottom);
361
+ }
362
+ }
363
+ if (is.defined(extend.left)) {
364
+ if (is.integer(extend.left) && extend.left >= 0) {
365
+ this.options.extendLeft = extend.left;
366
+ } else {
367
+ throw is.invalidParameterError('left', 'positive integer', extend.left);
368
+ }
369
+ }
370
+ if (is.defined(extend.right)) {
371
+ if (is.integer(extend.right) && extend.right >= 0) {
372
+ this.options.extendRight = extend.right;
373
+ } else {
374
+ throw is.invalidParameterError('right', 'positive integer', extend.right);
375
+ }
376
+ }
377
+ this._setBackgroundColourOption('extendBackground', extend.background);
378
+ } else {
379
+ throw is.invalidParameterError('extend', 'integer or object', extend);
380
+ }
381
+ return this;
382
+ }
383
+
384
+ /**
385
+ * Extract/crop a region of the image.
386
+ *
387
+ * - Use `extract` before `resize` for pre-resize extraction.
388
+ * - Use `extract` after `resize` for post-resize extraction.
389
+ * - Use `extract` before and after for both.
390
+ *
391
+ * @example
392
+ * sharp(input)
393
+ * .extract({ left: left, top: top, width: width, height: height })
394
+ * .toFile(output, function(err) {
395
+ * // Extract a region of the input image, saving in the same format.
396
+ * });
397
+ * @example
398
+ * sharp(input)
399
+ * .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
400
+ * .resize(width, height)
401
+ * .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
402
+ * .toFile(output, function(err) {
403
+ * // Extract a region, resize, then extract from the resized image
404
+ * });
405
+ *
406
+ * @param {Object} options - describes the region to extract using integral pixel values
407
+ * @param {number} options.left - zero-indexed offset from left edge
408
+ * @param {number} options.top - zero-indexed offset from top edge
409
+ * @param {number} options.width - width of region to extract
410
+ * @param {number} options.height - height of region to extract
411
+ * @returns {Sharp}
412
+ * @throws {Error} Invalid parameters
413
+ */
414
+ function extract (options) {
415
+ const suffix = this.options.width === -1 && this.options.height === -1 ? 'Pre' : 'Post';
416
+ ['left', 'top', 'width', 'height'].forEach(function (name) {
417
+ const value = options[name];
418
+ if (is.integer(value) && value >= 0) {
419
+ this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value;
420
+ } else {
421
+ throw is.invalidParameterError(name, 'integer', value);
422
+ }
423
+ }, this);
424
+ // Ensure existing rotation occurs before pre-resize extraction
425
+ if (suffix === 'Pre' && isRotationExpected(this.options)) {
426
+ this.options.rotateBeforePreExtract = true;
427
+ }
428
+ return this;
429
+ }
430
+
431
+ /**
432
+ * Trim "boring" pixels from all edges that contain values similar to the top-left pixel.
433
+ * Images consisting entirely of a single colour will calculate "boring" using the alpha channel, if any.
434
+ *
435
+ * The `info` response Object, obtained from callback of `.toFile()` or `.toBuffer()`,
436
+ * will contain `trimOffsetLeft` and `trimOffsetTop` properties.
437
+ *
438
+ * @param {number} [threshold=10] the allowed difference from the top-left pixel, a number greater than zero.
439
+ * @returns {Sharp}
440
+ * @throws {Error} Invalid parameters
441
+ */
442
+ function trim (threshold) {
443
+ if (!is.defined(threshold)) {
444
+ this.options.trimThreshold = 10;
445
+ } else if (is.number(threshold) && threshold > 0) {
446
+ this.options.trimThreshold = threshold;
447
+ } else {
448
+ throw is.invalidParameterError('threshold', 'number greater than zero', threshold);
449
+ }
450
+ if (this.options.trimThreshold && isRotationExpected(this.options)) {
451
+ this.options.rotateBeforePreExtract = true;
452
+ }
453
+ return this;
454
+ }
455
+
456
+ /**
457
+ * Decorate the Sharp prototype with resize-related functions.
458
+ * @private
459
+ */
460
+ module.exports = function (Sharp) {
461
+ Object.assign(Sharp.prototype, {
462
+ resize,
463
+ extend,
464
+ extract,
465
+ trim
466
+ });
467
+ // Class attributes
468
+ Sharp.gravity = gravity;
469
+ Sharp.strategy = strategy;
470
+ Sharp.kernel = kernel;
471
+ Sharp.fit = fit;
472
+ Sharp.position = position;
473
+ };
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ const platformAndArch = require('./platform')();
4
+
5
+ /* istanbul ignore next */
6
+ try {
7
+ module.exports = require(`../build/Release/sharp-${platformAndArch}.node`);
8
+ } catch (err) {
9
+ // Bail early if bindings aren't available
10
+ const help = ['', 'Something went wrong installing the "sharp" module', '', err.message, '', 'Possible solutions:'];
11
+ if (/dylib/.test(err.message) && /Incompatible library version/.test(err.message)) {
12
+ help.push('- Update Homebrew: "brew update && brew upgrade vips"');
13
+ } else {
14
+ const [platform, arch] = platformAndArch.split('-');
15
+ if (platform === 'linux' && /Module did not self-register/.test(err.message)) {
16
+ help.push('- Using worker threads? See https://sharp.pixelplumbing.com/install#worker-threads');
17
+ }
18
+ help.push(
19
+ '- Install with verbose logging and look for errors: "npm install --ignore-scripts=false --foreground-scripts --verbose sharp"',
20
+ `- Install for the current ${platformAndArch} runtime: "npm install --platform=${platform} --arch=${arch} sharp"`
21
+ );
22
+ }
23
+ help.push(
24
+ '- Consult the installation documentation: https://sharp.pixelplumbing.com/install'
25
+ );
26
+ // Check loaded
27
+ if (process.platform === 'win32' || /symbol/.test(err.message)) {
28
+ const loadedModule = Object.keys(require.cache).find((i) => /[\\/]build[\\/]Release[\\/]sharp(.*)\.node$/.test(i));
29
+ if (loadedModule) {
30
+ const [, loadedPackage] = loadedModule.match(/node_modules[\\/]([^\\/]+)[\\/]/);
31
+ help.push(`- Ensure the version of sharp aligns with the ${loadedPackage} package: "npm ls sharp"`);
32
+ }
33
+ }
34
+ throw new Error(help.join('\n'));
35
+ }