tileserver-gl-light 4.1.0 → 4.1.2

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 (1043) hide show
  1. package/.dockerignore +1 -0
  2. package/Dockerfile +23 -5
  3. package/Dockerfile_test +30 -21
  4. package/PUBLISHING.md +8 -1
  5. package/docs/config.rst +9 -0
  6. package/docs/endpoints.rst +27 -1
  7. package/package.json +3 -2
  8. package/public/templates/wmts.tmpl +4 -4
  9. package/publish.js +1 -2
  10. package/src/serve_rendered.js +412 -55
  11. package/src/server.js +39 -7
  12. package/test/static.js +1 -1
  13. package/fonts/Open Sans Bold/0-255.pbf +0 -0
  14. package/fonts/Open Sans Bold/1024-1279.pbf +0 -0
  15. package/fonts/Open Sans Bold/10240-10495.pbf +0 -3
  16. package/fonts/Open Sans Bold/10496-10751.pbf +0 -3
  17. package/fonts/Open Sans Bold/10752-11007.pbf +0 -3
  18. package/fonts/Open Sans Bold/11008-11263.pbf +0 -3
  19. package/fonts/Open Sans Bold/11264-11519.pbf +0 -3
  20. package/fonts/Open Sans Bold/11520-11775.pbf +0 -3
  21. package/fonts/Open Sans Bold/11776-12031.pbf +0 -3
  22. package/fonts/Open Sans Bold/12032-12287.pbf +0 -3
  23. package/fonts/Open Sans Bold/12288-12543.pbf +0 -3
  24. package/fonts/Open Sans Bold/12544-12799.pbf +0 -3
  25. package/fonts/Open Sans Bold/1280-1535.pbf +0 -0
  26. package/fonts/Open Sans Bold/12800-13055.pbf +0 -3
  27. package/fonts/Open Sans Bold/13056-13311.pbf +0 -3
  28. package/fonts/Open Sans Bold/13312-13567.pbf +0 -3
  29. package/fonts/Open Sans Bold/13568-13823.pbf +0 -3
  30. package/fonts/Open Sans Bold/13824-14079.pbf +0 -3
  31. package/fonts/Open Sans Bold/14080-14335.pbf +0 -3
  32. package/fonts/Open Sans Bold/14336-14591.pbf +0 -3
  33. package/fonts/Open Sans Bold/14592-14847.pbf +0 -3
  34. package/fonts/Open Sans Bold/14848-15103.pbf +0 -3
  35. package/fonts/Open Sans Bold/15104-15359.pbf +0 -3
  36. package/fonts/Open Sans Bold/1536-1791.pbf +0 -3
  37. package/fonts/Open Sans Bold/15360-15615.pbf +0 -3
  38. package/fonts/Open Sans Bold/15616-15871.pbf +0 -3
  39. package/fonts/Open Sans Bold/15872-16127.pbf +0 -3
  40. package/fonts/Open Sans Bold/16128-16383.pbf +0 -3
  41. package/fonts/Open Sans Bold/16384-16639.pbf +0 -3
  42. package/fonts/Open Sans Bold/16640-16895.pbf +0 -3
  43. package/fonts/Open Sans Bold/16896-17151.pbf +0 -3
  44. package/fonts/Open Sans Bold/17152-17407.pbf +0 -3
  45. package/fonts/Open Sans Bold/17408-17663.pbf +0 -3
  46. package/fonts/Open Sans Bold/17664-17919.pbf +0 -3
  47. package/fonts/Open Sans Bold/1792-2047.pbf +0 -3
  48. package/fonts/Open Sans Bold/17920-18175.pbf +0 -3
  49. package/fonts/Open Sans Bold/18176-18431.pbf +0 -3
  50. package/fonts/Open Sans Bold/18432-18687.pbf +0 -3
  51. package/fonts/Open Sans Bold/18688-18943.pbf +0 -3
  52. package/fonts/Open Sans Bold/18944-19199.pbf +0 -3
  53. package/fonts/Open Sans Bold/19200-19455.pbf +0 -3
  54. package/fonts/Open Sans Bold/19456-19711.pbf +0 -3
  55. package/fonts/Open Sans Bold/19712-19967.pbf +0 -3
  56. package/fonts/Open Sans Bold/19968-20223.pbf +0 -3
  57. package/fonts/Open Sans Bold/20224-20479.pbf +0 -3
  58. package/fonts/Open Sans Bold/2048-2303.pbf +0 -3
  59. package/fonts/Open Sans Bold/20480-20735.pbf +0 -3
  60. package/fonts/Open Sans Bold/20736-20991.pbf +0 -3
  61. package/fonts/Open Sans Bold/20992-21247.pbf +0 -3
  62. package/fonts/Open Sans Bold/21248-21503.pbf +0 -3
  63. package/fonts/Open Sans Bold/21504-21759.pbf +0 -3
  64. package/fonts/Open Sans Bold/21760-22015.pbf +0 -3
  65. package/fonts/Open Sans Bold/22016-22271.pbf +0 -3
  66. package/fonts/Open Sans Bold/22272-22527.pbf +0 -3
  67. package/fonts/Open Sans Bold/22528-22783.pbf +0 -3
  68. package/fonts/Open Sans Bold/22784-23039.pbf +0 -3
  69. package/fonts/Open Sans Bold/2304-2559.pbf +0 -3
  70. package/fonts/Open Sans Bold/23040-23295.pbf +0 -3
  71. package/fonts/Open Sans Bold/23296-23551.pbf +0 -3
  72. package/fonts/Open Sans Bold/23552-23807.pbf +0 -3
  73. package/fonts/Open Sans Bold/23808-24063.pbf +0 -3
  74. package/fonts/Open Sans Bold/24064-24319.pbf +0 -3
  75. package/fonts/Open Sans Bold/24320-24575.pbf +0 -3
  76. package/fonts/Open Sans Bold/24576-24831.pbf +0 -3
  77. package/fonts/Open Sans Bold/24832-25087.pbf +0 -3
  78. package/fonts/Open Sans Bold/25088-25343.pbf +0 -3
  79. package/fonts/Open Sans Bold/25344-25599.pbf +0 -3
  80. package/fonts/Open Sans Bold/256-511.pbf +0 -0
  81. package/fonts/Open Sans Bold/2560-2815.pbf +0 -3
  82. package/fonts/Open Sans Bold/25600-25855.pbf +0 -3
  83. package/fonts/Open Sans Bold/25856-26111.pbf +0 -3
  84. package/fonts/Open Sans Bold/26112-26367.pbf +0 -3
  85. package/fonts/Open Sans Bold/26368-26623.pbf +0 -3
  86. package/fonts/Open Sans Bold/26624-26879.pbf +0 -3
  87. package/fonts/Open Sans Bold/26880-27135.pbf +0 -3
  88. package/fonts/Open Sans Bold/27136-27391.pbf +0 -3
  89. package/fonts/Open Sans Bold/27392-27647.pbf +0 -3
  90. package/fonts/Open Sans Bold/27648-27903.pbf +0 -3
  91. package/fonts/Open Sans Bold/27904-28159.pbf +0 -3
  92. package/fonts/Open Sans Bold/2816-3071.pbf +0 -3
  93. package/fonts/Open Sans Bold/28160-28415.pbf +0 -3
  94. package/fonts/Open Sans Bold/28416-28671.pbf +0 -3
  95. package/fonts/Open Sans Bold/28672-28927.pbf +0 -3
  96. package/fonts/Open Sans Bold/28928-29183.pbf +0 -3
  97. package/fonts/Open Sans Bold/29184-29439.pbf +0 -3
  98. package/fonts/Open Sans Bold/29440-29695.pbf +0 -3
  99. package/fonts/Open Sans Bold/29696-29951.pbf +0 -3
  100. package/fonts/Open Sans Bold/29952-30207.pbf +0 -3
  101. package/fonts/Open Sans Bold/30208-30463.pbf +0 -3
  102. package/fonts/Open Sans Bold/30464-30719.pbf +0 -3
  103. package/fonts/Open Sans Bold/3072-3327.pbf +0 -3
  104. package/fonts/Open Sans Bold/30720-30975.pbf +0 -3
  105. package/fonts/Open Sans Bold/30976-31231.pbf +0 -3
  106. package/fonts/Open Sans Bold/31232-31487.pbf +0 -3
  107. package/fonts/Open Sans Bold/31488-31743.pbf +0 -3
  108. package/fonts/Open Sans Bold/31744-31999.pbf +0 -3
  109. package/fonts/Open Sans Bold/32000-32255.pbf +0 -3
  110. package/fonts/Open Sans Bold/32256-32511.pbf +0 -3
  111. package/fonts/Open Sans Bold/32512-32767.pbf +0 -3
  112. package/fonts/Open Sans Bold/32768-33023.pbf +0 -3
  113. package/fonts/Open Sans Bold/33024-33279.pbf +0 -3
  114. package/fonts/Open Sans Bold/3328-3583.pbf +0 -3
  115. package/fonts/Open Sans Bold/33280-33535.pbf +0 -3
  116. package/fonts/Open Sans Bold/33536-33791.pbf +0 -3
  117. package/fonts/Open Sans Bold/33792-34047.pbf +0 -3
  118. package/fonts/Open Sans Bold/34048-34303.pbf +0 -3
  119. package/fonts/Open Sans Bold/34304-34559.pbf +0 -3
  120. package/fonts/Open Sans Bold/34560-34815.pbf +0 -3
  121. package/fonts/Open Sans Bold/34816-35071.pbf +0 -3
  122. package/fonts/Open Sans Bold/35072-35327.pbf +0 -3
  123. package/fonts/Open Sans Bold/35328-35583.pbf +0 -3
  124. package/fonts/Open Sans Bold/35584-35839.pbf +0 -3
  125. package/fonts/Open Sans Bold/3584-3839.pbf +0 -3
  126. package/fonts/Open Sans Bold/35840-36095.pbf +0 -3
  127. package/fonts/Open Sans Bold/36096-36351.pbf +0 -3
  128. package/fonts/Open Sans Bold/36352-36607.pbf +0 -3
  129. package/fonts/Open Sans Bold/36608-36863.pbf +0 -3
  130. package/fonts/Open Sans Bold/36864-37119.pbf +0 -3
  131. package/fonts/Open Sans Bold/37120-37375.pbf +0 -3
  132. package/fonts/Open Sans Bold/37376-37631.pbf +0 -3
  133. package/fonts/Open Sans Bold/37632-37887.pbf +0 -3
  134. package/fonts/Open Sans Bold/37888-38143.pbf +0 -3
  135. package/fonts/Open Sans Bold/38144-38399.pbf +0 -3
  136. package/fonts/Open Sans Bold/3840-4095.pbf +0 -3
  137. package/fonts/Open Sans Bold/38400-38655.pbf +0 -3
  138. package/fonts/Open Sans Bold/38656-38911.pbf +0 -3
  139. package/fonts/Open Sans Bold/38912-39167.pbf +0 -3
  140. package/fonts/Open Sans Bold/39168-39423.pbf +0 -3
  141. package/fonts/Open Sans Bold/39424-39679.pbf +0 -3
  142. package/fonts/Open Sans Bold/39680-39935.pbf +0 -3
  143. package/fonts/Open Sans Bold/39936-40191.pbf +0 -3
  144. package/fonts/Open Sans Bold/40192-40447.pbf +0 -3
  145. package/fonts/Open Sans Bold/40448-40703.pbf +0 -3
  146. package/fonts/Open Sans Bold/40704-40959.pbf +0 -3
  147. package/fonts/Open Sans Bold/4096-4351.pbf +0 -3
  148. package/fonts/Open Sans Bold/40960-41215.pbf +0 -3
  149. package/fonts/Open Sans Bold/41216-41471.pbf +0 -3
  150. package/fonts/Open Sans Bold/41472-41727.pbf +0 -3
  151. package/fonts/Open Sans Bold/41728-41983.pbf +0 -3
  152. package/fonts/Open Sans Bold/41984-42239.pbf +0 -3
  153. package/fonts/Open Sans Bold/42240-42495.pbf +0 -3
  154. package/fonts/Open Sans Bold/42496-42751.pbf +0 -3
  155. package/fonts/Open Sans Bold/42752-43007.pbf +0 -3
  156. package/fonts/Open Sans Bold/43008-43263.pbf +0 -3
  157. package/fonts/Open Sans Bold/43264-43519.pbf +0 -3
  158. package/fonts/Open Sans Bold/4352-4607.pbf +0 -3
  159. package/fonts/Open Sans Bold/43520-43775.pbf +0 -3
  160. package/fonts/Open Sans Bold/43776-44031.pbf +0 -3
  161. package/fonts/Open Sans Bold/44032-44287.pbf +0 -3
  162. package/fonts/Open Sans Bold/44288-44543.pbf +0 -3
  163. package/fonts/Open Sans Bold/44544-44799.pbf +0 -3
  164. package/fonts/Open Sans Bold/44800-45055.pbf +0 -3
  165. package/fonts/Open Sans Bold/45056-45311.pbf +0 -3
  166. package/fonts/Open Sans Bold/45312-45567.pbf +0 -3
  167. package/fonts/Open Sans Bold/45568-45823.pbf +0 -3
  168. package/fonts/Open Sans Bold/45824-46079.pbf +0 -3
  169. package/fonts/Open Sans Bold/4608-4863.pbf +0 -3
  170. package/fonts/Open Sans Bold/46080-46335.pbf +0 -3
  171. package/fonts/Open Sans Bold/46336-46591.pbf +0 -3
  172. package/fonts/Open Sans Bold/46592-46847.pbf +0 -3
  173. package/fonts/Open Sans Bold/46848-47103.pbf +0 -3
  174. package/fonts/Open Sans Bold/47104-47359.pbf +0 -3
  175. package/fonts/Open Sans Bold/47360-47615.pbf +0 -3
  176. package/fonts/Open Sans Bold/47616-47871.pbf +0 -3
  177. package/fonts/Open Sans Bold/47872-48127.pbf +0 -3
  178. package/fonts/Open Sans Bold/48128-48383.pbf +0 -3
  179. package/fonts/Open Sans Bold/48384-48639.pbf +0 -3
  180. package/fonts/Open Sans Bold/4864-5119.pbf +0 -3
  181. package/fonts/Open Sans Bold/48640-48895.pbf +0 -3
  182. package/fonts/Open Sans Bold/48896-49151.pbf +0 -3
  183. package/fonts/Open Sans Bold/49152-49407.pbf +0 -3
  184. package/fonts/Open Sans Bold/49408-49663.pbf +0 -3
  185. package/fonts/Open Sans Bold/49664-49919.pbf +0 -3
  186. package/fonts/Open Sans Bold/49920-50175.pbf +0 -3
  187. package/fonts/Open Sans Bold/50176-50431.pbf +0 -3
  188. package/fonts/Open Sans Bold/50432-50687.pbf +0 -3
  189. package/fonts/Open Sans Bold/50688-50943.pbf +0 -3
  190. package/fonts/Open Sans Bold/50944-51199.pbf +0 -3
  191. package/fonts/Open Sans Bold/512-767.pbf +0 -0
  192. package/fonts/Open Sans Bold/5120-5375.pbf +0 -3
  193. package/fonts/Open Sans Bold/51200-51455.pbf +0 -3
  194. package/fonts/Open Sans Bold/51456-51711.pbf +0 -3
  195. package/fonts/Open Sans Bold/51712-51967.pbf +0 -3
  196. package/fonts/Open Sans Bold/51968-52223.pbf +0 -3
  197. package/fonts/Open Sans Bold/52224-52479.pbf +0 -3
  198. package/fonts/Open Sans Bold/52480-52735.pbf +0 -3
  199. package/fonts/Open Sans Bold/52736-52991.pbf +0 -3
  200. package/fonts/Open Sans Bold/52992-53247.pbf +0 -3
  201. package/fonts/Open Sans Bold/53248-53503.pbf +0 -3
  202. package/fonts/Open Sans Bold/53504-53759.pbf +0 -3
  203. package/fonts/Open Sans Bold/5376-5631.pbf +0 -3
  204. package/fonts/Open Sans Bold/53760-54015.pbf +0 -3
  205. package/fonts/Open Sans Bold/54016-54271.pbf +0 -3
  206. package/fonts/Open Sans Bold/54272-54527.pbf +0 -3
  207. package/fonts/Open Sans Bold/54528-54783.pbf +0 -3
  208. package/fonts/Open Sans Bold/54784-55039.pbf +0 -3
  209. package/fonts/Open Sans Bold/55040-55295.pbf +0 -3
  210. package/fonts/Open Sans Bold/55296-55551.pbf +0 -3
  211. package/fonts/Open Sans Bold/55552-55807.pbf +0 -3
  212. package/fonts/Open Sans Bold/55808-56063.pbf +0 -3
  213. package/fonts/Open Sans Bold/56064-56319.pbf +0 -3
  214. package/fonts/Open Sans Bold/5632-5887.pbf +0 -3
  215. package/fonts/Open Sans Bold/56320-56575.pbf +0 -3
  216. package/fonts/Open Sans Bold/56576-56831.pbf +0 -3
  217. package/fonts/Open Sans Bold/56832-57087.pbf +0 -3
  218. package/fonts/Open Sans Bold/57088-57343.pbf +0 -3
  219. package/fonts/Open Sans Bold/57344-57599.pbf +0 -3
  220. package/fonts/Open Sans Bold/57600-57855.pbf +0 -3
  221. package/fonts/Open Sans Bold/57856-58111.pbf +0 -3
  222. package/fonts/Open Sans Bold/58112-58367.pbf +0 -3
  223. package/fonts/Open Sans Bold/58368-58623.pbf +0 -3
  224. package/fonts/Open Sans Bold/58624-58879.pbf +0 -3
  225. package/fonts/Open Sans Bold/5888-6143.pbf +0 -3
  226. package/fonts/Open Sans Bold/58880-59135.pbf +0 -3
  227. package/fonts/Open Sans Bold/59136-59391.pbf +0 -3
  228. package/fonts/Open Sans Bold/59392-59647.pbf +0 -3
  229. package/fonts/Open Sans Bold/59648-59903.pbf +0 -3
  230. package/fonts/Open Sans Bold/59904-60159.pbf +0 -3
  231. package/fonts/Open Sans Bold/60160-60415.pbf +0 -3
  232. package/fonts/Open Sans Bold/60416-60671.pbf +0 -3
  233. package/fonts/Open Sans Bold/60672-60927.pbf +0 -3
  234. package/fonts/Open Sans Bold/60928-61183.pbf +0 -3
  235. package/fonts/Open Sans Bold/61184-61439.pbf +0 -3
  236. package/fonts/Open Sans Bold/6144-6399.pbf +0 -3
  237. package/fonts/Open Sans Bold/61440-61695.pbf +0 -3
  238. package/fonts/Open Sans Bold/61696-61951.pbf +0 -3
  239. package/fonts/Open Sans Bold/61952-62207.pbf +0 -3
  240. package/fonts/Open Sans Bold/62208-62463.pbf +0 -3
  241. package/fonts/Open Sans Bold/62464-62719.pbf +0 -3
  242. package/fonts/Open Sans Bold/62720-62975.pbf +0 -3
  243. package/fonts/Open Sans Bold/62976-63231.pbf +0 -3
  244. package/fonts/Open Sans Bold/63232-63487.pbf +0 -3
  245. package/fonts/Open Sans Bold/63488-63743.pbf +0 -3
  246. package/fonts/Open Sans Bold/63744-63999.pbf +0 -3
  247. package/fonts/Open Sans Bold/6400-6655.pbf +0 -3
  248. package/fonts/Open Sans Bold/64000-64255.pbf +0 -3
  249. package/fonts/Open Sans Bold/64256-64511.pbf +0 -0
  250. package/fonts/Open Sans Bold/64512-64767.pbf +0 -3
  251. package/fonts/Open Sans Bold/64768-65023.pbf +0 -3
  252. package/fonts/Open Sans Bold/65024-65279.pbf +0 -0
  253. package/fonts/Open Sans Bold/65280-65535.pbf +0 -0
  254. package/fonts/Open Sans Bold/6656-6911.pbf +0 -3
  255. package/fonts/Open Sans Bold/6912-7167.pbf +0 -3
  256. package/fonts/Open Sans Bold/7168-7423.pbf +0 -3
  257. package/fonts/Open Sans Bold/7424-7679.pbf +0 -3
  258. package/fonts/Open Sans Bold/768-1023.pbf +0 -0
  259. package/fonts/Open Sans Bold/7680-7935.pbf +0 -0
  260. package/fonts/Open Sans Bold/7936-8191.pbf +0 -0
  261. package/fonts/Open Sans Bold/8192-8447.pbf +0 -0
  262. package/fonts/Open Sans Bold/8448-8703.pbf +0 -0
  263. package/fonts/Open Sans Bold/8704-8959.pbf +0 -0
  264. package/fonts/Open Sans Bold/8960-9215.pbf +0 -3
  265. package/fonts/Open Sans Bold/9216-9471.pbf +0 -3
  266. package/fonts/Open Sans Bold/9472-9727.pbf +0 -0
  267. package/fonts/Open Sans Bold/9728-9983.pbf +0 -3
  268. package/fonts/Open Sans Bold/9984-10239.pbf +0 -4
  269. package/fonts/Open Sans Italic/0-255.pbf +0 -0
  270. package/fonts/Open Sans Italic/1024-1279.pbf +0 -0
  271. package/fonts/Open Sans Italic/10240-10495.pbf +0 -3
  272. package/fonts/Open Sans Italic/10496-10751.pbf +0 -3
  273. package/fonts/Open Sans Italic/10752-11007.pbf +0 -3
  274. package/fonts/Open Sans Italic/11008-11263.pbf +0 -3
  275. package/fonts/Open Sans Italic/11264-11519.pbf +0 -3
  276. package/fonts/Open Sans Italic/11520-11775.pbf +0 -3
  277. package/fonts/Open Sans Italic/11776-12031.pbf +0 -3
  278. package/fonts/Open Sans Italic/12032-12287.pbf +0 -3
  279. package/fonts/Open Sans Italic/12288-12543.pbf +0 -3
  280. package/fonts/Open Sans Italic/12544-12799.pbf +0 -3
  281. package/fonts/Open Sans Italic/1280-1535.pbf +0 -0
  282. package/fonts/Open Sans Italic/12800-13055.pbf +0 -3
  283. package/fonts/Open Sans Italic/13056-13311.pbf +0 -3
  284. package/fonts/Open Sans Italic/13312-13567.pbf +0 -3
  285. package/fonts/Open Sans Italic/13568-13823.pbf +0 -3
  286. package/fonts/Open Sans Italic/13824-14079.pbf +0 -3
  287. package/fonts/Open Sans Italic/14080-14335.pbf +0 -3
  288. package/fonts/Open Sans Italic/14336-14591.pbf +0 -3
  289. package/fonts/Open Sans Italic/14592-14847.pbf +0 -3
  290. package/fonts/Open Sans Italic/14848-15103.pbf +0 -3
  291. package/fonts/Open Sans Italic/15104-15359.pbf +0 -3
  292. package/fonts/Open Sans Italic/1536-1791.pbf +0 -3
  293. package/fonts/Open Sans Italic/15360-15615.pbf +0 -3
  294. package/fonts/Open Sans Italic/15616-15871.pbf +0 -3
  295. package/fonts/Open Sans Italic/15872-16127.pbf +0 -3
  296. package/fonts/Open Sans Italic/16128-16383.pbf +0 -3
  297. package/fonts/Open Sans Italic/16384-16639.pbf +0 -3
  298. package/fonts/Open Sans Italic/16640-16895.pbf +0 -3
  299. package/fonts/Open Sans Italic/16896-17151.pbf +0 -3
  300. package/fonts/Open Sans Italic/17152-17407.pbf +0 -3
  301. package/fonts/Open Sans Italic/17408-17663.pbf +0 -3
  302. package/fonts/Open Sans Italic/17664-17919.pbf +0 -3
  303. package/fonts/Open Sans Italic/1792-2047.pbf +0 -3
  304. package/fonts/Open Sans Italic/17920-18175.pbf +0 -3
  305. package/fonts/Open Sans Italic/18176-18431.pbf +0 -3
  306. package/fonts/Open Sans Italic/18432-18687.pbf +0 -3
  307. package/fonts/Open Sans Italic/18688-18943.pbf +0 -3
  308. package/fonts/Open Sans Italic/18944-19199.pbf +0 -3
  309. package/fonts/Open Sans Italic/19200-19455.pbf +0 -3
  310. package/fonts/Open Sans Italic/19456-19711.pbf +0 -3
  311. package/fonts/Open Sans Italic/19712-19967.pbf +0 -3
  312. package/fonts/Open Sans Italic/19968-20223.pbf +0 -3
  313. package/fonts/Open Sans Italic/20224-20479.pbf +0 -3
  314. package/fonts/Open Sans Italic/2048-2303.pbf +0 -3
  315. package/fonts/Open Sans Italic/20480-20735.pbf +0 -3
  316. package/fonts/Open Sans Italic/20736-20991.pbf +0 -3
  317. package/fonts/Open Sans Italic/20992-21247.pbf +0 -3
  318. package/fonts/Open Sans Italic/21248-21503.pbf +0 -3
  319. package/fonts/Open Sans Italic/21504-21759.pbf +0 -3
  320. package/fonts/Open Sans Italic/21760-22015.pbf +0 -3
  321. package/fonts/Open Sans Italic/22016-22271.pbf +0 -3
  322. package/fonts/Open Sans Italic/22272-22527.pbf +0 -3
  323. package/fonts/Open Sans Italic/22528-22783.pbf +0 -3
  324. package/fonts/Open Sans Italic/22784-23039.pbf +0 -3
  325. package/fonts/Open Sans Italic/2304-2559.pbf +0 -3
  326. package/fonts/Open Sans Italic/23040-23295.pbf +0 -3
  327. package/fonts/Open Sans Italic/23296-23551.pbf +0 -3
  328. package/fonts/Open Sans Italic/23552-23807.pbf +0 -3
  329. package/fonts/Open Sans Italic/23808-24063.pbf +0 -3
  330. package/fonts/Open Sans Italic/24064-24319.pbf +0 -3
  331. package/fonts/Open Sans Italic/24320-24575.pbf +0 -3
  332. package/fonts/Open Sans Italic/24576-24831.pbf +0 -3
  333. package/fonts/Open Sans Italic/24832-25087.pbf +0 -3
  334. package/fonts/Open Sans Italic/25088-25343.pbf +0 -3
  335. package/fonts/Open Sans Italic/25344-25599.pbf +0 -3
  336. package/fonts/Open Sans Italic/256-511.pbf +0 -0
  337. package/fonts/Open Sans Italic/2560-2815.pbf +0 -3
  338. package/fonts/Open Sans Italic/25600-25855.pbf +0 -3
  339. package/fonts/Open Sans Italic/25856-26111.pbf +0 -3
  340. package/fonts/Open Sans Italic/26112-26367.pbf +0 -3
  341. package/fonts/Open Sans Italic/26368-26623.pbf +0 -3
  342. package/fonts/Open Sans Italic/26624-26879.pbf +0 -3
  343. package/fonts/Open Sans Italic/26880-27135.pbf +0 -3
  344. package/fonts/Open Sans Italic/27136-27391.pbf +0 -3
  345. package/fonts/Open Sans Italic/27392-27647.pbf +0 -3
  346. package/fonts/Open Sans Italic/27648-27903.pbf +0 -3
  347. package/fonts/Open Sans Italic/27904-28159.pbf +0 -3
  348. package/fonts/Open Sans Italic/2816-3071.pbf +0 -3
  349. package/fonts/Open Sans Italic/28160-28415.pbf +0 -3
  350. package/fonts/Open Sans Italic/28416-28671.pbf +0 -3
  351. package/fonts/Open Sans Italic/28672-28927.pbf +0 -3
  352. package/fonts/Open Sans Italic/28928-29183.pbf +0 -3
  353. package/fonts/Open Sans Italic/29184-29439.pbf +0 -3
  354. package/fonts/Open Sans Italic/29440-29695.pbf +0 -3
  355. package/fonts/Open Sans Italic/29696-29951.pbf +0 -3
  356. package/fonts/Open Sans Italic/29952-30207.pbf +0 -3
  357. package/fonts/Open Sans Italic/30208-30463.pbf +0 -3
  358. package/fonts/Open Sans Italic/30464-30719.pbf +0 -3
  359. package/fonts/Open Sans Italic/3072-3327.pbf +0 -3
  360. package/fonts/Open Sans Italic/30720-30975.pbf +0 -3
  361. package/fonts/Open Sans Italic/30976-31231.pbf +0 -3
  362. package/fonts/Open Sans Italic/31232-31487.pbf +0 -3
  363. package/fonts/Open Sans Italic/31488-31743.pbf +0 -3
  364. package/fonts/Open Sans Italic/31744-31999.pbf +0 -3
  365. package/fonts/Open Sans Italic/32000-32255.pbf +0 -3
  366. package/fonts/Open Sans Italic/32256-32511.pbf +0 -3
  367. package/fonts/Open Sans Italic/32512-32767.pbf +0 -3
  368. package/fonts/Open Sans Italic/32768-33023.pbf +0 -3
  369. package/fonts/Open Sans Italic/33024-33279.pbf +0 -3
  370. package/fonts/Open Sans Italic/3328-3583.pbf +0 -3
  371. package/fonts/Open Sans Italic/33280-33535.pbf +0 -3
  372. package/fonts/Open Sans Italic/33536-33791.pbf +0 -3
  373. package/fonts/Open Sans Italic/33792-34047.pbf +0 -3
  374. package/fonts/Open Sans Italic/34048-34303.pbf +0 -3
  375. package/fonts/Open Sans Italic/34304-34559.pbf +0 -3
  376. package/fonts/Open Sans Italic/34560-34815.pbf +0 -3
  377. package/fonts/Open Sans Italic/34816-35071.pbf +0 -3
  378. package/fonts/Open Sans Italic/35072-35327.pbf +0 -3
  379. package/fonts/Open Sans Italic/35328-35583.pbf +0 -3
  380. package/fonts/Open Sans Italic/35584-35839.pbf +0 -3
  381. package/fonts/Open Sans Italic/3584-3839.pbf +0 -3
  382. package/fonts/Open Sans Italic/35840-36095.pbf +0 -3
  383. package/fonts/Open Sans Italic/36096-36351.pbf +0 -3
  384. package/fonts/Open Sans Italic/36352-36607.pbf +0 -3
  385. package/fonts/Open Sans Italic/36608-36863.pbf +0 -3
  386. package/fonts/Open Sans Italic/36864-37119.pbf +0 -3
  387. package/fonts/Open Sans Italic/37120-37375.pbf +0 -3
  388. package/fonts/Open Sans Italic/37376-37631.pbf +0 -3
  389. package/fonts/Open Sans Italic/37632-37887.pbf +0 -3
  390. package/fonts/Open Sans Italic/37888-38143.pbf +0 -3
  391. package/fonts/Open Sans Italic/38144-38399.pbf +0 -3
  392. package/fonts/Open Sans Italic/3840-4095.pbf +0 -3
  393. package/fonts/Open Sans Italic/38400-38655.pbf +0 -3
  394. package/fonts/Open Sans Italic/38656-38911.pbf +0 -3
  395. package/fonts/Open Sans Italic/38912-39167.pbf +0 -3
  396. package/fonts/Open Sans Italic/39168-39423.pbf +0 -3
  397. package/fonts/Open Sans Italic/39424-39679.pbf +0 -3
  398. package/fonts/Open Sans Italic/39680-39935.pbf +0 -3
  399. package/fonts/Open Sans Italic/39936-40191.pbf +0 -3
  400. package/fonts/Open Sans Italic/40192-40447.pbf +0 -3
  401. package/fonts/Open Sans Italic/40448-40703.pbf +0 -3
  402. package/fonts/Open Sans Italic/40704-40959.pbf +0 -3
  403. package/fonts/Open Sans Italic/4096-4351.pbf +0 -3
  404. package/fonts/Open Sans Italic/40960-41215.pbf +0 -3
  405. package/fonts/Open Sans Italic/41216-41471.pbf +0 -3
  406. package/fonts/Open Sans Italic/41472-41727.pbf +0 -3
  407. package/fonts/Open Sans Italic/41728-41983.pbf +0 -3
  408. package/fonts/Open Sans Italic/41984-42239.pbf +0 -3
  409. package/fonts/Open Sans Italic/42240-42495.pbf +0 -3
  410. package/fonts/Open Sans Italic/42496-42751.pbf +0 -3
  411. package/fonts/Open Sans Italic/42752-43007.pbf +0 -3
  412. package/fonts/Open Sans Italic/43008-43263.pbf +0 -3
  413. package/fonts/Open Sans Italic/43264-43519.pbf +0 -3
  414. package/fonts/Open Sans Italic/4352-4607.pbf +0 -3
  415. package/fonts/Open Sans Italic/43520-43775.pbf +0 -3
  416. package/fonts/Open Sans Italic/43776-44031.pbf +0 -3
  417. package/fonts/Open Sans Italic/44032-44287.pbf +0 -3
  418. package/fonts/Open Sans Italic/44288-44543.pbf +0 -3
  419. package/fonts/Open Sans Italic/44544-44799.pbf +0 -3
  420. package/fonts/Open Sans Italic/44800-45055.pbf +0 -3
  421. package/fonts/Open Sans Italic/45056-45311.pbf +0 -3
  422. package/fonts/Open Sans Italic/45312-45567.pbf +0 -3
  423. package/fonts/Open Sans Italic/45568-45823.pbf +0 -3
  424. package/fonts/Open Sans Italic/45824-46079.pbf +0 -3
  425. package/fonts/Open Sans Italic/4608-4863.pbf +0 -3
  426. package/fonts/Open Sans Italic/46080-46335.pbf +0 -3
  427. package/fonts/Open Sans Italic/46336-46591.pbf +0 -3
  428. package/fonts/Open Sans Italic/46592-46847.pbf +0 -3
  429. package/fonts/Open Sans Italic/46848-47103.pbf +0 -3
  430. package/fonts/Open Sans Italic/47104-47359.pbf +0 -3
  431. package/fonts/Open Sans Italic/47360-47615.pbf +0 -3
  432. package/fonts/Open Sans Italic/47616-47871.pbf +0 -3
  433. package/fonts/Open Sans Italic/47872-48127.pbf +0 -3
  434. package/fonts/Open Sans Italic/48128-48383.pbf +0 -3
  435. package/fonts/Open Sans Italic/48384-48639.pbf +0 -3
  436. package/fonts/Open Sans Italic/4864-5119.pbf +0 -3
  437. package/fonts/Open Sans Italic/48640-48895.pbf +0 -3
  438. package/fonts/Open Sans Italic/48896-49151.pbf +0 -3
  439. package/fonts/Open Sans Italic/49152-49407.pbf +0 -3
  440. package/fonts/Open Sans Italic/49408-49663.pbf +0 -3
  441. package/fonts/Open Sans Italic/49664-49919.pbf +0 -3
  442. package/fonts/Open Sans Italic/49920-50175.pbf +0 -3
  443. package/fonts/Open Sans Italic/50176-50431.pbf +0 -3
  444. package/fonts/Open Sans Italic/50432-50687.pbf +0 -3
  445. package/fonts/Open Sans Italic/50688-50943.pbf +0 -3
  446. package/fonts/Open Sans Italic/50944-51199.pbf +0 -3
  447. package/fonts/Open Sans Italic/512-767.pbf +0 -0
  448. package/fonts/Open Sans Italic/5120-5375.pbf +0 -3
  449. package/fonts/Open Sans Italic/51200-51455.pbf +0 -3
  450. package/fonts/Open Sans Italic/51456-51711.pbf +0 -3
  451. package/fonts/Open Sans Italic/51712-51967.pbf +0 -3
  452. package/fonts/Open Sans Italic/51968-52223.pbf +0 -3
  453. package/fonts/Open Sans Italic/52224-52479.pbf +0 -3
  454. package/fonts/Open Sans Italic/52480-52735.pbf +0 -3
  455. package/fonts/Open Sans Italic/52736-52991.pbf +0 -3
  456. package/fonts/Open Sans Italic/52992-53247.pbf +0 -3
  457. package/fonts/Open Sans Italic/53248-53503.pbf +0 -3
  458. package/fonts/Open Sans Italic/53504-53759.pbf +0 -3
  459. package/fonts/Open Sans Italic/5376-5631.pbf +0 -3
  460. package/fonts/Open Sans Italic/53760-54015.pbf +0 -3
  461. package/fonts/Open Sans Italic/54016-54271.pbf +0 -3
  462. package/fonts/Open Sans Italic/54272-54527.pbf +0 -3
  463. package/fonts/Open Sans Italic/54528-54783.pbf +0 -3
  464. package/fonts/Open Sans Italic/54784-55039.pbf +0 -3
  465. package/fonts/Open Sans Italic/55040-55295.pbf +0 -3
  466. package/fonts/Open Sans Italic/55296-55551.pbf +0 -3
  467. package/fonts/Open Sans Italic/55552-55807.pbf +0 -3
  468. package/fonts/Open Sans Italic/55808-56063.pbf +0 -3
  469. package/fonts/Open Sans Italic/56064-56319.pbf +0 -3
  470. package/fonts/Open Sans Italic/5632-5887.pbf +0 -3
  471. package/fonts/Open Sans Italic/56320-56575.pbf +0 -3
  472. package/fonts/Open Sans Italic/56576-56831.pbf +0 -3
  473. package/fonts/Open Sans Italic/56832-57087.pbf +0 -3
  474. package/fonts/Open Sans Italic/57088-57343.pbf +0 -3
  475. package/fonts/Open Sans Italic/57344-57599.pbf +0 -3
  476. package/fonts/Open Sans Italic/57600-57855.pbf +0 -3
  477. package/fonts/Open Sans Italic/57856-58111.pbf +0 -3
  478. package/fonts/Open Sans Italic/58112-58367.pbf +0 -3
  479. package/fonts/Open Sans Italic/58368-58623.pbf +0 -3
  480. package/fonts/Open Sans Italic/58624-58879.pbf +0 -3
  481. package/fonts/Open Sans Italic/5888-6143.pbf +0 -3
  482. package/fonts/Open Sans Italic/58880-59135.pbf +0 -3
  483. package/fonts/Open Sans Italic/59136-59391.pbf +0 -3
  484. package/fonts/Open Sans Italic/59392-59647.pbf +0 -3
  485. package/fonts/Open Sans Italic/59648-59903.pbf +0 -3
  486. package/fonts/Open Sans Italic/59904-60159.pbf +0 -3
  487. package/fonts/Open Sans Italic/60160-60415.pbf +0 -3
  488. package/fonts/Open Sans Italic/60416-60671.pbf +0 -3
  489. package/fonts/Open Sans Italic/60672-60927.pbf +0 -3
  490. package/fonts/Open Sans Italic/60928-61183.pbf +0 -3
  491. package/fonts/Open Sans Italic/61184-61439.pbf +0 -3
  492. package/fonts/Open Sans Italic/6144-6399.pbf +0 -3
  493. package/fonts/Open Sans Italic/61440-61695.pbf +0 -3
  494. package/fonts/Open Sans Italic/61696-61951.pbf +0 -3
  495. package/fonts/Open Sans Italic/61952-62207.pbf +0 -3
  496. package/fonts/Open Sans Italic/62208-62463.pbf +0 -3
  497. package/fonts/Open Sans Italic/62464-62719.pbf +0 -3
  498. package/fonts/Open Sans Italic/62720-62975.pbf +0 -3
  499. package/fonts/Open Sans Italic/62976-63231.pbf +0 -3
  500. package/fonts/Open Sans Italic/63232-63487.pbf +0 -3
  501. package/fonts/Open Sans Italic/63488-63743.pbf +0 -3
  502. package/fonts/Open Sans Italic/63744-63999.pbf +0 -3
  503. package/fonts/Open Sans Italic/6400-6655.pbf +0 -3
  504. package/fonts/Open Sans Italic/64000-64255.pbf +0 -3
  505. package/fonts/Open Sans Italic/64256-64511.pbf +0 -0
  506. package/fonts/Open Sans Italic/64512-64767.pbf +0 -3
  507. package/fonts/Open Sans Italic/64768-65023.pbf +0 -3
  508. package/fonts/Open Sans Italic/65024-65279.pbf +0 -0
  509. package/fonts/Open Sans Italic/65280-65535.pbf +0 -0
  510. package/fonts/Open Sans Italic/6656-6911.pbf +0 -3
  511. package/fonts/Open Sans Italic/6912-7167.pbf +0 -3
  512. package/fonts/Open Sans Italic/7168-7423.pbf +0 -3
  513. package/fonts/Open Sans Italic/7424-7679.pbf +0 -3
  514. package/fonts/Open Sans Italic/768-1023.pbf +0 -0
  515. package/fonts/Open Sans Italic/7680-7935.pbf +0 -0
  516. package/fonts/Open Sans Italic/7936-8191.pbf +0 -0
  517. package/fonts/Open Sans Italic/8192-8447.pbf +0 -0
  518. package/fonts/Open Sans Italic/8448-8703.pbf +0 -0
  519. package/fonts/Open Sans Italic/8704-8959.pbf +0 -0
  520. package/fonts/Open Sans Italic/8960-9215.pbf +0 -3
  521. package/fonts/Open Sans Italic/9216-9471.pbf +0 -3
  522. package/fonts/Open Sans Italic/9472-9727.pbf +0 -0
  523. package/fonts/Open Sans Italic/9728-9983.pbf +0 -3
  524. package/fonts/Open Sans Italic/9984-10239.pbf +0 -4
  525. package/fonts/Open Sans Regular/0-255.pbf +0 -0
  526. package/fonts/Open Sans Regular/1024-1279.pbf +0 -0
  527. package/fonts/Open Sans Regular/10240-10495.pbf +0 -3
  528. package/fonts/Open Sans Regular/10496-10751.pbf +0 -3
  529. package/fonts/Open Sans Regular/10752-11007.pbf +0 -3
  530. package/fonts/Open Sans Regular/11008-11263.pbf +0 -3
  531. package/fonts/Open Sans Regular/11264-11519.pbf +0 -3
  532. package/fonts/Open Sans Regular/11520-11775.pbf +0 -3
  533. package/fonts/Open Sans Regular/11776-12031.pbf +0 -3
  534. package/fonts/Open Sans Regular/12032-12287.pbf +0 -3
  535. package/fonts/Open Sans Regular/12288-12543.pbf +0 -3
  536. package/fonts/Open Sans Regular/12544-12799.pbf +0 -3
  537. package/fonts/Open Sans Regular/1280-1535.pbf +0 -0
  538. package/fonts/Open Sans Regular/12800-13055.pbf +0 -3
  539. package/fonts/Open Sans Regular/13056-13311.pbf +0 -3
  540. package/fonts/Open Sans Regular/13312-13567.pbf +0 -3
  541. package/fonts/Open Sans Regular/13568-13823.pbf +0 -3
  542. package/fonts/Open Sans Regular/13824-14079.pbf +0 -3
  543. package/fonts/Open Sans Regular/14080-14335.pbf +0 -3
  544. package/fonts/Open Sans Regular/14336-14591.pbf +0 -3
  545. package/fonts/Open Sans Regular/14592-14847.pbf +0 -3
  546. package/fonts/Open Sans Regular/14848-15103.pbf +0 -3
  547. package/fonts/Open Sans Regular/15104-15359.pbf +0 -3
  548. package/fonts/Open Sans Regular/1536-1791.pbf +0 -3
  549. package/fonts/Open Sans Regular/15360-15615.pbf +0 -3
  550. package/fonts/Open Sans Regular/15616-15871.pbf +0 -3
  551. package/fonts/Open Sans Regular/15872-16127.pbf +0 -3
  552. package/fonts/Open Sans Regular/16128-16383.pbf +0 -3
  553. package/fonts/Open Sans Regular/16384-16639.pbf +0 -3
  554. package/fonts/Open Sans Regular/16640-16895.pbf +0 -3
  555. package/fonts/Open Sans Regular/16896-17151.pbf +0 -3
  556. package/fonts/Open Sans Regular/17152-17407.pbf +0 -3
  557. package/fonts/Open Sans Regular/17408-17663.pbf +0 -3
  558. package/fonts/Open Sans Regular/17664-17919.pbf +0 -3
  559. package/fonts/Open Sans Regular/1792-2047.pbf +0 -3
  560. package/fonts/Open Sans Regular/17920-18175.pbf +0 -3
  561. package/fonts/Open Sans Regular/18176-18431.pbf +0 -3
  562. package/fonts/Open Sans Regular/18432-18687.pbf +0 -3
  563. package/fonts/Open Sans Regular/18688-18943.pbf +0 -3
  564. package/fonts/Open Sans Regular/18944-19199.pbf +0 -3
  565. package/fonts/Open Sans Regular/19200-19455.pbf +0 -3
  566. package/fonts/Open Sans Regular/19456-19711.pbf +0 -3
  567. package/fonts/Open Sans Regular/19712-19967.pbf +0 -3
  568. package/fonts/Open Sans Regular/19968-20223.pbf +0 -3
  569. package/fonts/Open Sans Regular/20224-20479.pbf +0 -3
  570. package/fonts/Open Sans Regular/2048-2303.pbf +0 -3
  571. package/fonts/Open Sans Regular/20480-20735.pbf +0 -3
  572. package/fonts/Open Sans Regular/20736-20991.pbf +0 -3
  573. package/fonts/Open Sans Regular/20992-21247.pbf +0 -3
  574. package/fonts/Open Sans Regular/21248-21503.pbf +0 -3
  575. package/fonts/Open Sans Regular/21504-21759.pbf +0 -3
  576. package/fonts/Open Sans Regular/21760-22015.pbf +0 -3
  577. package/fonts/Open Sans Regular/22016-22271.pbf +0 -3
  578. package/fonts/Open Sans Regular/22272-22527.pbf +0 -3
  579. package/fonts/Open Sans Regular/22528-22783.pbf +0 -3
  580. package/fonts/Open Sans Regular/22784-23039.pbf +0 -3
  581. package/fonts/Open Sans Regular/2304-2559.pbf +0 -3
  582. package/fonts/Open Sans Regular/23040-23295.pbf +0 -3
  583. package/fonts/Open Sans Regular/23296-23551.pbf +0 -3
  584. package/fonts/Open Sans Regular/23552-23807.pbf +0 -3
  585. package/fonts/Open Sans Regular/23808-24063.pbf +0 -3
  586. package/fonts/Open Sans Regular/24064-24319.pbf +0 -3
  587. package/fonts/Open Sans Regular/24320-24575.pbf +0 -3
  588. package/fonts/Open Sans Regular/24576-24831.pbf +0 -3
  589. package/fonts/Open Sans Regular/24832-25087.pbf +0 -3
  590. package/fonts/Open Sans Regular/25088-25343.pbf +0 -3
  591. package/fonts/Open Sans Regular/25344-25599.pbf +0 -3
  592. package/fonts/Open Sans Regular/256-511.pbf +0 -0
  593. package/fonts/Open Sans Regular/2560-2815.pbf +0 -3
  594. package/fonts/Open Sans Regular/25600-25855.pbf +0 -3
  595. package/fonts/Open Sans Regular/25856-26111.pbf +0 -3
  596. package/fonts/Open Sans Regular/26112-26367.pbf +0 -3
  597. package/fonts/Open Sans Regular/26368-26623.pbf +0 -3
  598. package/fonts/Open Sans Regular/26624-26879.pbf +0 -3
  599. package/fonts/Open Sans Regular/26880-27135.pbf +0 -3
  600. package/fonts/Open Sans Regular/27136-27391.pbf +0 -3
  601. package/fonts/Open Sans Regular/27392-27647.pbf +0 -3
  602. package/fonts/Open Sans Regular/27648-27903.pbf +0 -3
  603. package/fonts/Open Sans Regular/27904-28159.pbf +0 -3
  604. package/fonts/Open Sans Regular/2816-3071.pbf +0 -3
  605. package/fonts/Open Sans Regular/28160-28415.pbf +0 -3
  606. package/fonts/Open Sans Regular/28416-28671.pbf +0 -3
  607. package/fonts/Open Sans Regular/28672-28927.pbf +0 -3
  608. package/fonts/Open Sans Regular/28928-29183.pbf +0 -3
  609. package/fonts/Open Sans Regular/29184-29439.pbf +0 -3
  610. package/fonts/Open Sans Regular/29440-29695.pbf +0 -3
  611. package/fonts/Open Sans Regular/29696-29951.pbf +0 -3
  612. package/fonts/Open Sans Regular/29952-30207.pbf +0 -3
  613. package/fonts/Open Sans Regular/30208-30463.pbf +0 -3
  614. package/fonts/Open Sans Regular/30464-30719.pbf +0 -3
  615. package/fonts/Open Sans Regular/3072-3327.pbf +0 -3
  616. package/fonts/Open Sans Regular/30720-30975.pbf +0 -3
  617. package/fonts/Open Sans Regular/30976-31231.pbf +0 -3
  618. package/fonts/Open Sans Regular/31232-31487.pbf +0 -3
  619. package/fonts/Open Sans Regular/31488-31743.pbf +0 -3
  620. package/fonts/Open Sans Regular/31744-31999.pbf +0 -3
  621. package/fonts/Open Sans Regular/32000-32255.pbf +0 -3
  622. package/fonts/Open Sans Regular/32256-32511.pbf +0 -3
  623. package/fonts/Open Sans Regular/32512-32767.pbf +0 -3
  624. package/fonts/Open Sans Regular/32768-33023.pbf +0 -3
  625. package/fonts/Open Sans Regular/33024-33279.pbf +0 -3
  626. package/fonts/Open Sans Regular/3328-3583.pbf +0 -3
  627. package/fonts/Open Sans Regular/33280-33535.pbf +0 -3
  628. package/fonts/Open Sans Regular/33536-33791.pbf +0 -3
  629. package/fonts/Open Sans Regular/33792-34047.pbf +0 -3
  630. package/fonts/Open Sans Regular/34048-34303.pbf +0 -3
  631. package/fonts/Open Sans Regular/34304-34559.pbf +0 -3
  632. package/fonts/Open Sans Regular/34560-34815.pbf +0 -3
  633. package/fonts/Open Sans Regular/34816-35071.pbf +0 -3
  634. package/fonts/Open Sans Regular/35072-35327.pbf +0 -3
  635. package/fonts/Open Sans Regular/35328-35583.pbf +0 -3
  636. package/fonts/Open Sans Regular/35584-35839.pbf +0 -3
  637. package/fonts/Open Sans Regular/3584-3839.pbf +0 -3
  638. package/fonts/Open Sans Regular/35840-36095.pbf +0 -3
  639. package/fonts/Open Sans Regular/36096-36351.pbf +0 -3
  640. package/fonts/Open Sans Regular/36352-36607.pbf +0 -3
  641. package/fonts/Open Sans Regular/36608-36863.pbf +0 -3
  642. package/fonts/Open Sans Regular/36864-37119.pbf +0 -3
  643. package/fonts/Open Sans Regular/37120-37375.pbf +0 -3
  644. package/fonts/Open Sans Regular/37376-37631.pbf +0 -3
  645. package/fonts/Open Sans Regular/37632-37887.pbf +0 -3
  646. package/fonts/Open Sans Regular/37888-38143.pbf +0 -3
  647. package/fonts/Open Sans Regular/38144-38399.pbf +0 -3
  648. package/fonts/Open Sans Regular/3840-4095.pbf +0 -3
  649. package/fonts/Open Sans Regular/38400-38655.pbf +0 -3
  650. package/fonts/Open Sans Regular/38656-38911.pbf +0 -3
  651. package/fonts/Open Sans Regular/38912-39167.pbf +0 -3
  652. package/fonts/Open Sans Regular/39168-39423.pbf +0 -3
  653. package/fonts/Open Sans Regular/39424-39679.pbf +0 -3
  654. package/fonts/Open Sans Regular/39680-39935.pbf +0 -3
  655. package/fonts/Open Sans Regular/39936-40191.pbf +0 -3
  656. package/fonts/Open Sans Regular/40192-40447.pbf +0 -3
  657. package/fonts/Open Sans Regular/40448-40703.pbf +0 -3
  658. package/fonts/Open Sans Regular/40704-40959.pbf +0 -3
  659. package/fonts/Open Sans Regular/4096-4351.pbf +0 -3
  660. package/fonts/Open Sans Regular/40960-41215.pbf +0 -3
  661. package/fonts/Open Sans Regular/41216-41471.pbf +0 -3
  662. package/fonts/Open Sans Regular/41472-41727.pbf +0 -3
  663. package/fonts/Open Sans Regular/41728-41983.pbf +0 -3
  664. package/fonts/Open Sans Regular/41984-42239.pbf +0 -3
  665. package/fonts/Open Sans Regular/42240-42495.pbf +0 -3
  666. package/fonts/Open Sans Regular/42496-42751.pbf +0 -3
  667. package/fonts/Open Sans Regular/42752-43007.pbf +0 -3
  668. package/fonts/Open Sans Regular/43008-43263.pbf +0 -3
  669. package/fonts/Open Sans Regular/43264-43519.pbf +0 -3
  670. package/fonts/Open Sans Regular/4352-4607.pbf +0 -3
  671. package/fonts/Open Sans Regular/43520-43775.pbf +0 -3
  672. package/fonts/Open Sans Regular/43776-44031.pbf +0 -3
  673. package/fonts/Open Sans Regular/44032-44287.pbf +0 -3
  674. package/fonts/Open Sans Regular/44288-44543.pbf +0 -3
  675. package/fonts/Open Sans Regular/44544-44799.pbf +0 -3
  676. package/fonts/Open Sans Regular/44800-45055.pbf +0 -3
  677. package/fonts/Open Sans Regular/45056-45311.pbf +0 -3
  678. package/fonts/Open Sans Regular/45312-45567.pbf +0 -3
  679. package/fonts/Open Sans Regular/45568-45823.pbf +0 -3
  680. package/fonts/Open Sans Regular/45824-46079.pbf +0 -3
  681. package/fonts/Open Sans Regular/4608-4863.pbf +0 -3
  682. package/fonts/Open Sans Regular/46080-46335.pbf +0 -3
  683. package/fonts/Open Sans Regular/46336-46591.pbf +0 -3
  684. package/fonts/Open Sans Regular/46592-46847.pbf +0 -3
  685. package/fonts/Open Sans Regular/46848-47103.pbf +0 -3
  686. package/fonts/Open Sans Regular/47104-47359.pbf +0 -3
  687. package/fonts/Open Sans Regular/47360-47615.pbf +0 -3
  688. package/fonts/Open Sans Regular/47616-47871.pbf +0 -3
  689. package/fonts/Open Sans Regular/47872-48127.pbf +0 -3
  690. package/fonts/Open Sans Regular/48128-48383.pbf +0 -3
  691. package/fonts/Open Sans Regular/48384-48639.pbf +0 -3
  692. package/fonts/Open Sans Regular/4864-5119.pbf +0 -3
  693. package/fonts/Open Sans Regular/48640-48895.pbf +0 -3
  694. package/fonts/Open Sans Regular/48896-49151.pbf +0 -3
  695. package/fonts/Open Sans Regular/49152-49407.pbf +0 -3
  696. package/fonts/Open Sans Regular/49408-49663.pbf +0 -3
  697. package/fonts/Open Sans Regular/49664-49919.pbf +0 -3
  698. package/fonts/Open Sans Regular/49920-50175.pbf +0 -3
  699. package/fonts/Open Sans Regular/50176-50431.pbf +0 -3
  700. package/fonts/Open Sans Regular/50432-50687.pbf +0 -3
  701. package/fonts/Open Sans Regular/50688-50943.pbf +0 -3
  702. package/fonts/Open Sans Regular/50944-51199.pbf +0 -3
  703. package/fonts/Open Sans Regular/512-767.pbf +0 -0
  704. package/fonts/Open Sans Regular/5120-5375.pbf +0 -3
  705. package/fonts/Open Sans Regular/51200-51455.pbf +0 -3
  706. package/fonts/Open Sans Regular/51456-51711.pbf +0 -3
  707. package/fonts/Open Sans Regular/51712-51967.pbf +0 -3
  708. package/fonts/Open Sans Regular/51968-52223.pbf +0 -3
  709. package/fonts/Open Sans Regular/52224-52479.pbf +0 -3
  710. package/fonts/Open Sans Regular/52480-52735.pbf +0 -3
  711. package/fonts/Open Sans Regular/52736-52991.pbf +0 -3
  712. package/fonts/Open Sans Regular/52992-53247.pbf +0 -3
  713. package/fonts/Open Sans Regular/53248-53503.pbf +0 -3
  714. package/fonts/Open Sans Regular/53504-53759.pbf +0 -3
  715. package/fonts/Open Sans Regular/5376-5631.pbf +0 -3
  716. package/fonts/Open Sans Regular/53760-54015.pbf +0 -3
  717. package/fonts/Open Sans Regular/54016-54271.pbf +0 -3
  718. package/fonts/Open Sans Regular/54272-54527.pbf +0 -3
  719. package/fonts/Open Sans Regular/54528-54783.pbf +0 -3
  720. package/fonts/Open Sans Regular/54784-55039.pbf +0 -3
  721. package/fonts/Open Sans Regular/55040-55295.pbf +0 -3
  722. package/fonts/Open Sans Regular/55296-55551.pbf +0 -3
  723. package/fonts/Open Sans Regular/55552-55807.pbf +0 -3
  724. package/fonts/Open Sans Regular/55808-56063.pbf +0 -3
  725. package/fonts/Open Sans Regular/56064-56319.pbf +0 -3
  726. package/fonts/Open Sans Regular/5632-5887.pbf +0 -3
  727. package/fonts/Open Sans Regular/56320-56575.pbf +0 -3
  728. package/fonts/Open Sans Regular/56576-56831.pbf +0 -3
  729. package/fonts/Open Sans Regular/56832-57087.pbf +0 -3
  730. package/fonts/Open Sans Regular/57088-57343.pbf +0 -3
  731. package/fonts/Open Sans Regular/57344-57599.pbf +0 -3
  732. package/fonts/Open Sans Regular/57600-57855.pbf +0 -3
  733. package/fonts/Open Sans Regular/57856-58111.pbf +0 -3
  734. package/fonts/Open Sans Regular/58112-58367.pbf +0 -3
  735. package/fonts/Open Sans Regular/58368-58623.pbf +0 -3
  736. package/fonts/Open Sans Regular/58624-58879.pbf +0 -3
  737. package/fonts/Open Sans Regular/5888-6143.pbf +0 -3
  738. package/fonts/Open Sans Regular/58880-59135.pbf +0 -3
  739. package/fonts/Open Sans Regular/59136-59391.pbf +0 -3
  740. package/fonts/Open Sans Regular/59392-59647.pbf +0 -3
  741. package/fonts/Open Sans Regular/59648-59903.pbf +0 -3
  742. package/fonts/Open Sans Regular/59904-60159.pbf +0 -3
  743. package/fonts/Open Sans Regular/60160-60415.pbf +0 -3
  744. package/fonts/Open Sans Regular/60416-60671.pbf +0 -3
  745. package/fonts/Open Sans Regular/60672-60927.pbf +0 -3
  746. package/fonts/Open Sans Regular/60928-61183.pbf +0 -3
  747. package/fonts/Open Sans Regular/61184-61439.pbf +0 -3
  748. package/fonts/Open Sans Regular/6144-6399.pbf +0 -3
  749. package/fonts/Open Sans Regular/61440-61695.pbf +0 -3
  750. package/fonts/Open Sans Regular/61696-61951.pbf +0 -3
  751. package/fonts/Open Sans Regular/61952-62207.pbf +0 -3
  752. package/fonts/Open Sans Regular/62208-62463.pbf +0 -3
  753. package/fonts/Open Sans Regular/62464-62719.pbf +0 -3
  754. package/fonts/Open Sans Regular/62720-62975.pbf +0 -3
  755. package/fonts/Open Sans Regular/62976-63231.pbf +0 -3
  756. package/fonts/Open Sans Regular/63232-63487.pbf +0 -3
  757. package/fonts/Open Sans Regular/63488-63743.pbf +0 -3
  758. package/fonts/Open Sans Regular/63744-63999.pbf +0 -3
  759. package/fonts/Open Sans Regular/6400-6655.pbf +0 -3
  760. package/fonts/Open Sans Regular/64000-64255.pbf +0 -3
  761. package/fonts/Open Sans Regular/64256-64511.pbf +0 -0
  762. package/fonts/Open Sans Regular/64512-64767.pbf +0 -3
  763. package/fonts/Open Sans Regular/64768-65023.pbf +0 -3
  764. package/fonts/Open Sans Regular/65024-65279.pbf +0 -0
  765. package/fonts/Open Sans Regular/65280-65535.pbf +0 -0
  766. package/fonts/Open Sans Regular/6656-6911.pbf +0 -3
  767. package/fonts/Open Sans Regular/6912-7167.pbf +0 -3
  768. package/fonts/Open Sans Regular/7168-7423.pbf +0 -3
  769. package/fonts/Open Sans Regular/7424-7679.pbf +0 -3
  770. package/fonts/Open Sans Regular/768-1023.pbf +0 -0
  771. package/fonts/Open Sans Regular/7680-7935.pbf +0 -0
  772. package/fonts/Open Sans Regular/7936-8191.pbf +0 -0
  773. package/fonts/Open Sans Regular/8192-8447.pbf +0 -0
  774. package/fonts/Open Sans Regular/8448-8703.pbf +0 -0
  775. package/fonts/Open Sans Regular/8704-8959.pbf +0 -0
  776. package/fonts/Open Sans Regular/8960-9215.pbf +0 -3
  777. package/fonts/Open Sans Regular/9216-9471.pbf +0 -3
  778. package/fonts/Open Sans Regular/9472-9727.pbf +0 -0
  779. package/fonts/Open Sans Regular/9728-9983.pbf +0 -3
  780. package/fonts/Open Sans Regular/9984-10239.pbf +0 -4
  781. package/fonts/Open Sans Semibold/0-255.pbf +0 -0
  782. package/fonts/Open Sans Semibold/1024-1279.pbf +0 -0
  783. package/fonts/Open Sans Semibold/10240-10495.pbf +0 -3
  784. package/fonts/Open Sans Semibold/10496-10751.pbf +0 -3
  785. package/fonts/Open Sans Semibold/10752-11007.pbf +0 -3
  786. package/fonts/Open Sans Semibold/11008-11263.pbf +0 -3
  787. package/fonts/Open Sans Semibold/11264-11519.pbf +0 -3
  788. package/fonts/Open Sans Semibold/11520-11775.pbf +0 -3
  789. package/fonts/Open Sans Semibold/11776-12031.pbf +0 -3
  790. package/fonts/Open Sans Semibold/12032-12287.pbf +0 -3
  791. package/fonts/Open Sans Semibold/12288-12543.pbf +0 -3
  792. package/fonts/Open Sans Semibold/12544-12799.pbf +0 -3
  793. package/fonts/Open Sans Semibold/1280-1535.pbf +0 -0
  794. package/fonts/Open Sans Semibold/12800-13055.pbf +0 -3
  795. package/fonts/Open Sans Semibold/13056-13311.pbf +0 -3
  796. package/fonts/Open Sans Semibold/13312-13567.pbf +0 -3
  797. package/fonts/Open Sans Semibold/13568-13823.pbf +0 -3
  798. package/fonts/Open Sans Semibold/13824-14079.pbf +0 -3
  799. package/fonts/Open Sans Semibold/14080-14335.pbf +0 -3
  800. package/fonts/Open Sans Semibold/14336-14591.pbf +0 -3
  801. package/fonts/Open Sans Semibold/14592-14847.pbf +0 -3
  802. package/fonts/Open Sans Semibold/14848-15103.pbf +0 -3
  803. package/fonts/Open Sans Semibold/15104-15359.pbf +0 -3
  804. package/fonts/Open Sans Semibold/1536-1791.pbf +0 -3
  805. package/fonts/Open Sans Semibold/15360-15615.pbf +0 -3
  806. package/fonts/Open Sans Semibold/15616-15871.pbf +0 -3
  807. package/fonts/Open Sans Semibold/15872-16127.pbf +0 -3
  808. package/fonts/Open Sans Semibold/16128-16383.pbf +0 -3
  809. package/fonts/Open Sans Semibold/16384-16639.pbf +0 -3
  810. package/fonts/Open Sans Semibold/16640-16895.pbf +0 -3
  811. package/fonts/Open Sans Semibold/16896-17151.pbf +0 -3
  812. package/fonts/Open Sans Semibold/17152-17407.pbf +0 -3
  813. package/fonts/Open Sans Semibold/17408-17663.pbf +0 -3
  814. package/fonts/Open Sans Semibold/17664-17919.pbf +0 -3
  815. package/fonts/Open Sans Semibold/1792-2047.pbf +0 -3
  816. package/fonts/Open Sans Semibold/17920-18175.pbf +0 -3
  817. package/fonts/Open Sans Semibold/18176-18431.pbf +0 -3
  818. package/fonts/Open Sans Semibold/18432-18687.pbf +0 -3
  819. package/fonts/Open Sans Semibold/18688-18943.pbf +0 -3
  820. package/fonts/Open Sans Semibold/18944-19199.pbf +0 -3
  821. package/fonts/Open Sans Semibold/19200-19455.pbf +0 -3
  822. package/fonts/Open Sans Semibold/19456-19711.pbf +0 -3
  823. package/fonts/Open Sans Semibold/19712-19967.pbf +0 -3
  824. package/fonts/Open Sans Semibold/19968-20223.pbf +0 -3
  825. package/fonts/Open Sans Semibold/20224-20479.pbf +0 -3
  826. package/fonts/Open Sans Semibold/2048-2303.pbf +0 -3
  827. package/fonts/Open Sans Semibold/20480-20735.pbf +0 -3
  828. package/fonts/Open Sans Semibold/20736-20991.pbf +0 -3
  829. package/fonts/Open Sans Semibold/20992-21247.pbf +0 -3
  830. package/fonts/Open Sans Semibold/21248-21503.pbf +0 -3
  831. package/fonts/Open Sans Semibold/21504-21759.pbf +0 -3
  832. package/fonts/Open Sans Semibold/21760-22015.pbf +0 -3
  833. package/fonts/Open Sans Semibold/22016-22271.pbf +0 -3
  834. package/fonts/Open Sans Semibold/22272-22527.pbf +0 -3
  835. package/fonts/Open Sans Semibold/22528-22783.pbf +0 -3
  836. package/fonts/Open Sans Semibold/22784-23039.pbf +0 -3
  837. package/fonts/Open Sans Semibold/2304-2559.pbf +0 -3
  838. package/fonts/Open Sans Semibold/23040-23295.pbf +0 -3
  839. package/fonts/Open Sans Semibold/23296-23551.pbf +0 -3
  840. package/fonts/Open Sans Semibold/23552-23807.pbf +0 -3
  841. package/fonts/Open Sans Semibold/23808-24063.pbf +0 -3
  842. package/fonts/Open Sans Semibold/24064-24319.pbf +0 -3
  843. package/fonts/Open Sans Semibold/24320-24575.pbf +0 -3
  844. package/fonts/Open Sans Semibold/24576-24831.pbf +0 -3
  845. package/fonts/Open Sans Semibold/24832-25087.pbf +0 -3
  846. package/fonts/Open Sans Semibold/25088-25343.pbf +0 -3
  847. package/fonts/Open Sans Semibold/25344-25599.pbf +0 -3
  848. package/fonts/Open Sans Semibold/256-511.pbf +0 -0
  849. package/fonts/Open Sans Semibold/2560-2815.pbf +0 -3
  850. package/fonts/Open Sans Semibold/25600-25855.pbf +0 -3
  851. package/fonts/Open Sans Semibold/25856-26111.pbf +0 -3
  852. package/fonts/Open Sans Semibold/26112-26367.pbf +0 -3
  853. package/fonts/Open Sans Semibold/26368-26623.pbf +0 -3
  854. package/fonts/Open Sans Semibold/26624-26879.pbf +0 -3
  855. package/fonts/Open Sans Semibold/26880-27135.pbf +0 -3
  856. package/fonts/Open Sans Semibold/27136-27391.pbf +0 -3
  857. package/fonts/Open Sans Semibold/27392-27647.pbf +0 -3
  858. package/fonts/Open Sans Semibold/27648-27903.pbf +0 -3
  859. package/fonts/Open Sans Semibold/27904-28159.pbf +0 -3
  860. package/fonts/Open Sans Semibold/2816-3071.pbf +0 -3
  861. package/fonts/Open Sans Semibold/28160-28415.pbf +0 -3
  862. package/fonts/Open Sans Semibold/28416-28671.pbf +0 -3
  863. package/fonts/Open Sans Semibold/28672-28927.pbf +0 -3
  864. package/fonts/Open Sans Semibold/28928-29183.pbf +0 -3
  865. package/fonts/Open Sans Semibold/29184-29439.pbf +0 -3
  866. package/fonts/Open Sans Semibold/29440-29695.pbf +0 -3
  867. package/fonts/Open Sans Semibold/29696-29951.pbf +0 -3
  868. package/fonts/Open Sans Semibold/29952-30207.pbf +0 -3
  869. package/fonts/Open Sans Semibold/30208-30463.pbf +0 -3
  870. package/fonts/Open Sans Semibold/30464-30719.pbf +0 -3
  871. package/fonts/Open Sans Semibold/3072-3327.pbf +0 -3
  872. package/fonts/Open Sans Semibold/30720-30975.pbf +0 -3
  873. package/fonts/Open Sans Semibold/30976-31231.pbf +0 -3
  874. package/fonts/Open Sans Semibold/31232-31487.pbf +0 -3
  875. package/fonts/Open Sans Semibold/31488-31743.pbf +0 -3
  876. package/fonts/Open Sans Semibold/31744-31999.pbf +0 -3
  877. package/fonts/Open Sans Semibold/32000-32255.pbf +0 -3
  878. package/fonts/Open Sans Semibold/32256-32511.pbf +0 -3
  879. package/fonts/Open Sans Semibold/32512-32767.pbf +0 -3
  880. package/fonts/Open Sans Semibold/32768-33023.pbf +0 -3
  881. package/fonts/Open Sans Semibold/33024-33279.pbf +0 -3
  882. package/fonts/Open Sans Semibold/3328-3583.pbf +0 -3
  883. package/fonts/Open Sans Semibold/33280-33535.pbf +0 -3
  884. package/fonts/Open Sans Semibold/33536-33791.pbf +0 -3
  885. package/fonts/Open Sans Semibold/33792-34047.pbf +0 -3
  886. package/fonts/Open Sans Semibold/34048-34303.pbf +0 -3
  887. package/fonts/Open Sans Semibold/34304-34559.pbf +0 -3
  888. package/fonts/Open Sans Semibold/34560-34815.pbf +0 -3
  889. package/fonts/Open Sans Semibold/34816-35071.pbf +0 -3
  890. package/fonts/Open Sans Semibold/35072-35327.pbf +0 -3
  891. package/fonts/Open Sans Semibold/35328-35583.pbf +0 -3
  892. package/fonts/Open Sans Semibold/35584-35839.pbf +0 -3
  893. package/fonts/Open Sans Semibold/3584-3839.pbf +0 -3
  894. package/fonts/Open Sans Semibold/35840-36095.pbf +0 -3
  895. package/fonts/Open Sans Semibold/36096-36351.pbf +0 -3
  896. package/fonts/Open Sans Semibold/36352-36607.pbf +0 -3
  897. package/fonts/Open Sans Semibold/36608-36863.pbf +0 -3
  898. package/fonts/Open Sans Semibold/36864-37119.pbf +0 -3
  899. package/fonts/Open Sans Semibold/37120-37375.pbf +0 -3
  900. package/fonts/Open Sans Semibold/37376-37631.pbf +0 -3
  901. package/fonts/Open Sans Semibold/37632-37887.pbf +0 -3
  902. package/fonts/Open Sans Semibold/37888-38143.pbf +0 -3
  903. package/fonts/Open Sans Semibold/38144-38399.pbf +0 -3
  904. package/fonts/Open Sans Semibold/3840-4095.pbf +0 -3
  905. package/fonts/Open Sans Semibold/38400-38655.pbf +0 -3
  906. package/fonts/Open Sans Semibold/38656-38911.pbf +0 -3
  907. package/fonts/Open Sans Semibold/38912-39167.pbf +0 -3
  908. package/fonts/Open Sans Semibold/39168-39423.pbf +0 -3
  909. package/fonts/Open Sans Semibold/39424-39679.pbf +0 -3
  910. package/fonts/Open Sans Semibold/39680-39935.pbf +0 -3
  911. package/fonts/Open Sans Semibold/39936-40191.pbf +0 -3
  912. package/fonts/Open Sans Semibold/40192-40447.pbf +0 -3
  913. package/fonts/Open Sans Semibold/40448-40703.pbf +0 -3
  914. package/fonts/Open Sans Semibold/40704-40959.pbf +0 -3
  915. package/fonts/Open Sans Semibold/4096-4351.pbf +0 -3
  916. package/fonts/Open Sans Semibold/40960-41215.pbf +0 -3
  917. package/fonts/Open Sans Semibold/41216-41471.pbf +0 -3
  918. package/fonts/Open Sans Semibold/41472-41727.pbf +0 -3
  919. package/fonts/Open Sans Semibold/41728-41983.pbf +0 -3
  920. package/fonts/Open Sans Semibold/41984-42239.pbf +0 -3
  921. package/fonts/Open Sans Semibold/42240-42495.pbf +0 -3
  922. package/fonts/Open Sans Semibold/42496-42751.pbf +0 -3
  923. package/fonts/Open Sans Semibold/42752-43007.pbf +0 -3
  924. package/fonts/Open Sans Semibold/43008-43263.pbf +0 -3
  925. package/fonts/Open Sans Semibold/43264-43519.pbf +0 -3
  926. package/fonts/Open Sans Semibold/4352-4607.pbf +0 -3
  927. package/fonts/Open Sans Semibold/43520-43775.pbf +0 -3
  928. package/fonts/Open Sans Semibold/43776-44031.pbf +0 -3
  929. package/fonts/Open Sans Semibold/44032-44287.pbf +0 -3
  930. package/fonts/Open Sans Semibold/44288-44543.pbf +0 -3
  931. package/fonts/Open Sans Semibold/44544-44799.pbf +0 -3
  932. package/fonts/Open Sans Semibold/44800-45055.pbf +0 -3
  933. package/fonts/Open Sans Semibold/45056-45311.pbf +0 -3
  934. package/fonts/Open Sans Semibold/45312-45567.pbf +0 -3
  935. package/fonts/Open Sans Semibold/45568-45823.pbf +0 -3
  936. package/fonts/Open Sans Semibold/45824-46079.pbf +0 -3
  937. package/fonts/Open Sans Semibold/4608-4863.pbf +0 -3
  938. package/fonts/Open Sans Semibold/46080-46335.pbf +0 -3
  939. package/fonts/Open Sans Semibold/46336-46591.pbf +0 -3
  940. package/fonts/Open Sans Semibold/46592-46847.pbf +0 -3
  941. package/fonts/Open Sans Semibold/46848-47103.pbf +0 -3
  942. package/fonts/Open Sans Semibold/47104-47359.pbf +0 -3
  943. package/fonts/Open Sans Semibold/47360-47615.pbf +0 -3
  944. package/fonts/Open Sans Semibold/47616-47871.pbf +0 -3
  945. package/fonts/Open Sans Semibold/47872-48127.pbf +0 -3
  946. package/fonts/Open Sans Semibold/48128-48383.pbf +0 -3
  947. package/fonts/Open Sans Semibold/48384-48639.pbf +0 -3
  948. package/fonts/Open Sans Semibold/4864-5119.pbf +0 -3
  949. package/fonts/Open Sans Semibold/48640-48895.pbf +0 -3
  950. package/fonts/Open Sans Semibold/48896-49151.pbf +0 -3
  951. package/fonts/Open Sans Semibold/49152-49407.pbf +0 -3
  952. package/fonts/Open Sans Semibold/49408-49663.pbf +0 -3
  953. package/fonts/Open Sans Semibold/49664-49919.pbf +0 -3
  954. package/fonts/Open Sans Semibold/49920-50175.pbf +0 -3
  955. package/fonts/Open Sans Semibold/50176-50431.pbf +0 -3
  956. package/fonts/Open Sans Semibold/50432-50687.pbf +0 -3
  957. package/fonts/Open Sans Semibold/50688-50943.pbf +0 -3
  958. package/fonts/Open Sans Semibold/50944-51199.pbf +0 -3
  959. package/fonts/Open Sans Semibold/512-767.pbf +0 -0
  960. package/fonts/Open Sans Semibold/5120-5375.pbf +0 -3
  961. package/fonts/Open Sans Semibold/51200-51455.pbf +0 -3
  962. package/fonts/Open Sans Semibold/51456-51711.pbf +0 -3
  963. package/fonts/Open Sans Semibold/51712-51967.pbf +0 -3
  964. package/fonts/Open Sans Semibold/51968-52223.pbf +0 -3
  965. package/fonts/Open Sans Semibold/52224-52479.pbf +0 -3
  966. package/fonts/Open Sans Semibold/52480-52735.pbf +0 -3
  967. package/fonts/Open Sans Semibold/52736-52991.pbf +0 -3
  968. package/fonts/Open Sans Semibold/52992-53247.pbf +0 -3
  969. package/fonts/Open Sans Semibold/53248-53503.pbf +0 -3
  970. package/fonts/Open Sans Semibold/53504-53759.pbf +0 -3
  971. package/fonts/Open Sans Semibold/5376-5631.pbf +0 -3
  972. package/fonts/Open Sans Semibold/53760-54015.pbf +0 -3
  973. package/fonts/Open Sans Semibold/54016-54271.pbf +0 -3
  974. package/fonts/Open Sans Semibold/54272-54527.pbf +0 -3
  975. package/fonts/Open Sans Semibold/54528-54783.pbf +0 -3
  976. package/fonts/Open Sans Semibold/54784-55039.pbf +0 -3
  977. package/fonts/Open Sans Semibold/55040-55295.pbf +0 -3
  978. package/fonts/Open Sans Semibold/55296-55551.pbf +0 -3
  979. package/fonts/Open Sans Semibold/55552-55807.pbf +0 -3
  980. package/fonts/Open Sans Semibold/55808-56063.pbf +0 -3
  981. package/fonts/Open Sans Semibold/56064-56319.pbf +0 -3
  982. package/fonts/Open Sans Semibold/5632-5887.pbf +0 -3
  983. package/fonts/Open Sans Semibold/56320-56575.pbf +0 -3
  984. package/fonts/Open Sans Semibold/56576-56831.pbf +0 -3
  985. package/fonts/Open Sans Semibold/56832-57087.pbf +0 -3
  986. package/fonts/Open Sans Semibold/57088-57343.pbf +0 -3
  987. package/fonts/Open Sans Semibold/57344-57599.pbf +0 -3
  988. package/fonts/Open Sans Semibold/57600-57855.pbf +0 -3
  989. package/fonts/Open Sans Semibold/57856-58111.pbf +0 -3
  990. package/fonts/Open Sans Semibold/58112-58367.pbf +0 -3
  991. package/fonts/Open Sans Semibold/58368-58623.pbf +0 -3
  992. package/fonts/Open Sans Semibold/58624-58879.pbf +0 -3
  993. package/fonts/Open Sans Semibold/5888-6143.pbf +0 -3
  994. package/fonts/Open Sans Semibold/58880-59135.pbf +0 -3
  995. package/fonts/Open Sans Semibold/59136-59391.pbf +0 -3
  996. package/fonts/Open Sans Semibold/59392-59647.pbf +0 -3
  997. package/fonts/Open Sans Semibold/59648-59903.pbf +0 -3
  998. package/fonts/Open Sans Semibold/59904-60159.pbf +0 -3
  999. package/fonts/Open Sans Semibold/60160-60415.pbf +0 -3
  1000. package/fonts/Open Sans Semibold/60416-60671.pbf +0 -3
  1001. package/fonts/Open Sans Semibold/60672-60927.pbf +0 -3
  1002. package/fonts/Open Sans Semibold/60928-61183.pbf +0 -3
  1003. package/fonts/Open Sans Semibold/61184-61439.pbf +0 -3
  1004. package/fonts/Open Sans Semibold/6144-6399.pbf +0 -3
  1005. package/fonts/Open Sans Semibold/61440-61695.pbf +0 -3
  1006. package/fonts/Open Sans Semibold/61696-61951.pbf +0 -3
  1007. package/fonts/Open Sans Semibold/61952-62207.pbf +0 -3
  1008. package/fonts/Open Sans Semibold/62208-62463.pbf +0 -3
  1009. package/fonts/Open Sans Semibold/62464-62719.pbf +0 -3
  1010. package/fonts/Open Sans Semibold/62720-62975.pbf +0 -3
  1011. package/fonts/Open Sans Semibold/62976-63231.pbf +0 -3
  1012. package/fonts/Open Sans Semibold/63232-63487.pbf +0 -3
  1013. package/fonts/Open Sans Semibold/63488-63743.pbf +0 -3
  1014. package/fonts/Open Sans Semibold/63744-63999.pbf +0 -3
  1015. package/fonts/Open Sans Semibold/6400-6655.pbf +0 -3
  1016. package/fonts/Open Sans Semibold/64000-64255.pbf +0 -3
  1017. package/fonts/Open Sans Semibold/64256-64511.pbf +0 -0
  1018. package/fonts/Open Sans Semibold/64512-64767.pbf +0 -3
  1019. package/fonts/Open Sans Semibold/64768-65023.pbf +0 -3
  1020. package/fonts/Open Sans Semibold/65024-65279.pbf +0 -0
  1021. package/fonts/Open Sans Semibold/65280-65535.pbf +0 -0
  1022. package/fonts/Open Sans Semibold/6656-6911.pbf +0 -3
  1023. package/fonts/Open Sans Semibold/6912-7167.pbf +0 -3
  1024. package/fonts/Open Sans Semibold/7168-7423.pbf +0 -3
  1025. package/fonts/Open Sans Semibold/7424-7679.pbf +0 -3
  1026. package/fonts/Open Sans Semibold/768-1023.pbf +0 -0
  1027. package/fonts/Open Sans Semibold/7680-7935.pbf +0 -0
  1028. package/fonts/Open Sans Semibold/7936-8191.pbf +0 -0
  1029. package/fonts/Open Sans Semibold/8192-8447.pbf +0 -0
  1030. package/fonts/Open Sans Semibold/8448-8703.pbf +0 -0
  1031. package/fonts/Open Sans Semibold/8704-8959.pbf +0 -0
  1032. package/fonts/Open Sans Semibold/8960-9215.pbf +0 -3
  1033. package/fonts/Open Sans Semibold/9216-9471.pbf +0 -3
  1034. package/fonts/Open Sans Semibold/9472-9727.pbf +0 -0
  1035. package/fonts/Open Sans Semibold/9728-9983.pbf +0 -3
  1036. package/fonts/Open Sans Semibold/9984-10239.pbf +0 -4
  1037. package/styles/klokantech-basic/style.json +0 -1083
  1038. package/styles/osm-bright/sprite.json +0 -611
  1039. package/styles/osm-bright/sprite.png +0 -0
  1040. package/styles/osm-bright/sprite@2x.json +0 -611
  1041. package/styles/osm-bright/sprite@2x.png +0 -0
  1042. package/styles/osm-bright/style.json +0 -3445
  1043. package/test_data.zip +0 -0
@@ -7,10 +7,11 @@ import url from 'url';
7
7
  import util from 'util';
8
8
  import zlib from 'zlib';
9
9
  import sharp from 'sharp'; // sharp has to be required before node-canvas. see https://github.com/lovell/sharp/issues/371
10
- import pkg from 'canvas';
10
+ import {createCanvas, Image} from 'canvas';
11
11
  import clone from 'clone';
12
12
  import Color from 'color';
13
13
  import express from 'express';
14
+ import sanitize from "sanitize-filename";
14
15
  import SphericalMercator from '@mapbox/sphericalmercator';
15
16
  import mlgl from '@maplibre/maplibre-gl-native';
16
17
  import MBTiles from '@mapbox/mbtiles';
@@ -21,7 +22,6 @@ import {getFontsPbf, getTileUrls, fixTileJSONCenter} from './utils.js';
21
22
  const FLOAT_PATTERN = '[+-]?(?:\\d+|\\d+\.?\\d+)';
22
23
  const httpTester = /^(http(s)?:)?\/\//;
23
24
 
24
- const {createCanvas} = pkg;
25
25
  const mercator = new SphericalMercator();
26
26
  const getScale = (scale) => (scale || '@1x').slice(1, 2) | 0;
27
27
 
@@ -93,37 +93,385 @@ function createEmptyResponse(format, color, callback) {
93
93
  });
94
94
  }
95
95
 
96
- const extractPathFromQuery = (query, transformer) => {
97
- const pathParts = (query.path || '').split('|');
98
- const path = [];
99
- for (const pair of pathParts) {
100
- const pairParts = pair.split(',');
101
- if (pairParts.length === 2) {
102
- let pair;
103
- if (query.latlng === '1' || query.latlng === 'true') {
104
- pair = [+(pairParts[1]), +(pairParts[0])];
105
- } else {
106
- pair = [+(pairParts[0]), +(pairParts[1])];
96
+ /**
97
+ * Parses coordinate pair provided to pair of floats and ensures the resulting
98
+ * pair is a longitude/latitude combination depending on lnglat query parameter.
99
+ * @param {List} coordinatePair Coordinate pair.
100
+ * @param {Object} query Request query parameters.
101
+ */
102
+ const parseCoordinatePair = (coordinates, query) => {
103
+ const firstCoordinate = parseFloat(coordinates[0]);
104
+ const secondCoordinate = parseFloat(coordinates[1]);
105
+
106
+ // Ensure provided coordinates could be parsed and abort if not
107
+ if (isNaN(firstCoordinate) || isNaN(secondCoordinate)) {
108
+ return null;
109
+ }
110
+
111
+ // Check if coordinates have been provided as lat/lng pair instead of the
112
+ // ususal lng/lat pair and ensure resulting pair is lng/lat
113
+ if (query.latlng === '1' || query.latlng === 'true') {
114
+ return [secondCoordinate, firstCoordinate];
115
+ }
116
+
117
+ return [firstCoordinate, secondCoordinate];
118
+ };
119
+
120
+ /**
121
+ * Parses a coordinate pair from query arguments and optionally transforms it.
122
+ * @param {List} coordinatePair Coordinate pair.
123
+ * @param {Object} query Request query parameters.
124
+ * @param {Function} transformer Optional transform function.
125
+ */
126
+ const parseCoordinates = (coordinatePair, query, transformer) => {
127
+ const parsedCoordinates = parseCoordinatePair(coordinatePair, query);
128
+
129
+ // Transform coordinates
130
+ if (transformer) {
131
+ return transformer(parsedCoordinates);
132
+ }
133
+
134
+ return parsedCoordinates;
135
+ };
136
+
137
+
138
+ /**
139
+ * Parses paths provided via query into a list of path objects.
140
+ * @param {Object} query Request query parameters.
141
+ * @param {Function} transformer Optional transform function.
142
+ */
143
+ const extractPathsFromQuery = (query, transformer) => {
144
+ // Return an empty list if no paths have been provided
145
+ if (!query.path) {
146
+ return [];
147
+ }
148
+
149
+ const paths = [];
150
+
151
+ // Check if multiple paths have been provided and mimic a list if it's a
152
+ // single path.
153
+ const providedPaths = Array.isArray(query.path) ? query.path : [query.path];
154
+
155
+ // Iterate through paths, parse and validate them
156
+ for (const provided_path of providedPaths) {
157
+ const currentPath = [];
158
+
159
+ // Extract coordinate-list from path
160
+ const pathParts = (provided_path || '').split('|');
161
+
162
+ // Iterate through coordinate-list, parse the coordinates and validate them
163
+ for (const pair of pathParts) {
164
+ // Extract coordinates from coordinate pair
165
+ const pairParts = pair.split(',');
166
+
167
+ // Ensure we have two coordinates
168
+ if (pairParts.length === 2) {
169
+ const pair = parseCoordinates(pairParts, query, transformer);
170
+
171
+ // Ensure coordinates could be parsed and skip them if not
172
+ if (pair === null) {
173
+ continue;
174
+ }
175
+
176
+ // Add the coordinate-pair to the current path if they are valid
177
+ currentPath.push(pair);
107
178
  }
108
- if (transformer) {
109
- pair = transformer(pair);
179
+ }
180
+
181
+ // Extend list of paths with current path if it contains coordinates
182
+ if (currentPath.length) {
183
+ paths.push(currentPath)
184
+ }
185
+
186
+ }
187
+ return paths;
188
+ };
189
+
190
+ /**
191
+ * Parses marker options provided via query and sets corresponding attributes
192
+ * on marker object.
193
+ * Options adhere to the following format
194
+ * [optionName]:[optionValue]
195
+ * @param {List[String]} optionsList List of option strings.
196
+ * @param {Object} marker Marker object to configure.
197
+ */
198
+ const parseMarkerOptions = (optionsList, marker) => {
199
+ for (const options of optionsList) {
200
+ const optionParts = options.split(':');
201
+ // Ensure we got an option name and value
202
+ if (optionParts.length < 2) {
203
+ continue;
204
+ }
205
+
206
+ switch (optionParts[0]) {
207
+ // Scale factor to up- or downscale icon
208
+ case 'scale':
209
+ // Scale factors must not be negative
210
+ marker.scale = Math.abs(parseFloat(optionParts[1]))
211
+ break;
212
+ // Icon offset as positive or negative pixel value in the following
213
+ // format [offsetX],[offsetY] where [offsetY] is optional
214
+ case 'offset':
215
+ const providedOffset = optionParts[1].split(',');
216
+ // Set X-axis offset
217
+ marker.offsetX = parseFloat(providedOffset[0]);
218
+ // Check if an offset has been provided for Y-axis
219
+ if (providedOffset.length > 1) {
220
+ marker.offsetY = parseFloat(providedOffset[1]);
221
+ }
222
+ break;
223
+ }
224
+ }
225
+ };
226
+
227
+ /**
228
+ * Parses markers provided via query into a list of marker objects.
229
+ * @param {Object} query Request query parameters.
230
+ * @param {Object} options Configuration options.
231
+ * @param {Function} transformer Optional transform function.
232
+ */
233
+ const extractMarkersFromQuery = (query, options, transformer) => {
234
+ // Return an empty list if no markers have been provided
235
+ if (!query.marker) {
236
+ return [];
237
+ }
238
+
239
+ const markers = [];
240
+
241
+ // Check if multiple markers have been provided and mimic a list if it's a
242
+ // single maker.
243
+ const providedMarkers = Array.isArray(query.marker) ?
244
+ query.marker : [query.marker];
245
+
246
+ // Iterate through provided markers which can have one of the following
247
+ // formats
248
+ // [location]|[pathToFileTelativeToConfiguredIconPath]
249
+ // [location]|[pathToFile...]|[option]|[option]|...
250
+ for (const providedMarker of providedMarkers) {
251
+ const markerParts = providedMarker.split('|');
252
+ // Ensure we got at least a location and an icon uri
253
+ if (markerParts.length < 2) {
254
+ continue;
255
+ }
256
+
257
+ const locationParts = markerParts[0].split(',');
258
+ // Ensure the locationParts contains two items
259
+ if (locationParts.length !== 2) {
260
+ continue;
261
+ }
262
+
263
+ let iconURI = markerParts[1];
264
+ // Check if icon is served via http otherwise marker icons are expected to
265
+ // be provided as filepaths relative to configured icon path
266
+ if (!(iconURI.startsWith('http://') || iconURI.startsWith('https://'))) {
267
+ // Sanitize URI with sanitize-filename
268
+ // https://www.npmjs.com/package/sanitize-filename#details
269
+ iconURI = sanitize(iconURI)
270
+
271
+ // If the selected icon is not part of available icons skip it
272
+ if (!options.paths.availableIcons.includes(iconURI)) {
273
+ continue;
110
274
  }
111
- path.push(pair);
275
+
276
+ iconURI = path.resolve(options.paths.icons, iconURI);
277
+
278
+ // When we encounter a remote icon check if the configuration explicitly allows them.
279
+ } else if (options.allowRemoteMarkerIcons !== true) {
280
+ continue;
112
281
  }
282
+
283
+ // Ensure marker location could be parsed
284
+ const location = parseCoordinates(locationParts, query, transformer);
285
+ if (location === null) {
286
+ continue;
287
+ }
288
+
289
+ const marker = {};
290
+
291
+ marker.location = location;
292
+ marker.icon = iconURI;
293
+
294
+ // Check if options have been provided
295
+ if (markerParts.length > 2) {
296
+ parseMarkerOptions(markerParts.slice(2), marker);
297
+ }
298
+
299
+ // Add marker to list
300
+ markers.push(marker);
301
+
113
302
  }
114
- return path;
303
+ return markers;
304
+ };
305
+
306
+ /**
307
+ * Transforms coordinates to pixels.
308
+ * @param {List[Number]} ll Longitude/Latitude coordinate pair.
309
+ * @param {Number} zoom Map zoom level.
310
+ */
311
+ const precisePx = (ll, zoom) => {
312
+ const px = mercator.px(ll, 20);
313
+ const scale = Math.pow(2, zoom - 20);
314
+ return [px[0] * scale, px[1] * scale];
115
315
  };
116
316
 
117
- const renderOverlay = (z, x, y, bearing, pitch, w, h, scale,
118
- path, query) => {
317
+ /**
318
+ * Draws a marker in cavans context.
319
+ * @param {Object} ctx Canvas context object.
320
+ * @param {Object} marker Marker object parsed by extractMarkersFromQuery.
321
+ * @param {Number} z Map zoom level.
322
+ */
323
+ const drawMarker = (ctx, marker, z) => {
324
+ return new Promise(resolve => {
325
+ const img = new Image();
326
+ const pixelCoords = precisePx(marker.location, z);
327
+
328
+ const getMarkerCoordinates = (imageWidth, imageHeight, scale) => {
329
+ // Images are placed with their top-left corner at the provided location
330
+ // within the canvas but we expect icons to be centered and above it.
331
+
332
+ // Substract half of the images width from the x-coordinate to center
333
+ // the image in relation to the provided location
334
+ let xCoordinate = pixelCoords[0] - imageWidth / 2;
335
+ // Substract the images height from the y-coordinate to place it above
336
+ // the provided location
337
+ let yCoordinate = pixelCoords[1] - imageHeight;
338
+
339
+ // Since image placement is dependent on the size offsets have to be
340
+ // scaled as well. Additionally offsets are provided as either positive or
341
+ // negative values so we always add them
342
+ if (marker.offsetX) {
343
+ xCoordinate = xCoordinate + (marker.offsetX * scale);
344
+ }
345
+ if (marker.offsetY) {
346
+ yCoordinate = yCoordinate + (marker.offsetY * scale);
347
+ }
348
+
349
+ return {
350
+ 'x': xCoordinate,
351
+ 'y': yCoordinate
352
+ };
353
+ };
354
+
355
+ const drawOnCanvas = () => {
356
+ // Check if the images should be resized before beeing drawn
357
+ const defaultScale = 1;
358
+ const scale = marker.scale ? marker.scale : defaultScale;
359
+
360
+ // Calculate scaled image sizes
361
+ const imageWidth = img.width * scale;
362
+ const imageHeight = img.height * scale;
363
+
364
+ // Pass the desired sizes to get correlating coordinates
365
+ const coords = getMarkerCoordinates(imageWidth, imageHeight, scale);
366
+
367
+ // Draw the image on canvas
368
+ if (scale != defaultScale) {
369
+ ctx.drawImage(img, coords.x, coords.y, imageWidth, imageHeight);
370
+ } else {
371
+ ctx.drawImage(img, coords.x, coords.y);
372
+ }
373
+ // Resolve the promise when image has been drawn
374
+ resolve();
375
+ };
376
+
377
+ img.onload = drawOnCanvas;
378
+ img.onerror = err => { throw err };
379
+ img.src = marker.icon;
380
+ });
381
+ }
382
+
383
+ /**
384
+ * Draws a list of markers onto a canvas.
385
+ * Wraps drawing of markers into list of promises and awaits them.
386
+ * It's required because images are expected to load asynchronous in canvas js
387
+ * even when provided from a local disk.
388
+ * @param {Object} ctx Canvas context object.
389
+ * @param {List[Object]} markers Marker objects parsed by extractMarkersFromQuery.
390
+ * @param {Number} z Map zoom level.
391
+ */
392
+ const drawMarkers = async (ctx, markers, z) => {
393
+ const markerPromises = [];
394
+
395
+ for (const marker of markers) {
396
+ // Begin drawing marker
397
+ markerPromises.push(drawMarker(ctx, marker, z));
398
+ }
399
+
400
+ // Await marker drawings before continuing
401
+ await Promise.all(markerPromises);
402
+ }
403
+
404
+ /**
405
+ * Draws a list of coordinates onto a canvas and styles the resulting path.
406
+ * @param {Object} ctx Canvas context object.
407
+ * @param {List[Number]} path List of coordinates.
408
+ * @param {Object} query Request query parameters.
409
+ * @param {Number} z Map zoom level.
410
+ */
411
+ const drawPath = (ctx, path, query, z) => {
119
412
  if (!path || path.length < 2) {
120
413
  return null;
121
414
  }
122
- const precisePx = (ll, zoom) => {
123
- const px = mercator.px(ll, 20);
124
- const scale = Math.pow(2, zoom - 20);
125
- return [px[0] * scale, px[1] * scale];
126
- };
415
+
416
+ ctx.beginPath();
417
+
418
+ // Transform coordinates to pixel on canvas and draw lines between points
419
+ for (const pair of path) {
420
+ const px = precisePx(pair, z);
421
+ ctx.lineTo(px[0], px[1]);
422
+ }
423
+
424
+ // Check if first coordinate matches last coordinate
425
+ if (path[0][0] === path[path.length - 1][0] &&
426
+ path[0][1] === path[path.length - 1][1]) {
427
+ ctx.closePath();
428
+ }
429
+
430
+ // Optionally fill drawn shape with a rgba color from query
431
+ if (query.fill !== undefined) {
432
+ ctx.fillStyle = query.fill;
433
+ ctx.fill();
434
+ }
435
+
436
+ // Get line width from query and fall back to 1 if not provided
437
+ const lineWidth = query.width !== undefined ?
438
+ parseFloat(query.width) : 1;
439
+
440
+ // Ensure line width is valid
441
+ if (lineWidth > 0) {
442
+ // Get border width from query and fall back to 10% of line width
443
+ const borderWidth = query.borderwidth !== undefined ?
444
+ parseFloat(query.borderwidth) : lineWidth * 0.1;
445
+
446
+ // Set rendering style for the start and end points of the path
447
+ // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap
448
+ ctx.lineCap = query.linecap || 'butt';
449
+
450
+ // Set rendering style for overlapping segments of the path with differing directions
451
+ // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin
452
+ ctx.lineJoin = query.linejoin || 'miter';
453
+
454
+ // In order to simulate a border we draw the path two times with the first
455
+ // beeing the wider border part.
456
+ if (query.border !== undefined && borderWidth > 0) {
457
+ // We need to double the desired border width and add it to the line width
458
+ // in order to get the desired border on each side of the line.
459
+ ctx.lineWidth = lineWidth + (borderWidth * 2);
460
+ // Set border style as rgba
461
+ ctx.strokeStyle = query.border;
462
+ ctx.stroke();
463
+ }
464
+
465
+ ctx.lineWidth = lineWidth;
466
+ ctx.strokeStyle = query.stroke || 'rgba(0,64,255,0.7)';
467
+ ctx.stroke();
468
+ }
469
+ }
470
+
471
+ const renderOverlay = async (z, x, y, bearing, pitch, w, h, scale, paths, markers, query) => {
472
+ if ((!paths || paths.length === 0) && (!markers || markers.length === 0)) {
473
+ return null;
474
+ }
127
475
 
128
476
  const center = precisePx([x, y], z);
129
477
 
@@ -147,25 +495,15 @@ const renderOverlay = (z, x, y, bearing, pitch, w, h, scale,
147
495
  // optimized path
148
496
  ctx.translate(-center[0] + w / 2, -center[1] + h / 2);
149
497
  }
150
- const lineWidth = query.width !== undefined ?
151
- parseFloat(query.width) : 1;
152
- ctx.lineWidth = lineWidth;
153
- ctx.strokeStyle = query.stroke || 'rgba(0,64,255,0.7)';
154
- ctx.fillStyle = query.fill || 'rgba(255,255,255,0.4)';
155
- ctx.beginPath();
156
- for (const pair of path) {
157
- const px = precisePx(pair, z);
158
- ctx.lineTo(px[0], px[1]);
159
- }
160
- if (path[0][0] === path[path.length - 1][0] &&
161
- path[0][1] === path[path.length - 1][1]) {
162
- ctx.closePath();
163
- }
164
- ctx.fill();
165
- if (lineWidth > 0) {
166
- ctx.stroke();
498
+
499
+ // Draw provided paths if any
500
+ for (const path of paths) {
501
+ drawPath(ctx, path, query, z);
167
502
  }
168
503
 
504
+ // Await drawing of markers before rendering the canvas
505
+ await drawMarkers(ctx, markers, z);
506
+
169
507
  return canvas.toBuffer();
170
508
  };
171
509
 
@@ -396,7 +734,7 @@ export const serve_rendered = {
396
734
  FLOAT_PATTERN, FLOAT_PATTERN, FLOAT_PATTERN,
397
735
  FLOAT_PATTERN, FLOAT_PATTERN);
398
736
 
399
- app.get(util.format(staticPattern, centerPattern), (req, res, next) => {
737
+ app.get(util.format(staticPattern, centerPattern), async (req, res, next) => {
400
738
  const item = repo[req.params.id];
401
739
  if (!item) {
402
740
  return res.sendStatus(404);
@@ -425,13 +763,14 @@ export const serve_rendered = {
425
763
  y = ll[1];
426
764
  }
427
765
 
428
- const path = extractPathFromQuery(req.query, transformer);
429
- const overlay = renderOverlay(z, x, y, bearing, pitch, w, h, scale, path, req.query);
766
+ const paths = extractPathsFromQuery(req.query, transformer);
767
+ const markers = extractMarkersFromQuery(req.query, options, transformer);
768
+ const overlay = await renderOverlay(z, x, y, bearing, pitch, w, h, scale, paths, markers, req.query);
430
769
 
431
770
  return respondImage(item, z, x, y, bearing, pitch, w, h, scale, format, res, next, overlay, 'static');
432
771
  });
433
772
 
434
- const serveBounds = (req, res, next) => {
773
+ const serveBounds = async (req, res, next) => {
435
774
  const item = repo[req.params.id];
436
775
  if (!item) {
437
776
  return res.sendStatus(404);
@@ -464,9 +803,9 @@ export const serve_rendered = {
464
803
  const bearing = 0;
465
804
  const pitch = 0;
466
805
 
467
- const path = extractPathFromQuery(req.query, transformer);
468
- const overlay = renderOverlay(z, x, y, bearing, pitch, w, h, scale, path, req.query);
469
-
806
+ const paths = extractPathsFromQuery(req.query, transformer);
807
+ const markers = extractMarkersFromQuery(req.query, options, transformer);
808
+ const overlay = await renderOverlay(z, x, y, bearing, pitch, w, h, scale, paths, markers, req.query);
470
809
  return respondImage(item, z, x, y, bearing, pitch, w, h, scale, format, res, next, overlay, 'static');
471
810
  };
472
811
 
@@ -500,7 +839,7 @@ export const serve_rendered = {
500
839
 
501
840
  const autoPattern = 'auto';
502
841
 
503
- app.get(util.format(staticPattern, autoPattern), (req, res, next) => {
842
+ app.get(util.format(staticPattern, autoPattern), async (req, res, next) => {
504
843
  const item = repo[req.params.id];
505
844
  if (!item) {
506
845
  return res.sendStatus(404);
@@ -516,13 +855,25 @@ export const serve_rendered = {
516
855
  const transformer = raw ?
517
856
  mercator.inverse.bind(mercator) : item.dataProjWGStoInternalWGS;
518
857
 
519
- const path = extractPathFromQuery(req.query, transformer);
520
- if (path.length < 2) {
521
- return res.status(400).send('Invalid path');
858
+ const paths = extractPathsFromQuery(req.query, transformer);
859
+ const markers = extractMarkersFromQuery(req.query, options, transformer);
860
+
861
+ // Extract coordinates from markers
862
+ const markerCoordinates = [];
863
+ for (const marker of markers) {
864
+ markerCoordinates.push(marker.location);
865
+ }
866
+
867
+ // Create array with coordinates from markers and path
868
+ const coords = new Array().concat(paths.flat()).concat(markerCoordinates);
869
+
870
+ // Check if we have at least one coordinate to calculate a bounding box
871
+ if (coords.length < 1) {
872
+ return res.status(400).send('No coordinates provided');
522
873
  }
523
874
 
524
875
  const bbox = [Infinity, Infinity, -Infinity, -Infinity];
525
- for (const pair of path) {
876
+ for (const pair of coords) {
526
877
  bbox[0] = Math.min(bbox[0], pair[0]);
527
878
  bbox[1] = Math.min(bbox[1], pair[1]);
528
879
  bbox[2] = Math.max(bbox[2], pair[0]);
@@ -534,11 +885,17 @@ export const serve_rendered = {
534
885
  [(bbox_[0] + bbox_[2]) / 2, (bbox_[1] + bbox_[3]) / 2]
535
886
  );
536
887
 
537
- const z = calcZForBBox(bbox, w, h, req.query);
888
+ // Calculate zoom level
889
+ const maxZoom = parseFloat(req.query.maxzoom);
890
+ let z = calcZForBBox(bbox, w, h, req.query);
891
+ if (maxZoom > 0) {
892
+ z = Math.min(z, maxZoom);
893
+ }
894
+
538
895
  const x = center[0];
539
896
  const y = center[1];
540
897
 
541
- const overlay = renderOverlay(z, x, y, bearing, pitch, w, h, scale, path, req.query);
898
+ const overlay = await renderOverlay(z, x, y, bearing, pitch, w, h, scale, paths, markers, req.query);
542
899
 
543
900
  return respondImage(item, z, x, y, bearing, pitch, w, h, scale, format, res, next, overlay, 'static');
544
901
  });
package/src/server.js CHANGED
@@ -30,7 +30,7 @@ const packageJson = JSON.parse(fs.readFileSync(__dirname + '/../package.json', '
30
30
  const isLight = packageJson.name.slice(-6) === '-light';
31
31
  const serve_rendered = (await import(`${!isLight ? `./serve_rendered.js` : `./serve_light.js`}`)).serve_rendered;
32
32
 
33
- export function server(opts) {
33
+ function start(opts) {
34
34
  console.log('Starting server');
35
35
 
36
36
  const app = express().disable('x-powered-by');
@@ -79,6 +79,7 @@ export function server(opts) {
79
79
  paths.fonts = path.resolve(paths.root, paths.fonts || '');
80
80
  paths.sprites = path.resolve(paths.root, paths.sprites || '');
81
81
  paths.mbtiles = path.resolve(paths.root, paths.mbtiles || '');
82
+ paths.icons = path.resolve(paths.root, paths.icons || '');
82
83
 
83
84
  const startupPromises = [];
84
85
 
@@ -92,6 +93,36 @@ export function server(opts) {
92
93
  checkPath('fonts');
93
94
  checkPath('sprites');
94
95
  checkPath('mbtiles');
96
+ checkPath('icons');
97
+
98
+ /**
99
+ * Recursively get all files within a directory.
100
+ * Inspired by https://stackoverflow.com/a/45130990/10133863
101
+ * @param {String} directory Absolute path to a directory to get files from.
102
+ */
103
+ const getFiles = async (directory) => {
104
+ // Fetch all entries of the directory and attach type information
105
+ const dirEntries = await fs.promises.readdir(directory, { withFileTypes: true });
106
+
107
+ // Iterate through entries and return the relative file-path to the icon directory if it is not a directory
108
+ // otherwise initiate a recursive call
109
+ const files = await Promise.all(dirEntries.map((dirEntry) => {
110
+ const entryPath = path.resolve(directory, dirEntry.name);
111
+ return dirEntry.isDirectory() ?
112
+ getFiles(entryPath) : entryPath.replace(paths.icons + path.sep, "");
113
+ }));
114
+
115
+ // Flatten the list of files to a single array
116
+ return files.flat();
117
+ }
118
+
119
+ // Load all available icons into a settings object
120
+ startupPromises.push(new Promise(resolve => {
121
+ getFiles(paths.icons).then((files) => {
122
+ paths.availableIcons = files;
123
+ resolve();
124
+ });
125
+ }));
95
126
 
96
127
  if (options.dataDecorator) {
97
128
  try {
@@ -420,7 +451,12 @@ export function server(opts) {
420
451
  }
421
452
  wmts.id = id;
422
453
  wmts.name = (serving.styles[id] || serving.rendered[id]).name;
423
- wmts.baseUrl = `${req.get('X-Forwarded-Protocol') ? req.get('X-Forwarded-Protocol') : req.protocol}://${req.get('host')}`;
454
+ if (opts.publicUrl) {
455
+ wmts.baseUrl = opts.publicUrl;
456
+ }
457
+ else {
458
+ wmts.baseUrl = `${req.get('X-Forwarded-Protocol') ? req.get('X-Forwarded-Protocol') : req.protocol}://${req.get('host')}/`;
459
+ }
424
460
  return wmts;
425
461
  });
426
462
 
@@ -466,7 +502,7 @@ export function server(opts) {
466
502
  };
467
503
  }
468
504
 
469
- export const exports = (opts) => {
505
+ export function server(opts) {
470
506
  const running = start(opts);
471
507
 
472
508
  running.startupPromise.catch((err) => {
@@ -482,10 +518,6 @@ export const exports = (opts) => {
482
518
  console.log('Stopping server and reloading config');
483
519
 
484
520
  running.server.shutdown(() => {
485
- for (const key in require.cache) {
486
- delete require.cache[key];
487
- }
488
-
489
521
  const restarted = start(opts);
490
522
  running.server = restarted.server;
491
523
  running.app = restarted.app;
package/test/static.js CHANGED
@@ -95,7 +95,7 @@ describe('Static endpoints', function() {
95
95
 
96
96
  describe('invalid requests return 4xx', function() {
97
97
  testStatic(prefix, 'auto/256x256', 'png', 400);
98
- testStatic(prefix, 'auto/256x256', 'png', 400, undefined, undefined, '?path=10,10');
98
+ testStatic(prefix, 'auto/256x256', 'png', 400, undefined, undefined, '?path=invalid');
99
99
  testStatic(prefix, 'auto/2560x2560', 'png', 400, undefined, undefined, '?path=10,10|20,20');
100
100
  });
101
101
  });
Binary file
Binary file
@@ -1,3 +0,0 @@
1
-
2
- 
3
- Open Sans Bold 10240-10495
@@ -1,3 +0,0 @@
1
-
2
- 
3
- Open Sans Bold 10496-10751
@@ -1,3 +0,0 @@
1
-
2
- 
3
- Open Sans Bold 10752-11007
@@ -1,3 +0,0 @@
1
-
2
- 
3
- Open Sans Bold 11008-11263
@@ -1,3 +0,0 @@
1
-
2
- 
3
- Open Sans Bold 11264-11519
@@ -1,3 +0,0 @@
1
-
2
- 
3
- Open Sans Bold 11520-11775