maplibre-gl 2.0.5 → 2.1.3

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 (318) hide show
  1. package/build/{banner.js → banner.ts} +1 -1
  2. package/build/generate-query-test-fixtures.ts +123 -0
  3. package/build/generate-shaders.ts +35 -0
  4. package/build/generate-struct-arrays.ts +7 -7
  5. package/build/generate-style-code.ts +8 -8
  6. package/build/generate-style-spec.ts +5 -4
  7. package/build/generate-typings.ts +16 -0
  8. package/build/readme.md +8 -18
  9. package/build/release-notes.js +9 -13
  10. package/build/{rollup_plugin_minify_style_spec.js → rollup_plugin_minify_style_spec.ts} +4 -3
  11. package/build/{rollup_plugins.js → rollup_plugins.ts} +12 -26
  12. package/dist/maplibre-gl-dev.js +54885 -0
  13. package/dist/maplibre-gl.css +1 -1
  14. package/dist/maplibre-gl.d.ts +1574 -1022
  15. package/dist/maplibre-gl.js +3 -3
  16. package/dist/maplibre-gl.js.map +1 -1
  17. package/package.json +94 -131
  18. package/src/css/maplibre-gl.css +49 -49
  19. package/src/data/{array_types.ts → array_types.g.ts} +0 -0
  20. package/src/data/bucket/circle_bucket.ts +1 -1
  21. package/src/data/bucket/fill_bucket.test.ts +1 -1
  22. package/src/data/bucket/fill_bucket.ts +4 -4
  23. package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
  24. package/src/data/bucket/line_bucket.test.ts +1 -1
  25. package/src/data/bucket/line_bucket.ts +6 -6
  26. package/src/data/bucket/symbol_bucket.test.ts +16 -16
  27. package/src/data/bucket/symbol_bucket.ts +56 -56
  28. package/src/data/bucket.ts +43 -43
  29. package/src/data/dem_data.ts +12 -12
  30. package/src/data/evaluation_feature.ts +10 -10
  31. package/src/data/feature_index.ts +37 -37
  32. package/src/data/feature_position_map.ts +5 -5
  33. package/src/data/index_array_type.ts +1 -1
  34. package/src/data/load_geometry.test.ts +1 -1
  35. package/src/data/program_configuration.ts +47 -47
  36. package/src/data/segment.ts +14 -14
  37. package/src/geo/edge_insets.ts +2 -2
  38. package/src/geo/lng_lat.ts +4 -4
  39. package/src/geo/lng_lat_bounds.ts +35 -35
  40. package/src/geo/mercator_coordinate.ts +5 -5
  41. package/src/geo/transform.test.ts +1 -1
  42. package/src/geo/transform.ts +14 -14
  43. package/src/gl/context.ts +3 -3
  44. package/src/gl/types.ts +19 -19
  45. package/src/gl/value.ts +6 -6
  46. package/src/gl/vertex_buffer.test.ts +1 -1
  47. package/src/index.ts +24 -9
  48. package/src/render/draw_circle.ts +8 -8
  49. package/src/render/draw_collision_debug.ts +5 -5
  50. package/src/render/draw_debug.ts +1 -1
  51. package/src/render/draw_line.ts +4 -4
  52. package/src/render/draw_symbol.ts +21 -21
  53. package/src/render/glyph_atlas.ts +12 -12
  54. package/src/render/glyph_manager.test.ts +10 -21
  55. package/src/render/glyph_manager.ts +34 -33
  56. package/src/render/image_manager.ts +4 -4
  57. package/src/render/painter.ts +16 -14
  58. package/src/render/program/background_program.ts +29 -29
  59. package/src/render/program/circle_program.ts +11 -11
  60. package/src/render/program/clipping_mask_program.ts +1 -1
  61. package/src/render/program/collision_program.ts +9 -9
  62. package/src/render/program/debug_program.ts +4 -4
  63. package/src/render/program/fill_extrusion_program.ts +31 -31
  64. package/src/render/program/fill_program.ts +29 -29
  65. package/src/render/program/heatmap_program.ts +12 -12
  66. package/src/render/program/hillshade_program.ts +12 -12
  67. package/src/render/program/line_program.ts +41 -41
  68. package/src/render/program/pattern.ts +28 -28
  69. package/src/render/program/raster_program.ts +21 -21
  70. package/src/render/program/symbol_program.ts +97 -97
  71. package/src/render/program.ts +25 -25
  72. package/src/render/texture.ts +9 -9
  73. package/src/render/uniform_binding.ts +1 -1
  74. package/src/render/vertex_array_object.ts +13 -13
  75. package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
  76. package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
  77. package/src/shaders/background.fragment.glsl.g.ts +2 -0
  78. package/src/shaders/background.vertex.glsl.g.ts +2 -0
  79. package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
  80. package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
  81. package/src/shaders/circle.fragment.glsl.g.ts +2 -0
  82. package/src/shaders/circle.vertex.glsl.g.ts +2 -0
  83. package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
  84. package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
  85. package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
  86. package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
  87. package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
  88. package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
  89. package/src/shaders/debug.fragment.glsl.g.ts +2 -0
  90. package/src/shaders/debug.vertex.glsl.g.ts +2 -0
  91. package/src/shaders/fill.fragment.glsl.g.ts +2 -0
  92. package/src/shaders/fill.vertex.glsl.g.ts +2 -0
  93. package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
  94. package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
  95. package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
  96. package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
  97. package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
  98. package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
  99. package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
  100. package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
  101. package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
  102. package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
  103. package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
  104. package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
  105. package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
  106. package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
  107. package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
  108. package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
  109. package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
  110. package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
  111. package/src/shaders/line.fragment.glsl.g.ts +2 -0
  112. package/src/shaders/line.vertex.glsl.g.ts +2 -0
  113. package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
  114. package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
  115. package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
  116. package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
  117. package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
  118. package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
  119. package/src/shaders/raster.fragment.glsl.g.ts +2 -0
  120. package/src/shaders/raster.vertex.glsl.g.ts +2 -0
  121. package/src/shaders/shaders.ts +52 -55
  122. package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
  123. package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
  124. package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
  125. package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
  126. package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
  127. package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
  128. package/src/source/canvas_source.test.ts +11 -12
  129. package/src/source/canvas_source.ts +4 -4
  130. package/src/source/geojson_source.test.ts +2 -1
  131. package/src/source/geojson_source.ts +1 -1
  132. package/src/source/geojson_worker_source.ts +23 -23
  133. package/src/source/geojson_wrapper.ts +8 -8
  134. package/src/source/image_source.test.ts +2 -2
  135. package/src/source/image_source.ts +6 -6
  136. package/src/source/pixels_to_tile_units.ts +6 -6
  137. package/src/source/query_features.ts +20 -20
  138. package/src/source/raster_dem_tile_source.test.ts +4 -3
  139. package/src/source/raster_dem_tile_source.ts +1 -1
  140. package/src/source/raster_tile_source.test.ts +4 -3
  141. package/src/source/raster_tile_source.ts +1 -1
  142. package/src/source/rtl_text_plugin.ts +10 -10
  143. package/src/source/source.ts +29 -29
  144. package/src/source/source_cache.test.ts +33 -1
  145. package/src/source/source_cache.ts +7 -5
  146. package/src/source/source_state.ts +1 -1
  147. package/src/source/tile.test.ts +3 -3
  148. package/src/source/tile.ts +15 -15
  149. package/src/source/tile_cache.test.ts +6 -4
  150. package/src/source/tile_cache.ts +6 -6
  151. package/src/source/tile_id.test.ts +10 -13
  152. package/src/source/tile_id.ts +2 -2
  153. package/src/source/vector_tile_source.test.ts +17 -5
  154. package/src/source/vector_tile_source.ts +4 -5
  155. package/src/source/vector_tile_worker_source.test.ts +4 -4
  156. package/src/source/vector_tile_worker_source.ts +5 -5
  157. package/src/source/worker.test.ts +1 -1
  158. package/src/source/worker.ts +22 -22
  159. package/src/source/worker_source.ts +56 -56
  160. package/src/source/worker_tile.ts +4 -4
  161. package/src/style/evaluation_parameters.ts +3 -3
  162. package/src/style/format_section_override.test.ts +1 -1
  163. package/src/style/light.ts +10 -10
  164. package/src/style/load_glyph_range.test.ts +3 -5
  165. package/src/style/load_glyph_range.ts +6 -6
  166. package/src/style/load_sprite.ts +5 -4
  167. package/src/style/pauseable_placement.ts +1 -1
  168. package/src/style/properties.ts +70 -70
  169. package/src/style/query_utils.ts +7 -7
  170. package/src/style/style.test.ts +26 -15
  171. package/src/style/style.ts +30 -30
  172. package/src/style/style_glyph.ts +8 -8
  173. package/src/style/style_image.ts +58 -58
  174. package/src/style/style_layer/background_style_layer.ts +2 -2
  175. package/src/style/style_layer/{background_style_layer_properties.ts → background_style_layer_properties.g.ts} +0 -0
  176. package/src/style/style_layer/circle_style_layer.ts +10 -10
  177. package/src/style/style_layer/{circle_style_layer_properties.ts → circle_style_layer_properties.g.ts} +0 -0
  178. package/src/style/style_layer/custom_style_layer.ts +19 -19
  179. package/src/style/style_layer/fill_extrusion_style_layer.ts +11 -11
  180. package/src/style/style_layer/{fill_extrusion_style_layer_properties.ts → fill_extrusion_style_layer_properties.g.ts} +0 -0
  181. package/src/style/style_layer/fill_style_layer.ts +9 -9
  182. package/src/style/style_layer/{fill_style_layer_properties.ts → fill_style_layer_properties.g.ts} +0 -0
  183. package/src/style/style_layer/heatmap_style_layer.ts +2 -2
  184. package/src/style/style_layer/{heatmap_style_layer_properties.ts → heatmap_style_layer_properties.g.ts} +0 -0
  185. package/src/style/style_layer/hillshade_style_layer.ts +2 -2
  186. package/src/style/style_layer/{hillshade_style_layer_properties.ts → hillshade_style_layer_properties.g.ts} +0 -0
  187. package/src/style/style_layer/line_style_layer.ts +9 -9
  188. package/src/style/style_layer/{line_style_layer_properties.ts → line_style_layer_properties.g.ts} +0 -0
  189. package/src/style/style_layer/raster_style_layer.ts +2 -2
  190. package/src/style/style_layer/{raster_style_layer_properties.ts → raster_style_layer_properties.g.ts} +0 -0
  191. package/src/style/style_layer/symbol_style_layer.ts +26 -7
  192. package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +6 -0
  193. package/src/style/style_layer.ts +10 -10
  194. package/src/style/style_layer_index.ts +3 -3
  195. package/src/style/validate_style.ts +15 -15
  196. package/src/style-spec/CHANGELOG.md +6 -0
  197. package/src/style-spec/error/validation_error.ts +1 -1
  198. package/src/style-spec/expression/compound_expression.ts +3 -3
  199. package/src/style-spec/expression/definitions/format.ts +11 -11
  200. package/src/style-spec/expression/definitions/interpolate.ts +5 -5
  201. package/src/style-spec/expression/definitions/match.ts +2 -2
  202. package/src/style-spec/expression/definitions/number_format.ts +11 -11
  203. package/src/style-spec/expression/expression.ts +8 -8
  204. package/src/style-spec/expression/index.ts +97 -97
  205. package/src/style-spec/expression/parsing_context.ts +11 -11
  206. package/src/style-spec/expression/types/collator.ts +9 -9
  207. package/src/style-spec/expression/types/resolved_image.ts +2 -2
  208. package/src/style-spec/expression/types.ts +14 -14
  209. package/src/style-spec/expression/values.ts +1 -1
  210. package/src/style-spec/feature_filter/index.ts +66 -66
  211. package/src/style-spec/function/convert.ts +3 -3
  212. package/src/style-spec/package.json +1 -1
  213. package/src/style-spec/reference/v8.json +68 -2
  214. package/src/style-spec/style-spec.ts +44 -44
  215. package/src/style-spec/types.ts +2 -0
  216. package/src/style-spec/util/color_spaces.ts +8 -8
  217. package/src/style-spec/util/result.ts +4 -4
  218. package/src/style-spec/validate/validate_filter.ts +58 -58
  219. package/src/style-spec/validate/validate_source.ts +63 -63
  220. package/src/style-spec/visit.ts +11 -11
  221. package/src/symbol/collision_feature.test.ts +1 -1
  222. package/src/symbol/collision_feature.ts +10 -10
  223. package/src/symbol/collision_index.ts +43 -43
  224. package/src/symbol/cross_tile_symbol_index.ts +17 -17
  225. package/src/symbol/get_anchors.ts +16 -16
  226. package/src/symbol/grid_index.test.ts +42 -19
  227. package/src/symbol/grid_index.ts +69 -40
  228. package/src/symbol/placement.ts +124 -95
  229. package/src/symbol/projection.ts +30 -30
  230. package/src/symbol/quads.ts +30 -30
  231. package/src/symbol/shaping.ts +160 -160
  232. package/src/symbol/symbol_layout.ts +119 -119
  233. package/src/symbol/symbol_size.ts +29 -29
  234. package/src/symbol/symbol_style_layer.test.ts +49 -2
  235. package/src/types/cancelable.ts +1 -1
  236. package/src/types/tilejson.ts +13 -13
  237. package/src/ui/anchor.ts +1 -1
  238. package/src/ui/camera.test.ts +9 -9
  239. package/src/ui/camera.ts +18 -18
  240. package/src/ui/control/attribution_control.test.ts +51 -16
  241. package/src/ui/control/attribution_control.ts +35 -16
  242. package/src/ui/control/control.ts +40 -40
  243. package/src/ui/control/fullscreen_control.ts +1 -1
  244. package/src/ui/control/geolocate_control.test.ts +1 -1
  245. package/src/ui/control/geolocate_control.ts +102 -102
  246. package/src/ui/control/logo_control.test.ts +5 -4
  247. package/src/ui/control/navigation_control.ts +3 -3
  248. package/src/ui/control/scale_control.test.ts +2 -2
  249. package/src/ui/control/scale_control.ts +5 -5
  250. package/src/ui/events.ts +289 -200
  251. package/src/ui/handler/box_zoom.test.ts +1 -1
  252. package/src/ui/handler/box_zoom.ts +1 -1
  253. package/src/ui/handler/dblclick_zoom.test.ts +1 -1
  254. package/src/ui/handler/drag_pan.test.ts +1 -1
  255. package/src/ui/handler/drag_rotate.test.ts +1 -1
  256. package/src/ui/handler/keyboard.test.ts +1 -1
  257. package/src/ui/handler/keyboard.ts +51 -51
  258. package/src/ui/handler/map_event.test.ts +1 -1
  259. package/src/ui/handler/map_event.ts +1 -1
  260. package/src/ui/handler/mouse.ts +1 -1
  261. package/src/ui/handler/mouse_rotate.test.ts +1 -1
  262. package/src/ui/handler/scroll_zoom.test.ts +3 -2
  263. package/src/ui/handler/scroll_zoom.ts +9 -9
  264. package/src/ui/handler/shim/drag_pan.ts +4 -4
  265. package/src/ui/handler/shim/drag_rotate.ts +1 -1
  266. package/src/ui/handler/shim/touch_zoom_rotate.ts +1 -1
  267. package/src/ui/handler/tap_recognizer.ts +4 -4
  268. package/src/ui/handler/touch_pan.ts +2 -2
  269. package/src/ui/handler/touch_zoom_rotate.test.ts +1 -1
  270. package/src/ui/handler/touch_zoom_rotate.ts +1 -1
  271. package/src/ui/handler_inertia.ts +6 -6
  272. package/src/ui/handler_manager.ts +44 -44
  273. package/src/ui/map/isMoving.test.ts +1 -1
  274. package/src/ui/map/isRotating.test.ts +1 -1
  275. package/src/ui/map/isZooming.test.ts +1 -1
  276. package/src/ui/map.test.ts +87 -14
  277. package/src/ui/map.ts +136 -106
  278. package/src/ui/map_events.test.ts +1 -1
  279. package/src/ui/marker.test.ts +12 -12
  280. package/src/ui/marker.ts +37 -37
  281. package/src/ui/popup.test.ts +7 -7
  282. package/src/ui/popup.ts +9 -9
  283. package/src/util/actor.test.ts +41 -10
  284. package/src/util/actor.ts +8 -8
  285. package/src/util/ajax.test.ts +29 -21
  286. package/src/util/ajax.ts +51 -30
  287. package/src/util/browser.ts +1 -1
  288. package/src/util/classify_rings.test.ts +1 -1
  289. package/src/util/color_ramp.ts +5 -5
  290. package/src/util/config.ts +2 -2
  291. package/src/util/dispatcher.ts +1 -1
  292. package/src/util/dom.ts +2 -2
  293. package/src/util/evented.ts +1 -1
  294. package/src/util/find_pole_of_inaccessibility.ts +3 -3
  295. package/src/util/image.ts +5 -5
  296. package/src/util/performance.ts +7 -7
  297. package/src/util/request_manager.ts +4 -4
  298. package/src/util/resolve_tokens.ts +4 -4
  299. package/src/util/struct_array.test.ts +1 -1
  300. package/src/util/struct_array.ts +15 -15
  301. package/src/util/task_queue.ts +3 -3
  302. package/src/util/tile_request_cache.ts +3 -3
  303. package/src/util/transferable_grid_index.ts +4 -4
  304. package/src/util/util.ts +8 -8
  305. package/src/util/web_worker.ts +4 -68
  306. package/src/util/web_worker_transfer.test.ts +3 -0
  307. package/src/util/web_worker_transfer.ts +21 -17
  308. package/src/util/worker_pool.ts +1 -1
  309. package/build/.eslintrc +0 -21
  310. package/build/glsl_to_js.js +0 -12
  311. package/build/post-ts-build.js +0 -43
  312. package/build/release-notes.md.ejs +0 -8
  313. package/build/test/build-tape.js +0 -17
  314. package/build/web_worker_replacement.js +0 -5
  315. package/dist/package.json +0 -1
  316. package/src/style-spec/validate_spec.test.ts +0 -29
  317. package/src/symbol/shaping.test.ts +0 -392
  318. package/src/types/glsl.d.ts +0 -4
package/src/util/dom.ts CHANGED
@@ -53,7 +53,7 @@ export default class DOM {
53
53
  public static addEventListener(target: any, type: any, callback: any, options: {
54
54
  passive?: boolean;
55
55
  capture?: boolean;
56
- } = {}) {
56
+ } = {}) {
57
57
  if ('passive' in options) {
58
58
  target.addEventListener(type, callback, options);
59
59
  } else {
@@ -64,7 +64,7 @@ export default class DOM {
64
64
  public static removeEventListener(target: any, type: any, callback: any, options: {
65
65
  passive?: boolean;
66
66
  capture?: boolean;
67
- } = {}) {
67
+ } = {}) {
68
68
  if ('passive' in options) {
69
69
  target.removeEventListener(type, callback, options);
70
70
  } else {
@@ -31,7 +31,7 @@ export class Event {
31
31
  }
32
32
 
33
33
  interface ErrorLike {
34
- message: string;
34
+ message: string;
35
35
  }
36
36
 
37
37
  export class ErrorEvent extends Event {
@@ -14,9 +14,9 @@ import {distToSegmentSquared} from './intersection_tests';
14
14
  * @private
15
15
  */
16
16
  export default function(
17
- polygonRings: Array<Array<Point>>,
18
- precision: number = 1,
19
- debug: boolean = false
17
+ polygonRings: Array<Array<Point>>,
18
+ precision: number = 1,
19
+ debug: boolean = false
20
20
  ): Point {
21
21
  // find the bounding box of the outer ring
22
22
  let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
package/src/util/image.ts CHANGED
@@ -3,13 +3,13 @@ import assert from 'assert';
3
3
  import {register} from './web_worker_transfer';
4
4
 
5
5
  export type Size = {
6
- width: number;
7
- height: number;
6
+ width: number;
7
+ height: number;
8
8
  };
9
9
 
10
10
  type Point2D = {
11
- x: number;
12
- y: number;
11
+ x: number;
12
+ y: number;
13
13
  };
14
14
 
15
15
  function createImage(image: any, {
@@ -21,7 +21,7 @@ function createImage(image: any, {
21
21
  } else if (data instanceof Uint8ClampedArray) {
22
22
  data = new Uint8Array(data.buffer);
23
23
  } else if (data.length !== width * height * channels) {
24
- throw new RangeError('mismatched image size');
24
+ throw new RangeError(`mismatched image size. expected: ${data.length} but got: ${width * height * channels}`);
25
25
  }
26
26
  image.width = width;
27
27
  image.height = height;
@@ -1,10 +1,10 @@
1
1
  import type {RequestParameters} from '../util/ajax';
2
2
 
3
3
  export type PerformanceMetrics = {
4
- loadTime: number;
5
- fullLoadTime: number;
6
- fps: number;
7
- percentDroppedFrames: number;
4
+ loadTime: number;
5
+ fullLoadTime: number;
6
+ fps: number;
7
+ percentDroppedFrames: number;
8
8
  };
9
9
 
10
10
  export enum PerformanceMarkers {
@@ -76,9 +76,9 @@ export const PerformanceUtils = {
76
76
  */
77
77
  export class RequestPerformance {
78
78
  _marks: {
79
- start: string;
80
- end: string;
81
- measure: string;
79
+ start: string;
80
+ end: string;
81
+ measure: string;
82
82
  };
83
83
 
84
84
  constructor (request: RequestParameters) {
@@ -6,10 +6,10 @@ type ResourceTypeEnum = keyof IResourceType;
6
6
  export type RequestTransformFunction = (url: string, resourceType?: ResourceTypeEnum) => RequestParameters;
7
7
 
8
8
  type UrlObject = {
9
- protocol: string;
10
- authority: string;
11
- path: string;
12
- params: Array<string>;
9
+ protocol: string;
10
+ authority: string;
11
+ path: string;
12
+ params: Array<string>;
13
13
  };
14
14
 
15
15
  export class RequestManager {
@@ -9,10 +9,10 @@ export default resolveTokens;
9
9
  * @private
10
10
  */
11
11
  function resolveTokens(
12
- properties: {
13
- readonly [x: string]: unknown;
14
- },
15
- text: string
12
+ properties: {
13
+ readonly [x: string]: unknown;
14
+ },
15
+ text: string
16
16
  ): string {
17
17
  return text.replace(/{([^{}]+)}/g, (match, key: string) => {
18
18
  return key in properties ? String(properties[key]) : '';
@@ -1,4 +1,4 @@
1
- import {StructArrayLayout3i6, FeatureIndexArray} from '../data/array_types';
1
+ import {StructArrayLayout3i6, FeatureIndexArray} from '../data/array_types.g';
2
2
 
3
3
  describe('StructArray', () => {
4
4
  class TestArray extends StructArrayLayout3i6 {}
@@ -47,21 +47,21 @@ const DEFAULT_CAPACITY = 128;
47
47
  const RESIZE_MULTIPLIER = 5;
48
48
 
49
49
  export type StructArrayMember = {
50
- name: string;
51
- type: ViewType;
52
- components: number;
53
- offset: number;
50
+ name: string;
51
+ type: ViewType;
52
+ components: number;
53
+ offset: number;
54
54
  };
55
55
 
56
56
  export type StructArrayLayout = {
57
- members: Array<StructArrayMember>;
58
- size: number;
59
- alignment: number;
57
+ members: Array<StructArrayMember>;
58
+ size: number;
59
+ alignment: number;
60
60
  };
61
61
 
62
62
  export type SerializedStructArray = {
63
- length: number;
64
- arrayBuffer: ArrayBuffer;
63
+ length: number;
64
+ arrayBuffer: ArrayBuffer;
65
65
  };
66
66
 
67
67
  /**
@@ -198,12 +198,12 @@ abstract class StructArray {
198
198
  * @private
199
199
  */
200
200
  function createLayout(
201
- members: Array<{
202
- name: string;
203
- type: ViewType;
204
- readonly components?: number;
205
- }>,
206
- alignment: number = 1
201
+ members: Array<{
202
+ name: string;
203
+ type: ViewType;
204
+ readonly components?: number;
205
+ }>,
206
+ alignment: number = 1
207
207
  ): StructArrayLayout {
208
208
 
209
209
  let offset = 0;
@@ -3,9 +3,9 @@ import assert from 'assert';
3
3
  export type TaskID = number; // can't mark opaque due to https://github.com/flowtype/flow-remove-types/pull/61
4
4
 
5
5
  type Task = {
6
- callback: (timeStamp: number) => void;
7
- id: TaskID;
8
- cancelled: boolean;
6
+ callback: (timeStamp: number) => void;
7
+ id: TaskID;
8
+ cancelled: boolean;
9
9
  };
10
10
 
11
11
  class TaskQueue {
@@ -9,9 +9,9 @@ let cacheCheckThreshold = 50;
9
9
  const MIN_TIME_UNTIL_EXPIRY = 1000 * 60 * 7; // 7 minutes. Skip caching tiles with a short enough max age.
10
10
 
11
11
  export type ResponseOptions = {
12
- status: number;
13
- statusText: string;
14
- headers: Headers;
12
+ status: number;
13
+ statusText: string;
14
+ headers: Headers;
15
15
  };
16
16
 
17
17
  // We're using a global shared cache object. Normally, requesting ad-hoc Cache objects is fine, but
@@ -148,10 +148,10 @@ class TransferableGridIndex {
148
148
  for (let y = cy1; y <= cy2; y++) {
149
149
  const cellIndex = this.d * y + x;
150
150
  if (intersectionTest && !intersectionTest(
151
- this._convertFromCellCoord(x),
152
- this._convertFromCellCoord(y),
153
- this._convertFromCellCoord(x + 1),
154
- this._convertFromCellCoord(y + 1))) continue;
151
+ this._convertFromCellCoord(x),
152
+ this._convertFromCellCoord(y),
153
+ this._convertFromCellCoord(x + 1),
154
+ this._convertFromCellCoord(y + 1))) continue;
155
155
  if (fn.call(this, x1, y1, x2, y2, cellIndex, arg1, arg2, intersectionTest)) return;
156
156
  }
157
157
  }
package/src/util/util.ts CHANGED
@@ -88,9 +88,9 @@ export function wrap(n: number, min: number, max: number): number {
88
88
  * @private
89
89
  */
90
90
  export function asyncAll<Item, Result>(
91
- array: Array<Item>,
92
- fn: (item: Item, fnCallback: Callback<Result>) => void,
93
- callback: Callback<Array<Result>>
91
+ array: Array<Item>,
92
+ fn: (item: Item, fnCallback: Callback<Result>) => void,
93
+ callback: Callback<Array<Result>>
94
94
  ) {
95
95
  if (!array.length) { return callback(null, []); }
96
96
  let remaining = array.length;
@@ -113,8 +113,8 @@ export function asyncAll<Item, Result>(
113
113
  * @private
114
114
  */
115
115
  export function keysDifference<S, T>(
116
- obj: {[key: string]: S},
117
- other: {[key: string]: T}
116
+ obj: {[key: string]: S},
117
+ other: {[key: string]: T}
118
118
  ): Array<string> {
119
119
  const difference = [];
120
120
  for (const i in obj) {
@@ -365,9 +365,9 @@ export function isClosedPolygon(points: Array<Point>): boolean {
365
365
  */
366
366
 
367
367
  export function sphericalToCartesian([r, azimuthal, polar]: [number, number, number]): {
368
- x: number;
369
- y: number;
370
- z: number;
368
+ x: number;
369
+ y: number;
370
+ z: number;
371
371
  } {
372
372
  // We abstract "north"/"up" (compass-wise) to be 0° when really this is 90° (π/2):
373
373
  // correct for that here
@@ -1,13 +1,8 @@
1
- // When Rollup builds the main bundle this file is replaced with ./build/web_worker_replacement.js
2
- // See package.json 'browser' field and rollup documentation.
3
- // This file is intended for use in the GL-JS test suite when they run on node since node doesn't support workers.
4
- // It implements a MessageBus main thread interface
5
-
6
- import MaplibreWorker from '../source/worker';
1
+ import maplibregl from '../index';
7
2
 
8
3
  import type {WorkerSource} from '../source/worker_source';
9
4
 
10
- type MessageListener = (
5
+ export type MessageListener = (
11
6
  a: {
12
7
  data: any;
13
8
  target: any;
@@ -15,7 +10,6 @@ type MessageListener = (
15
10
  ) => unknown;
16
11
 
17
12
  // The main thread interface. Provided by Worker in a browser environment,
18
- // and MessageBus below in a node environment.
19
13
  export interface WorkerInterface {
20
14
  addEventListener(type: 'message', listener: MessageListener): void;
21
15
  removeEventListener(type: 'message', listener: MessageListener): void;
@@ -34,64 +28,6 @@ export interface WorkerGlobalScopeInterface {
34
28
  registerRTLTextPlugin: (_: any) => void;
35
29
  }
36
30
 
37
- class MessageBus implements WorkerInterface, WorkerGlobalScopeInterface {
38
- addListeners: Array<MessageListener>;
39
- postListeners: Array<MessageListener>;
40
- target: MessageBus;
41
- registerWorkerSource: any;
42
- registerRTLTextPlugin: any;
43
-
44
- constructor(addListeners: Array<MessageListener>, postListeners: Array<MessageListener>) {
45
- this.addListeners = addListeners;
46
- this.postListeners = postListeners;
47
- }
48
-
49
- addEventListener(event: 'message', callback: MessageListener) {
50
- if (event === 'message') {
51
- this.addListeners.push(callback);
52
- }
53
- }
54
-
55
- removeEventListener(event: 'message', callback: MessageListener) {
56
- const i = this.addListeners.indexOf(callback);
57
- if (i >= 0) {
58
- this.addListeners.splice(i, 1);
59
- }
60
- }
61
-
62
- postMessage(data: any) {
63
- setTimeout(() => {
64
- try {
65
- for (const listener of this.postListeners) {
66
- listener({data, target: this.target});
67
- }
68
- } catch (e) {
69
- console.error(e);
70
- }
71
- }, 0);
72
- }
73
-
74
- terminate() {
75
- this.addListeners.splice(0, this.addListeners.length);
76
- this.postListeners.splice(0, this.postListeners.length);
77
- }
78
-
79
- importScripts() { }
80
- }
81
-
82
- export default function workerFactory(): WorkerInterface {
83
- const parentListeners = [],
84
- workerListeners = [],
85
- parentBus = new MessageBus(workerListeners, parentListeners),
86
- workerBus = new MessageBus(parentListeners, workerListeners);
87
-
88
- parentBus.target = workerBus;
89
- workerBus.target = parentBus;
90
-
91
- new workerFactory.Worker(workerBus);
92
-
93
- return parentBus;
31
+ export default function workerFactory() {
32
+ return new Worker(maplibregl.workerUrl);
94
33
  }
95
-
96
- // expose to allow stubbing in unit tests
97
- workerFactory.Worker = MaplibreWorker;
@@ -5,11 +5,13 @@ describe('web worker transfer', () => {
5
5
  class SerializableMock {
6
6
  n;
7
7
  buffer;
8
+ blob;
8
9
  _cached;
9
10
 
10
11
  constructor(n) {
11
12
  this.n = n;
12
13
  this.buffer = new ArrayBuffer(100);
14
+ this.blob = new Blob();
13
15
  this.squared();
14
16
  }
15
17
 
@@ -33,6 +35,7 @@ describe('web worker transfer', () => {
33
35
  expect(deserialized.constructor === SerializableMock).toBeTruthy();
34
36
  expect(deserialized.n === 10).toBeTruthy();
35
37
  expect(deserialized.buffer === serializableMock.buffer).toBeTruthy();
38
+ expect(deserialized.blob === serializableMock.blob).toBeTruthy();
36
39
  expect(transferables[0] === serializableMock.buffer).toBeTruthy();
37
40
  expect(deserialized._cached === undefined).toBeTruthy();
38
41
  expect(deserialized.squared() === 100).toBeTruthy();
@@ -6,30 +6,31 @@ import {StylePropertyFunction, StyleExpression, ZoomDependentExpression, ZoomCon
6
6
  import CompoundExpression from '../style-spec/expression/compound_expression';
7
7
  import expressions from '../style-spec/expression/definitions';
8
8
  import ResolvedImage from '../style-spec/expression/types/resolved_image';
9
+ import {AJAXError} from './ajax';
9
10
 
10
11
  import type {Transferable} from '../types/transferable';
11
12
  import {isImageBitmap} from './util';
12
13
 
13
14
  type SerializedObject = {
14
- [_: string]: Serialized;
15
+ [_: string]: Serialized;
15
16
  }; // eslint-disable-line
16
17
 
17
- export type Serialized = null | void | boolean | number | string | Boolean | Number | String | Date | RegExp | ArrayBuffer | ArrayBufferView | ImageData | ImageBitmap | Array<Serialized> | SerializedObject;
18
+ export type Serialized = null | void | boolean | number | string | Boolean | Number | String | Date | RegExp | ArrayBuffer | ArrayBufferView | ImageData | ImageBitmap | Blob | Array<Serialized> | SerializedObject;
18
19
 
19
20
  type Registry = {
20
- [_: string]: {
21
- klass: {
22
- new (...args: any): any;
23
- deserialize?: (input: Serialized) => unknown;
21
+ [_: string]: {
22
+ klass: {
23
+ new (...args: any): any;
24
+ deserialize?: (input: Serialized) => unknown;
25
+ };
26
+ omit: ReadonlyArray<string>;
27
+ shallow: ReadonlyArray<string>;
24
28
  };
25
- omit: ReadonlyArray<string>;
26
- shallow: ReadonlyArray<string>;
27
- };
28
29
  };
29
30
 
30
31
  type RegisterOptions<T> = {
31
- omit?: ReadonlyArray<keyof T>;
32
- shallow?: ReadonlyArray<keyof T>;
32
+ omit?: ReadonlyArray<keyof T>;
33
+ shallow?: ReadonlyArray<keyof T>;
33
34
  };
34
35
 
35
36
  const registry: Registry = {};
@@ -44,11 +45,11 @@ const registry: Registry = {};
44
45
  * @private
45
46
  */
46
47
  export function register<T extends any>(
47
- name: string,
48
- klass: {
49
- new (...args: any): T;
50
- },
51
- options: RegisterOptions<T> = {}
48
+ name: string,
49
+ klass: {
50
+ new (...args: any): T;
51
+ },
52
+ options: RegisterOptions<T> = {}
52
53
  ) {
53
54
  assert(!registry[name], `${name} is already registered.`);
54
55
  ((Object.defineProperty as any))(klass, '_classRegistryKey', {
@@ -67,6 +68,7 @@ register('TransferableGridIndex', TransferableGridIndex);
67
68
 
68
69
  register('Color', Color);
69
70
  register('Error', Error);
71
+ register('AJAXError', AJAXError);
70
72
  register('ResolvedImage', ResolvedImage);
71
73
 
72
74
  register('StylePropertyFunction', StylePropertyFunction);
@@ -109,7 +111,8 @@ export function serialize(input: unknown, transferables?: Array<Transferable> |
109
111
  input instanceof Number ||
110
112
  input instanceof String ||
111
113
  input instanceof Date ||
112
- input instanceof RegExp) {
114
+ input instanceof RegExp ||
115
+ input instanceof Blob) {
113
116
  return input;
114
117
  }
115
118
 
@@ -210,6 +213,7 @@ export function deserialize(input: Serialized): unknown {
210
213
  input instanceof String ||
211
214
  input instanceof Date ||
212
215
  input instanceof RegExp ||
216
+ input instanceof Blob ||
213
217
  isArrayBuffer(input) ||
214
218
  isImageBitmap(input) ||
215
219
  ArrayBuffer.isView(input) ||
@@ -12,7 +12,7 @@ export default class WorkerPool {
12
12
  static workerCount: number;
13
13
 
14
14
  active: {
15
- [_ in number | string]: boolean;
15
+ [_ in number | string]: boolean;
16
16
  };
17
17
  workers: Array<WorkerInterface>;
18
18
 
package/build/.eslintrc DELETED
@@ -1,21 +0,0 @@
1
- {
2
- // TODO: most of these overrides should be removed,
3
- // but for now this documents the exceptions used by the code in this dir
4
- "rules": {
5
- "import/no-commonjs": "off",
6
- "flowtype/require-valid-file-annotation": [0],
7
- "prefer-arrow-callback": "off",
8
- "no-var": "off",
9
- "strict": "off",
10
- "no-restricted-properties": "off",
11
- "no-unused-vars": "off",
12
- "prefer-template": "off",
13
- "camelcase": "off",
14
- "prefer-const": "off",
15
- "indent": "off",
16
- "no-case-declarations": "off",
17
- "semi": "off",
18
- "object-curly-spacing": "off",
19
- "no-undef": "off"
20
- }
21
- }
@@ -1,12 +0,0 @@
1
- export default function glsl_to_js(code, minify) {
2
- if (minify) {
3
- code = code.trim() // strip whitespace at the start/end
4
- .replace(/\s*\/\/[^\n]*\n/g, '\n') // strip double-slash comments
5
- .replace(/\n+/g, '\n') // collapse multi line breaks
6
- .replace(/\n\s+/g, '\n') // strip identation
7
- .replace(/\s?([+-\/*=,])\s?/g, '$1') // strip whitespace around operators
8
- .replace(/([;\(\),\{\}])\n(?=[^#])/g, '$1'); // strip more line breaks
9
-
10
- }
11
- return `export default ${JSON.stringify(code)};`;
12
- }
@@ -1,43 +0,0 @@
1
- import fs from 'fs';
2
- import glob from 'glob';
3
- import child_process from 'child_process';
4
- import glsl_to_js from './glsl_to_js.js';
5
-
6
- let args = process.argv.slice(2);
7
- let outputBaseDir = args[0];
8
- let minify = args[1];
9
-
10
- console.log(`Copying glsl files to ${outputBaseDir}, minify: ${minify}`);
11
-
12
- /**
13
- * This script is intended to copy the glsl file to the compilation output folder,
14
- * change their extension to .js and export the shaders as strings in javascript.
15
- * It will also minify them a bit if needed and change the extension to .js
16
- * After that it will create a combined typescript definition file and manipulate it a bit
17
- * It will also create a simple package.json file to allow importing this package in webpack
18
- */
19
-
20
- glob("./src/**/*.glsl", null, (err, files) => {
21
- for (let file of files) {
22
- let code = fs.readFileSync(file, 'utf8');
23
- let content = glsl_to_js(code, minify);
24
- let fileName = outputBaseDir + '/' + file.split('/').splice(-1) + ".js";
25
- fs.writeFileSync(fileName, content);
26
- }
27
- console.log(`Finished converting ${files.length} glsl files`);
28
- });
29
-
30
- if (!fs.existsSync("dist")) {
31
- fs.mkdirSync("dist");
32
- }
33
-
34
- console.log(`Starting bundling types`);
35
- const outputFile = "./dist/maplibre-gl.d.ts";
36
- child_process.execSync(`dts-bundle-generator --no-check --umd-module-name=maplibregl -o ${outputFile} ./src/index.ts`);
37
- let types = fs.readFileSync(outputFile, 'utf8');
38
- // Classes are not exported but should be since this is exported as UMD - fixing...
39
- types = types.replace(/declare class/g, "export declare class");
40
- fs.writeFileSync(outputFile, types);
41
- console.log(`Finished bundling types`);
42
-
43
- fs.writeFileSync("./dist/package.json", '{ "type": "commonjs" }');
@@ -1,8 +0,0 @@
1
- https://github.com/maplibre/maplibre-gl-js
2
- [Changes](https://github.com/maplibre/maplibre-gl-js/compare/v<%-PREVIOUSVERSION%>...v<%-CURRENTVERSION%>) since [MapLibre GL JS v<%-PREVIOUSVERSION%>](https://github.com/maplibre/releases/tag/v<%-PREVIOUSVERSION%>):
3
-
4
- <%-CHANGELOG-%>
5
-
6
- <% if (isPrerelease) { %>
7
- Pre-release version
8
- <% } -%>
@@ -1,17 +0,0 @@
1
- import browserify from 'browserify';
2
- import fs from 'fs';
3
-
4
- export default function() {
5
- return new Promise((resolve, reject) => {
6
- browserify('./test/util/tape_config.js', { standalone: 'tape' })
7
- .transform('babelify', {presets: ['@babel/preset-env'], global: true})
8
- .bundle((err, buff) => {
9
- if (err) { throw err; }
10
-
11
- fs.writeFile('test/integration/dist/tape.js', buff, { encoding: 'utf8'}, (err) => {
12
- if (err) { reject(err); }
13
- resolve();
14
- });
15
- });
16
- });
17
- }
@@ -1,5 +0,0 @@
1
- import maplibregl from '../rollup/build/tsc/src/index'
2
-
3
- export default function () {
4
- return new Worker(maplibregl.workerUrl);
5
- }
package/dist/package.json DELETED
@@ -1 +0,0 @@
1
- { "type": "commonjs" }
@@ -1,29 +0,0 @@
1
- import glob from 'glob';
2
- import fs from 'fs';
3
- import path from 'path';
4
- import validate from '../style-spec/validate_style';
5
- import reference from './reference/latest';
6
-
7
- const UPDATE = !!process.env.UPDATE;
8
-
9
- describe('validate_spec', () => {
10
- glob.sync('test/unit/style-spec/fixture/*.input.json').forEach((file) => {
11
- test(path.basename(file), () => {
12
- const outputfile = file.replace('.input', '.output');
13
- const style = fs.readFileSync(file);
14
- const result = validate(style);
15
- if (UPDATE) fs.writeFileSync(outputfile, JSON.stringify(result, null, 2));
16
- const expectedOutput = JSON.parse(fs.readFileSync(outputfile).toString());
17
- expect(result).toEqual(expectedOutput);
18
- });
19
- });
20
-
21
- test('errors from validate do not contain line numbers', () => {
22
- const fixtures = glob.sync('test/unit/style-spec/fixture/*.input.json');
23
- const style = JSON.parse(fs.readFileSync(fixtures[0]).toString());
24
-
25
- const result = validate(style, reference);
26
- expect(result[0].line).toBeUndefined();
27
- });
28
-
29
- });