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.
- package/build/{banner.js → banner.ts} +1 -1
- package/build/generate-query-test-fixtures.ts +123 -0
- package/build/generate-shaders.ts +35 -0
- package/build/generate-struct-arrays.ts +7 -7
- package/build/generate-style-code.ts +8 -8
- package/build/generate-style-spec.ts +5 -4
- package/build/generate-typings.ts +16 -0
- package/build/readme.md +8 -18
- package/build/release-notes.js +9 -13
- package/build/{rollup_plugin_minify_style_spec.js → rollup_plugin_minify_style_spec.ts} +4 -3
- package/build/{rollup_plugins.js → rollup_plugins.ts} +12 -26
- package/dist/maplibre-gl-dev.js +54885 -0
- package/dist/maplibre-gl.css +1 -1
- package/dist/maplibre-gl.d.ts +1574 -1022
- package/dist/maplibre-gl.js +3 -3
- package/dist/maplibre-gl.js.map +1 -1
- package/package.json +94 -131
- package/src/css/maplibre-gl.css +49 -49
- package/src/data/{array_types.ts → array_types.g.ts} +0 -0
- package/src/data/bucket/circle_bucket.ts +1 -1
- package/src/data/bucket/fill_bucket.test.ts +1 -1
- package/src/data/bucket/fill_bucket.ts +4 -4
- package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
- package/src/data/bucket/line_bucket.test.ts +1 -1
- package/src/data/bucket/line_bucket.ts +6 -6
- package/src/data/bucket/symbol_bucket.test.ts +16 -16
- package/src/data/bucket/symbol_bucket.ts +56 -56
- package/src/data/bucket.ts +43 -43
- package/src/data/dem_data.ts +12 -12
- package/src/data/evaluation_feature.ts +10 -10
- package/src/data/feature_index.ts +37 -37
- package/src/data/feature_position_map.ts +5 -5
- package/src/data/index_array_type.ts +1 -1
- package/src/data/load_geometry.test.ts +1 -1
- package/src/data/program_configuration.ts +47 -47
- package/src/data/segment.ts +14 -14
- package/src/geo/edge_insets.ts +2 -2
- package/src/geo/lng_lat.ts +4 -4
- package/src/geo/lng_lat_bounds.ts +35 -35
- package/src/geo/mercator_coordinate.ts +5 -5
- package/src/geo/transform.test.ts +1 -1
- package/src/geo/transform.ts +14 -14
- package/src/gl/context.ts +3 -3
- package/src/gl/types.ts +19 -19
- package/src/gl/value.ts +6 -6
- package/src/gl/vertex_buffer.test.ts +1 -1
- package/src/index.ts +24 -9
- package/src/render/draw_circle.ts +8 -8
- package/src/render/draw_collision_debug.ts +5 -5
- package/src/render/draw_debug.ts +1 -1
- package/src/render/draw_line.ts +4 -4
- package/src/render/draw_symbol.ts +21 -21
- package/src/render/glyph_atlas.ts +12 -12
- package/src/render/glyph_manager.test.ts +10 -21
- package/src/render/glyph_manager.ts +34 -33
- package/src/render/image_manager.ts +4 -4
- package/src/render/painter.ts +16 -14
- package/src/render/program/background_program.ts +29 -29
- package/src/render/program/circle_program.ts +11 -11
- package/src/render/program/clipping_mask_program.ts +1 -1
- package/src/render/program/collision_program.ts +9 -9
- package/src/render/program/debug_program.ts +4 -4
- package/src/render/program/fill_extrusion_program.ts +31 -31
- package/src/render/program/fill_program.ts +29 -29
- package/src/render/program/heatmap_program.ts +12 -12
- package/src/render/program/hillshade_program.ts +12 -12
- package/src/render/program/line_program.ts +41 -41
- package/src/render/program/pattern.ts +28 -28
- package/src/render/program/raster_program.ts +21 -21
- package/src/render/program/symbol_program.ts +97 -97
- package/src/render/program.ts +25 -25
- package/src/render/texture.ts +9 -9
- package/src/render/uniform_binding.ts +1 -1
- package/src/render/vertex_array_object.ts +13 -13
- package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
- package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
- package/src/shaders/background.fragment.glsl.g.ts +2 -0
- package/src/shaders/background.vertex.glsl.g.ts +2 -0
- package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/circle.fragment.glsl.g.ts +2 -0
- package/src/shaders/circle.vertex.glsl.g.ts +2 -0
- package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
- package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
- package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
- package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
- package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
- package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
- package/src/shaders/debug.fragment.glsl.g.ts +2 -0
- package/src/shaders/debug.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
- package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
- package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
- package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
- package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
- package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
- package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
- package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
- package/src/shaders/line.fragment.glsl.g.ts +2 -0
- package/src/shaders/line.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
- package/src/shaders/raster.fragment.glsl.g.ts +2 -0
- package/src/shaders/raster.vertex.glsl.g.ts +2 -0
- package/src/shaders/shaders.ts +52 -55
- package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
- package/src/source/canvas_source.test.ts +11 -12
- package/src/source/canvas_source.ts +4 -4
- package/src/source/geojson_source.test.ts +2 -1
- package/src/source/geojson_source.ts +1 -1
- package/src/source/geojson_worker_source.ts +23 -23
- package/src/source/geojson_wrapper.ts +8 -8
- package/src/source/image_source.test.ts +2 -2
- package/src/source/image_source.ts +6 -6
- package/src/source/pixels_to_tile_units.ts +6 -6
- package/src/source/query_features.ts +20 -20
- package/src/source/raster_dem_tile_source.test.ts +4 -3
- package/src/source/raster_dem_tile_source.ts +1 -1
- package/src/source/raster_tile_source.test.ts +4 -3
- package/src/source/raster_tile_source.ts +1 -1
- package/src/source/rtl_text_plugin.ts +10 -10
- package/src/source/source.ts +29 -29
- package/src/source/source_cache.test.ts +33 -1
- package/src/source/source_cache.ts +7 -5
- package/src/source/source_state.ts +1 -1
- package/src/source/tile.test.ts +3 -3
- package/src/source/tile.ts +15 -15
- package/src/source/tile_cache.test.ts +6 -4
- package/src/source/tile_cache.ts +6 -6
- package/src/source/tile_id.test.ts +10 -13
- package/src/source/tile_id.ts +2 -2
- package/src/source/vector_tile_source.test.ts +17 -5
- package/src/source/vector_tile_source.ts +4 -5
- package/src/source/vector_tile_worker_source.test.ts +4 -4
- package/src/source/vector_tile_worker_source.ts +5 -5
- package/src/source/worker.test.ts +1 -1
- package/src/source/worker.ts +22 -22
- package/src/source/worker_source.ts +56 -56
- package/src/source/worker_tile.ts +4 -4
- package/src/style/evaluation_parameters.ts +3 -3
- package/src/style/format_section_override.test.ts +1 -1
- package/src/style/light.ts +10 -10
- package/src/style/load_glyph_range.test.ts +3 -5
- package/src/style/load_glyph_range.ts +6 -6
- package/src/style/load_sprite.ts +5 -4
- package/src/style/pauseable_placement.ts +1 -1
- package/src/style/properties.ts +70 -70
- package/src/style/query_utils.ts +7 -7
- package/src/style/style.test.ts +26 -15
- package/src/style/style.ts +30 -30
- package/src/style/style_glyph.ts +8 -8
- package/src/style/style_image.ts +58 -58
- package/src/style/style_layer/background_style_layer.ts +2 -2
- package/src/style/style_layer/{background_style_layer_properties.ts → background_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/circle_style_layer.ts +10 -10
- package/src/style/style_layer/{circle_style_layer_properties.ts → circle_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/custom_style_layer.ts +19 -19
- package/src/style/style_layer/fill_extrusion_style_layer.ts +11 -11
- package/src/style/style_layer/{fill_extrusion_style_layer_properties.ts → fill_extrusion_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/fill_style_layer.ts +9 -9
- package/src/style/style_layer/{fill_style_layer_properties.ts → fill_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/heatmap_style_layer.ts +2 -2
- package/src/style/style_layer/{heatmap_style_layer_properties.ts → heatmap_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/hillshade_style_layer.ts +2 -2
- package/src/style/style_layer/{hillshade_style_layer_properties.ts → hillshade_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/line_style_layer.ts +9 -9
- package/src/style/style_layer/{line_style_layer_properties.ts → line_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/raster_style_layer.ts +2 -2
- package/src/style/style_layer/{raster_style_layer_properties.ts → raster_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/symbol_style_layer.ts +26 -7
- package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +6 -0
- package/src/style/style_layer.ts +10 -10
- package/src/style/style_layer_index.ts +3 -3
- package/src/style/validate_style.ts +15 -15
- package/src/style-spec/CHANGELOG.md +6 -0
- package/src/style-spec/error/validation_error.ts +1 -1
- package/src/style-spec/expression/compound_expression.ts +3 -3
- package/src/style-spec/expression/definitions/format.ts +11 -11
- package/src/style-spec/expression/definitions/interpolate.ts +5 -5
- package/src/style-spec/expression/definitions/match.ts +2 -2
- package/src/style-spec/expression/definitions/number_format.ts +11 -11
- package/src/style-spec/expression/expression.ts +8 -8
- package/src/style-spec/expression/index.ts +97 -97
- package/src/style-spec/expression/parsing_context.ts +11 -11
- package/src/style-spec/expression/types/collator.ts +9 -9
- package/src/style-spec/expression/types/resolved_image.ts +2 -2
- package/src/style-spec/expression/types.ts +14 -14
- package/src/style-spec/expression/values.ts +1 -1
- package/src/style-spec/feature_filter/index.ts +66 -66
- package/src/style-spec/function/convert.ts +3 -3
- package/src/style-spec/package.json +1 -1
- package/src/style-spec/reference/v8.json +68 -2
- package/src/style-spec/style-spec.ts +44 -44
- package/src/style-spec/types.ts +2 -0
- package/src/style-spec/util/color_spaces.ts +8 -8
- package/src/style-spec/util/result.ts +4 -4
- package/src/style-spec/validate/validate_filter.ts +58 -58
- package/src/style-spec/validate/validate_source.ts +63 -63
- package/src/style-spec/visit.ts +11 -11
- package/src/symbol/collision_feature.test.ts +1 -1
- package/src/symbol/collision_feature.ts +10 -10
- package/src/symbol/collision_index.ts +43 -43
- package/src/symbol/cross_tile_symbol_index.ts +17 -17
- package/src/symbol/get_anchors.ts +16 -16
- package/src/symbol/grid_index.test.ts +42 -19
- package/src/symbol/grid_index.ts +69 -40
- package/src/symbol/placement.ts +124 -95
- package/src/symbol/projection.ts +30 -30
- package/src/symbol/quads.ts +30 -30
- package/src/symbol/shaping.ts +160 -160
- package/src/symbol/symbol_layout.ts +119 -119
- package/src/symbol/symbol_size.ts +29 -29
- package/src/symbol/symbol_style_layer.test.ts +49 -2
- package/src/types/cancelable.ts +1 -1
- package/src/types/tilejson.ts +13 -13
- package/src/ui/anchor.ts +1 -1
- package/src/ui/camera.test.ts +9 -9
- package/src/ui/camera.ts +18 -18
- package/src/ui/control/attribution_control.test.ts +51 -16
- package/src/ui/control/attribution_control.ts +35 -16
- package/src/ui/control/control.ts +40 -40
- package/src/ui/control/fullscreen_control.ts +1 -1
- package/src/ui/control/geolocate_control.test.ts +1 -1
- package/src/ui/control/geolocate_control.ts +102 -102
- package/src/ui/control/logo_control.test.ts +5 -4
- package/src/ui/control/navigation_control.ts +3 -3
- package/src/ui/control/scale_control.test.ts +2 -2
- package/src/ui/control/scale_control.ts +5 -5
- package/src/ui/events.ts +289 -200
- package/src/ui/handler/box_zoom.test.ts +1 -1
- package/src/ui/handler/box_zoom.ts +1 -1
- package/src/ui/handler/dblclick_zoom.test.ts +1 -1
- package/src/ui/handler/drag_pan.test.ts +1 -1
- package/src/ui/handler/drag_rotate.test.ts +1 -1
- package/src/ui/handler/keyboard.test.ts +1 -1
- package/src/ui/handler/keyboard.ts +51 -51
- package/src/ui/handler/map_event.test.ts +1 -1
- package/src/ui/handler/map_event.ts +1 -1
- package/src/ui/handler/mouse.ts +1 -1
- package/src/ui/handler/mouse_rotate.test.ts +1 -1
- package/src/ui/handler/scroll_zoom.test.ts +3 -2
- package/src/ui/handler/scroll_zoom.ts +9 -9
- package/src/ui/handler/shim/drag_pan.ts +4 -4
- package/src/ui/handler/shim/drag_rotate.ts +1 -1
- package/src/ui/handler/shim/touch_zoom_rotate.ts +1 -1
- package/src/ui/handler/tap_recognizer.ts +4 -4
- package/src/ui/handler/touch_pan.ts +2 -2
- package/src/ui/handler/touch_zoom_rotate.test.ts +1 -1
- package/src/ui/handler/touch_zoom_rotate.ts +1 -1
- package/src/ui/handler_inertia.ts +6 -6
- package/src/ui/handler_manager.ts +44 -44
- package/src/ui/map/isMoving.test.ts +1 -1
- package/src/ui/map/isRotating.test.ts +1 -1
- package/src/ui/map/isZooming.test.ts +1 -1
- package/src/ui/map.test.ts +87 -14
- package/src/ui/map.ts +136 -106
- package/src/ui/map_events.test.ts +1 -1
- package/src/ui/marker.test.ts +12 -12
- package/src/ui/marker.ts +37 -37
- package/src/ui/popup.test.ts +7 -7
- package/src/ui/popup.ts +9 -9
- package/src/util/actor.test.ts +41 -10
- package/src/util/actor.ts +8 -8
- package/src/util/ajax.test.ts +29 -21
- package/src/util/ajax.ts +51 -30
- package/src/util/browser.ts +1 -1
- package/src/util/classify_rings.test.ts +1 -1
- package/src/util/color_ramp.ts +5 -5
- package/src/util/config.ts +2 -2
- package/src/util/dispatcher.ts +1 -1
- package/src/util/dom.ts +2 -2
- package/src/util/evented.ts +1 -1
- package/src/util/find_pole_of_inaccessibility.ts +3 -3
- package/src/util/image.ts +5 -5
- package/src/util/performance.ts +7 -7
- package/src/util/request_manager.ts +4 -4
- package/src/util/resolve_tokens.ts +4 -4
- package/src/util/struct_array.test.ts +1 -1
- package/src/util/struct_array.ts +15 -15
- package/src/util/task_queue.ts +3 -3
- package/src/util/tile_request_cache.ts +3 -3
- package/src/util/transferable_grid_index.ts +4 -4
- package/src/util/util.ts +8 -8
- package/src/util/web_worker.ts +4 -68
- package/src/util/web_worker_transfer.test.ts +3 -0
- package/src/util/web_worker_transfer.ts +21 -17
- package/src/util/worker_pool.ts +1 -1
- package/build/.eslintrc +0 -21
- package/build/glsl_to_js.js +0 -12
- package/build/post-ts-build.js +0 -43
- package/build/release-notes.md.ejs +0 -8
- package/build/test/build-tape.js +0 -17
- package/build/web_worker_replacement.js +0 -5
- package/dist/package.json +0 -1
- package/src/style-spec/validate_spec.test.ts +0 -29
- package/src/symbol/shaping.test.ts +0 -392
- 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 {
|
package/src/util/evented.ts
CHANGED
|
@@ -14,9 +14,9 @@ import {distToSegmentSquared} from './intersection_tests';
|
|
|
14
14
|
* @private
|
|
15
15
|
*/
|
|
16
16
|
export default function(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
7
|
-
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
type Point2D = {
|
|
11
|
-
|
|
12
|
-
|
|
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(
|
|
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;
|
package/src/util/performance.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type {RequestParameters} from '../util/ajax';
|
|
2
2
|
|
|
3
3
|
export type PerformanceMetrics = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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]) : '';
|
package/src/util/struct_array.ts
CHANGED
|
@@ -47,21 +47,21 @@ const DEFAULT_CAPACITY = 128;
|
|
|
47
47
|
const RESIZE_MULTIPLIER = 5;
|
|
48
48
|
|
|
49
49
|
export type StructArrayMember = {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
name: string;
|
|
51
|
+
type: ViewType;
|
|
52
|
+
components: number;
|
|
53
|
+
offset: number;
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
export type StructArrayLayout = {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
members: Array<StructArrayMember>;
|
|
58
|
+
size: number;
|
|
59
|
+
alignment: number;
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
export type SerializedStructArray = {
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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;
|
package/src/util/task_queue.ts
CHANGED
|
@@ -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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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
|
-
|
|
369
|
-
|
|
370
|
-
|
|
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
|
package/src/util/web_worker.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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) ||
|
package/src/util/worker_pool.ts
CHANGED
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
|
-
}
|
package/build/glsl_to_js.js
DELETED
|
@@ -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
|
-
}
|
package/build/post-ts-build.js
DELETED
|
@@ -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
|
-
<% } -%>
|
package/build/test/build-tape.js
DELETED
|
@@ -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
|
-
}
|
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
|
-
});
|